diff options
author | Waylan Limberg <waylan@gmail.com> | 2009-06-17 17:14:01 -0400 |
---|---|---|
committer | Waylan Limberg <waylan@gmail.com> | 2009-06-17 17:14:01 -0400 |
commit | c38f1813a1c2d7c531517a74c456166af92356b4 (patch) | |
tree | 0a9af9189447fe3cc38c88a2e3a3de8f807aa19f | |
parent | 0ae9951f49eb75c8a9fb9f841673b889763c1811 (diff) | |
download | markdown-c38f1813a1c2d7c531517a74c456166af92356b4.tar.gz markdown-c38f1813a1c2d7c531517a74c456166af92356b4.tar.bz2 markdown-c38f1813a1c2d7c531517a74c456166af92356b4.zip |
Fixed ticket 35. Lists now work when padded with five or more spaces after asterisk. Adjusted regex to eat all (one or more) of the spaces. While it may seem wrong (at least in the loose list case), this is how all other implementations work. And it solves a number of edge cases otherwise not accounted for in the list parser.
-rw-r--r-- | markdown/blockprocessors.py | 8 | ||||
-rw-r--r-- | tests/misc/lists6.html | 18 | ||||
-rw-r--r-- | tests/misc/lists6.txt | 14 |
3 files changed, 36 insertions, 4 deletions
diff --git a/markdown/blockprocessors.py b/markdown/blockprocessors.py index 79f4db9..7d3b137 100644 --- a/markdown/blockprocessors.py +++ b/markdown/blockprocessors.py @@ -256,11 +256,11 @@ class OListProcessor(BlockProcessor): TAG = 'ol' # Detect an item (``1. item``). ``group(1)`` contains contents of item. - RE = re.compile(r'^[ ]{0,3}\d+\.[ ](.*)') + RE = re.compile(r'^[ ]{0,3}\d+\.[ ]+(.*)') # Detect items on secondary lines. they can be of either list type. - CHILD_RE = re.compile(r'^[ ]{0,3}((\d+\.)|[*+-])[ ](.*)') + CHILD_RE = re.compile(r'^[ ]{0,3}((\d+\.)|[*+-])[ ]+(.*)') # Detect indented (nested) items of either type - INDENT_RE = re.compile(r'^[ ]{4,7}((\d+\.)|[*+-])[ ].*') + INDENT_RE = re.compile(r'^[ ]{4,7}((\d+\.)|[*+-])[ ]+.*') def test(self, parent, block): return bool(self.RE.match(block)) @@ -324,7 +324,7 @@ class UListProcessor(OListProcessor): """ Process unordered list blocks. """ TAG = 'ul' - RE = re.compile(r'^[ ]{0,3}[*+-][ ](.*)') + RE = re.compile(r'^[ ]{0,3}[*+-][ ]+(.*)') class HashHeaderProcessor(BlockProcessor): diff --git a/tests/misc/lists6.html b/tests/misc/lists6.html new file mode 100644 index 0000000..24aad38 --- /dev/null +++ b/tests/misc/lists6.html @@ -0,0 +1,18 @@ +<p>Test five or more spaces as start of list:</p> +<ul> +<li>five spaces</li> +</ul> +<p>not first item:</p> +<ul> +<li>one space</li> +<li>five spaces</li> +</ul> +<p>loose list:</p> +<ul> +<li> +<p>one space</p> +</li> +<li> +<p>five spaces</p> +</li> +</ul>
\ No newline at end of file diff --git a/tests/misc/lists6.txt b/tests/misc/lists6.txt new file mode 100644 index 0000000..f12788f --- /dev/null +++ b/tests/misc/lists6.txt @@ -0,0 +1,14 @@ +Test five or more spaces as start of list: + +* five spaces + +not first item: + +* one space +* five spaces + +loose list: + +* one space + +* five spaces |