[PATCH 1 of 9] minirst: optimize HTML table generation a bit

Dan Villiom Podlaski Christiansen danchr at gmail.com
Sat Mar 2 09:51:36 CST 2013


# HG changeset patch
# User Dan Villiom Podlaski Christiansen  <danchr at gmail.com>
# Date 1360446681 0
#      Sat Feb 09 21:51:21 2013 +0000
# Node ID fabbaa250977ad337a36b1c4cece22da94adfe4b
# Parent  13aa81e2fded35389403d2ae3a750e5af6c65dab
minirst: optimize HTML table generation a bit

avoid a couple of array copies and string interpolations

diff --git a/mercurial/minirst.py b/mercurial/minirst.py
--- a/mercurial/minirst.py
+++ b/mercurial/minirst.py
@@ -559,13 +559,17 @@ def formathtml(blocks):
             out.append('<h%d>%s</h%d>\n' % (level, escape(lines[0]), level))
         elif btype == 'table':
             table = b['table']
-            t = []
+            out.append('<table>\n')
             for row in table:
-                l = []
+                out.append('<tr>')
                 for v in row:
-                    l.append('<td>%s</td>' % escape(v))
-                t.append('<tr>%s</tr>\n' % '\n'.join(l))
-            out.append('<table>\n%s</table>\n' % ''.join(t))
+                    out.append('<td>')
+                    out.append(escape(v))
+                    out.append('</td>')
+                    out.append('\n')
+                out.pop()
+                out.append('</tr>\n')
+            out.append('</table>\n')
         elif btype == 'definition':
             openlist('dl', level)
             term = escape(lines[0])


More information about the Mercurial-devel mailing list