comparison mercurial/templatefilters.py @ 19228:889807c79384

templater: add indentation arguments to the fill function
author Sean Farley <sean.michael.farley@gmail.com>
date Thu, 18 Apr 2013 15:48:22 -0500
parents 8eef5b93db9d
children 1afe5d3939db
comparison
equal deleted inserted replaced
19227:8eef5b93db9d 19228:889807c79384
97 return cgi.escape(text.replace('\0', ''), True) 97 return cgi.escape(text.replace('\0', ''), True)
98 98
99 para_re = None 99 para_re = None
100 space_re = None 100 space_re = None
101 101
102 def fill(text, width): 102 def fill(text, width, initindent = '', hangindent = ''):
103 '''fill many paragraphs.''' 103 '''fill many paragraphs with optional indentation.'''
104 global para_re, space_re 104 global para_re, space_re
105 if para_re is None: 105 if para_re is None:
106 para_re = re.compile('(\n\n|\n\\s*[-*]\\s*)', re.M) 106 para_re = re.compile('(\n\n|\n\\s*[-*]\\s*)', re.M)
107 space_re = re.compile(r' +') 107 space_re = re.compile(r' +')
108 108
119 uctext[w:].encode(encoding.encoding)) 119 uctext[w:].encode(encoding.encoding))
120 break 120 break
121 yield text[start:m.start(0)], m.group(1) 121 yield text[start:m.start(0)], m.group(1)
122 start = m.end(1) 122 start = m.end(1)
123 123
124 return "".join([space_re.sub(' ', util.wrap(para, width=width)) + rest 124 return "".join([util.wrap(space_re.sub(' ', util.wrap(para, width)),
125 width, initindent, hangindent) + rest
125 for para, rest in findparas()]) 126 for para, rest in findparas()])
126 127
127 def fill68(text): 128 def fill68(text):
128 """:fill68: Any text. Wraps the text to fit in 68 columns.""" 129 """:fill68: Any text. Wraps the text to fit in 68 columns."""
129 return fill(text, 68) 130 return fill(text, 68)