diff options
author | Waylan Limberg <waylan@gmail.com> | 2010-07-07 10:11:45 -0400 |
---|---|---|
committer | Waylan Limberg <waylan@gmail.com> | 2010-07-07 10:11:45 -0400 |
commit | a33a04439905851b5b1a5db4104ec3a11b4ab1d3 (patch) | |
tree | 3b52768f0b0d928a688c79adcd531059ec7bc005 /markdown/blockprocessors.py | |
parent | 018aa73e82941288a1178ded751cf29d9bc13581 (diff) | |
download | markdown-a33a04439905851b5b1a5db4104ec3a11b4ab1d3.tar.gz markdown-a33a04439905851b5b1a5db4104ec3a11b4ab1d3.tar.bz2 markdown-a33a04439905851b5b1a5db4104ec3a11b4ab1d3.zip |
Factored out the building of the various processors and patterns into utility functions called by a build_parser method on the Markdown class. Editing of the processors and patterns now all happen in one file for each type. Additionaly, a subclass of Markdown could potentially override the build_parser method and build a parser for a completely differant markup language without first building the default and then overriding it.
Diffstat (limited to 'markdown/blockprocessors.py')
-rw-r--r-- | markdown/blockprocessors.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/markdown/blockprocessors.py b/markdown/blockprocessors.py index 4e39200..399a523 100644 --- a/markdown/blockprocessors.py +++ b/markdown/blockprocessors.py @@ -14,9 +14,27 @@ as they need to alter how markdown blocks are parsed. import re import util +from blockparser import BlockParser from logging import CRITICAL from md_logging import message + +def build_block_parser(md_instance, **kwargs): + """ Build the default block parser used by Markdown. """ + parser = BlockParser(md_instance) + parser.blockprocessors['empty'] = EmptyBlockProcessor(parser) + parser.blockprocessors['indent'] = ListIndentProcessor(parser) + parser.blockprocessors['code'] = CodeBlockProcessor(parser) + parser.blockprocessors['hashheader'] = HashHeaderProcessor(parser) + parser.blockprocessors['setextheader'] = SetextHeaderProcessor(parser) + parser.blockprocessors['hr'] = HRProcessor(parser) + parser.blockprocessors['olist'] = OListProcessor(parser) + parser.blockprocessors['ulist'] = UListProcessor(parser) + parser.blockprocessors['quote'] = BlockQuoteProcessor(parser) + parser.blockprocessors['paragraph'] = ParagraphProcessor(parser) + return parser + + class BlockProcessor: """ Base class for block processors. |