aboutsummaryrefslogtreecommitdiffstats
path: root/markdown/blockprocessors.py
diff options
context:
space:
mode:
authorWaylan Limberg <waylan@gmail.com>2010-07-07 10:11:45 -0400
committerWaylan Limberg <waylan@gmail.com>2010-07-07 10:11:45 -0400
commita33a04439905851b5b1a5db4104ec3a11b4ab1d3 (patch)
tree3b52768f0b0d928a688c79adcd531059ec7bc005 /markdown/blockprocessors.py
parent018aa73e82941288a1178ded751cf29d9bc13581 (diff)
downloadmarkdown-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.py18
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.