equal
deleted
inserted
replaced
423 'note', |
423 'note', |
424 'tip', |
424 'tip', |
425 'warning', |
425 'warning', |
426 ]) |
426 ]) |
427 |
427 |
428 def findadmonitions(blocks): |
428 def findadmonitions(blocks, admonitions=None): |
429 """ |
429 """ |
430 Makes the type of the block an admonition block if |
430 Makes the type of the block an admonition block if |
431 the first line is an admonition directive |
431 the first line is an admonition directive |
432 """ |
432 """ |
433 admonitionre = re.compile(r'\.\. (%s)::' % '|'.join(sorted(_admonitions)), |
433 admonitions = admonitions or _admonitions |
|
434 |
|
435 admonitionre = re.compile(r'\.\. (%s)::' % '|'.join(sorted(admonitions)), |
434 flags=re.IGNORECASE) |
436 flags=re.IGNORECASE) |
435 |
437 |
436 i = 0 |
438 i = 0 |
437 while i < len(blocks): |
439 while i < len(blocks): |
438 m = admonitionre.match(blocks[i]['lines'][0]) |
440 m = admonitionre.match(blocks[i]['lines'][0]) |
640 out.append('</%s>\n' % start) |
642 out.append('</%s>\n' % start) |
641 listnest.pop() |
643 listnest.pop() |
642 |
644 |
643 return ''.join(out) |
645 return ''.join(out) |
644 |
646 |
645 def parse(text, indent=0, keep=None): |
647 def parse(text, indent=0, keep=None, admonitions=None): |
646 """Parse text into a list of blocks""" |
648 """Parse text into a list of blocks""" |
647 pruned = [] |
649 pruned = [] |
648 blocks = findblocks(text) |
650 blocks = findblocks(text) |
649 for b in blocks: |
651 for b in blocks: |
650 b['indent'] += indent |
652 b['indent'] += indent |
655 blocks = inlineliterals(blocks) |
657 blocks = inlineliterals(blocks) |
656 blocks = hgrole(blocks) |
658 blocks = hgrole(blocks) |
657 blocks = splitparagraphs(blocks) |
659 blocks = splitparagraphs(blocks) |
658 blocks = updatefieldlists(blocks) |
660 blocks = updatefieldlists(blocks) |
659 blocks = updateoptionlists(blocks) |
661 blocks = updateoptionlists(blocks) |
660 blocks = findadmonitions(blocks) |
662 blocks = findadmonitions(blocks, admonitions=admonitions) |
661 blocks = addmargins(blocks) |
663 blocks = addmargins(blocks) |
662 blocks = prunecomments(blocks) |
664 blocks = prunecomments(blocks) |
663 return blocks, pruned |
665 return blocks, pruned |
664 |
666 |
665 def formatblocks(blocks, width): |
667 def formatblocks(blocks, width): |