comparison mercurial/minirst.py @ 18752:fabbaa250977

minirst: optimize HTML table generation a bit avoid a couple of array copies and string interpolations
author Dan Villiom Podlaski Christiansen <danchr@gmail.com>
date Sat, 09 Feb 2013 21:51:21 +0000
parents 13aa81e2fded
children 8ac7b85bd8f9
comparison
equal deleted inserted replaced
18751:13aa81e2fded 18752:fabbaa250977
557 headernest += i 557 headernest += i
558 level = headernest.index(i) + 1 558 level = headernest.index(i) + 1
559 out.append('<h%d>%s</h%d>\n' % (level, escape(lines[0]), level)) 559 out.append('<h%d>%s</h%d>\n' % (level, escape(lines[0]), level))
560 elif btype == 'table': 560 elif btype == 'table':
561 table = b['table'] 561 table = b['table']
562 t = [] 562 out.append('<table>\n')
563 for row in table: 563 for row in table:
564 l = [] 564 out.append('<tr>')
565 for v in row: 565 for v in row:
566 l.append('<td>%s</td>' % escape(v)) 566 out.append('<td>')
567 t.append('<tr>%s</tr>\n' % '\n'.join(l)) 567 out.append(escape(v))
568 out.append('<table>\n%s</table>\n' % ''.join(t)) 568 out.append('</td>')
569 out.append('\n')
570 out.pop()
571 out.append('</tr>\n')
572 out.append('</table>\n')
569 elif btype == 'definition': 573 elif btype == 'definition':
570 openlist('dl', level) 574 openlist('dl', level)
571 term = escape(lines[0]) 575 term = escape(lines[0])
572 text = escape(' '.join(map(str.strip, lines[1:]))) 576 text = escape(' '.join(map(str.strip, lines[1:])))
573 out.append(' <dt>%s\n <dd>%s\n' % (term, text)) 577 out.append(' <dt>%s\n <dd>%s\n' % (term, text))