hey,
here is what I do with plugin_wiki (usually for automated reports, but
here is a simplified sample):
header = ['First_Name', 'Last_Name', 'Age', 'Description']
data = \
'''fred,Flintstone,32,always gets into trouble,
Barney,Rubble,33,is always willing to help Fred
Mr,Slate,31,good businees man but not a people person
Dino,dinosaur,3,looks like he should be a dog
Pebbles,Flintstone,2,Great kid but does not talk much'''
if isinstance(data,str):
rows = [row.strip().split(',') for row in data.splitlines()]
if header is not None:
nHeader = []
for h in header:
nHeader.append('**{0}**'.format(h))
markminTable = table_lists2Markmin([nHeader] + rows)
else:
markminTable = table_lists2Markmin([header] + rows)
print markminTable
# here is the function that makes a markmin table (sorry if the
formatting looks bad here):
def table_lists2Markmin(rows):
tableRows = deque()
for tRows in [([[sStr for sStr in item] for item in map(None,
*[item.split('\n') for item in row])]) for
row in rows]:
for tableRow in tRows:
tableRows.append('{0}'.format(' |
'.join([string.join(string.strip(item),
'')
for item in tableRow])))
return '-------\n{0}\n-------'.format(string.join(tableRows,'\n'))
Usually the string "data" (it can be a list or a table as well) gets
passed to a function that will make use (not shown here be it has too
many lines) of anything we have in markmin by doing something like
below.
data = \
'''fred,Flintstone,32,always gets into trouble,
Barney,Rubble,33,is always willing to help Fred
Mr,Slate,31,good business man and this is his {0}
Dino,dinosaur,3,looks like he should be a dog
Pebbles,Flintstone,2,Great kid but does not talk much
'''.format(mmObj.mLink('favorite link','http:/
www.google.com'))
makes automating Markmin tables easy through automation and decorating
the fileds as well.
hope it helps,
Mart :)