| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- """
- Sane List Extension for Python-Markdown
- =======================================
- Modify the behavior of Lists in Python-Markdown to act in a sane manor.
- See <https://Python-Markdown.github.io/extensions/sane_lists>
- for documentation.
- Original code Copyright 2011 [Waylan Limberg](http://achinghead.com)
- All changes Copyright 2011-2014 The Python Markdown Project
- License: [BSD](https://opensource.org/licenses/bsd-license.php)
- """
- from . import Extension
- from ..blockprocessors import OListProcessor, UListProcessor
- import re
- class SaneOListProcessor(OListProcessor):
- SIBLING_TAGS = ['ol']
- LAZY_OL = False
- def __init__(self, parser):
- super().__init__(parser)
- self.CHILD_RE = re.compile(r'^[ ]{0,%d}((\d+\.))[ ]+(.*)' %
- (self.tab_length - 1))
- class SaneUListProcessor(UListProcessor):
- SIBLING_TAGS = ['ul']
- def __init__(self, parser):
- super().__init__(parser)
- self.CHILD_RE = re.compile(r'^[ ]{0,%d}(([*+-]))[ ]+(.*)' %
- (self.tab_length - 1))
- class SaneListExtension(Extension):
- """ Add sane lists to Markdown. """
- def extendMarkdown(self, md):
- """ Override existing Processors. """
- md.parser.blockprocessors.register(SaneOListProcessor(md.parser), 'olist', 40)
- md.parser.blockprocessors.register(SaneUListProcessor(md.parser), 'ulist', 30)
- def makeExtension(**kwargs): # pragma: no cover
- return SaneListExtension(**kwargs)
|