def rst_table(table): # Note: rst and sphinx do not offer alignment of cell # entries, everything is always left-adjusted (Nov. 2011) # Math in column headings may be significantly expanded and # this must be done first column_width = table_analysis(table['rows']) ncolumns = len(column_width) column_spec = table.get('columns_align', 'c'*ncolumns).replace('|', '') heading_spec = table.get('headings_align', 'c'*ncolumns).replace('|', '') a2py = {'r': 'rjust', 'l': 'ljust', 'c': 'center'} s = '' # '\n' for i, row in enumerate(table['rows']): #s += ' ' # indentation of tables if row == ['horizontal rule']: for w in column_width: s += '='*w + ' ' else: # check if this is a headline between two horizontal rules: if i == 1 and \ table['rows'][i-1] == ['horizontal rule'] and \ table['rows'][i+1] == ['horizontal rule']: headline = True else: headline = False for w, c, ha, ca in \ zip(column_width, row, heading_spec, column_spec): if headline: s += getattr(c, a2py[ha])(w) + ' ' else: s += getattr(c, a2py[ca])(w) + ' ' s += '\n' s += '\n' return s
def cwiki_table(table): """Native Creole wiki table.""" # add 2 chars for column width since we add boldface _..._ # in headlines: column_width = [c+2 for c in table_analysis(table['rows'])] s = '\n' for i, row in enumerate(table['rows']): if row == ['horizontal rule']: continue if i == 1 and \ table['rows'][i-1] == ['horizontal rule'] and \ table['rows'][i+1] == ['horizontal rule']: headline = True else: headline = False for column, w in zip(row, column_width): if headline: c = '=%s ' % ((column).ljust(w)) else: c = ' %s ' % column.ljust(w) s += ' | %s ' % c s += ' |\n' s += '\n\n' return s
def xml_table(table): # COPY NEW from html.py column_width = table_analysis(table['rows']) ncolumns = len(column_width) column_spec = table.get('columns_align', 'c'*ncolumns).replace('|', '') heading_spec = table.get('headings_align', 'c'*ncolumns).replace('|', '') a2html = {'r': 'right', 'l': 'left', 'c': 'center'} s = '<tabl>\n' for i, row in enumerate(table['rows']): if row == ['horizontal rule']: continue if i == 1 and \ table['rows'][i-1] == ['horizontal rule'] and \ table['rows'][i+1] == ['horizontal rule']: headline = True # Empty column headings? skip_headline = max([len(column.strip()) for column in row]) == 0 else: headline = False s += '<tr>' for column, w, ha, ca in \ zip(row, column_width, heading_spec, column_spec): if headline: if not skip_headline: s += '<td align="%s"><b> %s </b></td> ' % \ (a2html[ha], column.center(w)) else: s += '<td align="%s"> %s </td> ' % \ (a2html[ca], column.ljust(w)) s += '</tr>\n' s += '</table>\n' return s
def rst_table(table): # Note: rst and sphinx do not offer alignment of cell # entries, everything is always left-adjusted (Nov. 2011) # Math in column headings may be significantly expanded and # this must be done first column_width = table_analysis(table["rows"]) ncolumns = len(column_width) column_spec = table.get("columns_align", "c" * ncolumns).replace("|", "") heading_spec = table.get("headings_align", "c" * ncolumns).replace("|", "") a2py = {"r": "rjust", "l": "ljust", "c": "center"} s = "" # '\n' for i, row in enumerate(table["rows"]): # s += ' ' # indentation of tables if row == ["horizontal rule"]: for w in column_width: s += "=" * w + " " else: # check if this is a headline between two horizontal rules: if i == 1 and table["rows"][i - 1] == ["horizontal rule"] and table["rows"][i + 1] == ["horizontal rule"]: headline = True else: headline = False for w, c, ha, ca in zip(column_width, row, heading_spec, column_spec): if headline: s += getattr(c, a2py[ha])(w) + " " else: s += getattr(c, a2py[ca])(w) + " " s += "\n" s += "\n" return s
def gwiki_table(table): """Native gwiki table.""" # add 2 chars for column width since we add boldface _..._ # in headlines: column_width = [c+2 for c in table_analysis(table['rows'])] # Does column and heading alignment matter? # Not according to http://code.google.com/p/support/wiki/WikiSyntax#Tables # but it is possible to use HTML code in gwiki (i.e., html_table) # (think this was tried without success...) s = '\n' for i, row in enumerate(table['rows']): if row == ['horizontal rule']: continue if i == 1 and \ table['rows'][i-1] == ['horizontal rule'] and \ table['rows'][i+1] == ['horizontal rule']: headline = True else: headline = False for column, w in zip(row, column_width): if headline: c = ' %s ' % (('_'+ column + '_').center(w)) else: c = ' %s ' % column.ljust(w) s += ' || %s ' % c s += ' ||\n' s += '\n\n' return s
def gwiki_table(table): """Native gwiki table.""" # add 2 chars for column width since we add boldface _..._ # in headlines: column_width = [c + 2 for c in table_analysis(table['rows'])] # Does column and heading alignment matter? # Not according to http://code.google.com/p/support/wiki/WikiSyntax#Tables # but it is possible to use HTML code in gwiki (i.e., html_table) # (think this was tried without success...) s = '\n' for i, row in enumerate(table['rows']): if row == ['horizontal rule']: continue if i == 1 and \ table['rows'][i-1] == ['horizontal rule'] and \ table['rows'][i+1] == ['horizontal rule']: headline = True else: headline = False for column, w in zip(row, column_width): if headline: c = ' %s ' % (('_' + column + '_').center(w)) else: c = ' %s ' % column.ljust(w) s += ' || %s ' % c s += ' ||\n' s += '\n\n' return s
def cwiki_table(table): """Native Creole wiki table.""" # add 2 chars for column width since we add boldface _..._ # in headlines: column_width = [c + 2 for c in table_analysis(table['rows'])] s = '\n' for i, row in enumerate(table['rows']): if row == ['horizontal rule']: continue if i == 1 and \ table['rows'][i-1] == ['horizontal rule'] and \ table['rows'][i+1] == ['horizontal rule']: headline = True else: headline = False for column, w in zip(row, column_width): if headline: c = '=%s ' % ((column).ljust(w)) else: c = ' %s ' % column.ljust(w) s += ' | %s ' % c s += ' |\n' s += '\n\n' return s
def rst_table(table): # Note: rst and sphinx do not offer alignment of cell # entries, everything is always left-adjusted (Nov. 2011) # Math in column headings may be significantly expanded and # this must be done first column_width = table_analysis(table['rows']) ncolumns = len(column_width) column_spec = table.get('columns_align', 'c' * ncolumns).replace('|', '') heading_spec = table.get('headings_align', 'c' * ncolumns).replace('|', '') a2py = {'r': 'rjust', 'l': 'ljust', 'c': 'center'} s = '' # '\n' for i, row in enumerate(table['rows']): #s += ' ' # indentation of tables if row == ['horizontal rule']: for w in column_width: s += '=' * w + ' ' else: # check if this is a headline between two horizontal rules: if i == 1 and \ table['rows'][i-1] == ['horizontal rule'] and \ table['rows'][i+1] == ['horizontal rule']: headline = True else: headline = False for w, c, ha, ca in \ zip(column_width, row, heading_spec, column_spec): if headline: s += getattr(c, a2py[ha])(w) + ' ' else: s += getattr(c, a2py[ca])(w) + ' ' s += '\n' s += '\n' return s
def pandoc_table(table): if option('github_md'): text = html_table(table) # Fix the problem that `verbatim` inside the table is not # typeset as verbatim (according to the pandoc translator rules) # in the GitHub Issue Tracker text = re.sub(r'`([^`]+?)`', '<code>\g<1></code>', text) return text # else: Pandoc-extended Markdown syntax """ Simple markdown tables look like this:: Left Right Center Default ------- ------ ---------- ------- 12 12 12 12 123 123 123 123 1 1 1 1 """ # Slight modification of rst_table column_width = table_analysis(table['rows']) ncolumns = len(column_width) column_spec = table.get('columns_align', 'c'*ncolumns).replace('|', '') heading_spec = table.get('headings_align', 'c'*ncolumns).replace('|', '') a2py = {'r': 'rjust', 'l': 'ljust', 'c': 'center'} s = '' # '\n' for i, row in enumerate(table['rows']): #s += ' ' # indentation of tables if row == ['horizontal rule'] and i > 0 and i < len(table['rows'])-1: # No horizontal rule at the top and bottom, just after heading for w in column_width: s += '-'*w + ' ' else: # check if this is a headline between two horizontal rules: if i == 1 and \ table['rows'][i-1] == ['horizontal rule'] and \ table['rows'][i+1] == ['horizontal rule']: headline = True else: headline = False for w, c, ha, ca in \ zip(column_width, row, heading_spec, column_spec): if headline: s += getattr(c, a2py[ha])(w) + ' ' elif row != ['horizontal rule']: s += getattr(c, a2py[ca])(w) + ' ' s += '\n' s += '\n' return s
def pandoc_table(table): if option('github_md'): text = html_table(table) # Fix the problem that `verbatim` inside the table is not # typeset as verbatim (according to the pandoc translator rules) # in the GitHub Issue Tracker text = re.sub(r'`([^`]+?)`', '<code>\g<1></code>', text) return text # else: Pandoc-extended Markdown syntax """ Simple markdown tables look like this:: Left Right Center Default ------- ------ ---------- ------- 12 12 12 12 123 123 123 123 1 1 1 1 """ # Slight modification of rst_table column_width = table_analysis(table['rows']) ncolumns = len(column_width) column_spec = table.get('columns_align', 'c' * ncolumns).replace('|', '') heading_spec = table.get('headings_align', 'c' * ncolumns).replace('|', '') a2py = {'r': 'rjust', 'l': 'ljust', 'c': 'center'} s = '' # '\n' for i, row in enumerate(table['rows']): #s += ' ' # indentation of tables if row == ['horizontal rule'] and i > 0 and i < len(table['rows']) - 1: # No horizontal rule at the top and bottom, just after heading for w in column_width: s += '-' * w + ' ' else: # check if this is a headline between two horizontal rules: if i == 1 and \ table['rows'][i-1] == ['horizontal rule'] and \ table['rows'][i+1] == ['horizontal rule']: headline = True else: headline = False for w, c, ha, ca in \ zip(column_width, row, heading_spec, column_spec): if headline: s += getattr(c, a2py[ha])(w) + ' ' elif row != ['horizontal rule']: s += getattr(c, a2py[ca])(w) + ' ' s += '\n' s += '\n' return s
def pandoc_table(table): if option("github_md"): text = html_table(table) # Fix the problem that `verbatim` inside the table is not # typeset as verbatim (according to the pandoc translator rules) # in the GitHub Issue Tracker text = re.sub(r"`([^`]+?)`", "<code>\g<1></code>", text) return text # else: Pandoc-extended Markdown syntax """ Simple markdown tables look like this:: Left Right Center Default ------- ------ ---------- ------- 12 12 12 12 123 123 123 123 1 1 1 1 """ # Slight modification of rst_table column_width = table_analysis(table["rows"]) ncolumns = len(column_width) column_spec = table.get("columns_align", "c" * ncolumns).replace("|", "") heading_spec = table.get("headings_align", "c" * ncolumns).replace("|", "") a2py = {"r": "rjust", "l": "ljust", "c": "center"} s = "" # '\n' for i, row in enumerate(table["rows"]): # s += ' ' # indentation of tables if row == ["horizontal rule"] and i > 0 and i < len(table["rows"]) - 1: # No horizontal rule at the top and bottom, just after heading for w in column_width: s += "-" * w + " " else: # check if this is a headline between two horizontal rules: if i == 1 and table["rows"][i - 1] == ["horizontal rule"] and table["rows"][i + 1] == ["horizontal rule"]: headline = True else: headline = False for w, c, ha, ca in zip(column_width, row, heading_spec, column_spec): if headline: s += getattr(c, a2py[ha])(w) + " " elif row != ["horizontal rule"]: s += getattr(c, a2py[ca])(w) + " " s += "\n" s += "\n" return s
def gwiki_table(table): """Native gwiki table.""" # add 2 chars for column width since we add boldface _..._ # in headlines: column_width = [c + 2 for c in table_analysis(table["rows"])] # Does column and heading alignment matter? # Not according to http://code.google.com/p/support/wiki/WikiSyntax#Tables # but it is possible to use HTML code in gwiki (i.e., html_table) # (think this was tried without success...) s = "\n" for i, row in enumerate(table["rows"]): if row == ["horizontal rule"]: continue if i == 1 and table["rows"][i - 1] == ["horizontal rule"] and table["rows"][i + 1] == ["horizontal rule"]: headline = True else: headline = False empty_row = max([len(column.strip()) for column in row]) == 0 if empty_row: continue for column, w in zip(row, column_width): if headline: if column: c = " %s " % (("_" + column + "_").center(w)) else: c = "" else: c = " %s " % column.ljust(w) s += " || %s " % c s += " ||\n" s += "\n\n" return s