comparison mercurial/minirst.py @ 12620:9a9312e84e4e

minirst: small code cleanup
author Martin Geisler <mg@lazybytes.net>
date Fri, 08 Oct 2010 22:42:32 +0200
parents 75f044d4dbf5
children 17f28de168a4
comparison
equal deleted inserted replaced
12619:7178f6fedb9d 12620:9a9312e84e4e
294 else: 294 else:
295 blocks.insert(i, dict(lines=[''], indent=0, type='margin')) 295 blocks.insert(i, dict(lines=[''], indent=0, type='margin'))
296 i += 2 296 i += 2
297 return blocks 297 return blocks
298 298
299 _admonitionre = re.compile(r"\.\. (admonition|attention|caution|danger|"
300 r"error|hint|important|note|tip|warning)::",
301 flags=re.IGNORECASE)
302
299 def findadmonitions(blocks): 303 def findadmonitions(blocks):
300 """ 304 """
301 Makes the type of the block an admonition block if 305 Makes the type of the block an admonition block if
302 the first line is an admonition directive 306 the first line is an admonition directive
303 """ 307 """
304
305 i = 0 308 i = 0
306
307 pattern = (r"\.\. (admonition|attention|caution|danger|error|hint|"
308 r"important|note|tip|warning)::")
309
310 prog = re.compile(pattern, flags=re.IGNORECASE)
311 while i < len(blocks): 309 while i < len(blocks):
312 m = prog.match(blocks[i]['lines'][0]) 310 m = _admonitionre.match(blocks[i]['lines'][0])
313 if m: 311 if m:
314 blocks[i]['type'] = 'admonition' 312 blocks[i]['type'] = 'admonition'
315 admonitiontitle = blocks[i]['lines'][0][3:m.end() - 2].lower() 313 admonitiontitle = blocks[i]['lines'][0][3:m.end() - 2].lower()
316 314
317 firstline = blocks[i]['lines'][0][m.end() + 1:] 315 firstline = blocks[i]['lines'][0][m.end() + 1:]
318 if firstline != '': 316 if firstline:
319 blocks[i]['lines'].insert(1, ' ' + firstline + '') 317 blocks[i]['lines'].insert(1, ' ' + firstline)
320
321 318
322 blocks[i]['admonitiontitle'] = admonitiontitle 319 blocks[i]['admonitiontitle'] = admonitiontitle
323 del blocks[i]['lines'][0] 320 del blocks[i]['lines'][0]
324 i = i + 1 321 i = i + 1
325 return blocks 322 return blocks