From 4ff74e33a48a8c4e101d2f5e259d7b911c03d9f9 Mon Sep 17 00:00:00 2001 From: Waylan Limberg Date: Wed, 6 Feb 2013 14:54:58 -0500 Subject: nl2br and attr_list compatability. Fixes #177. When using both extensions, breaks (`
`) must have a linebreak (`\n`) after them before attr_list is run. This patch reorders the treeprocessors so that happens ('attr_list' runs after 'prettify' not before). Also had to alter headerid extension so it runs after 'prettify' or it would run before 'attr_list' if loaded before 'attr_list' by user. --- markdown/extensions/attr_list.py | 2 +- markdown/extensions/headerid.py | 4 ++-- tests/extensions/nl2br_w_attr_list.html | 1 + tests/extensions/nl2br_w_attr_list.txt | 2 ++ tests/extensions/test.cfg | 3 +++ 5 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 tests/extensions/nl2br_w_attr_list.html create mode 100644 tests/extensions/nl2br_w_attr_list.txt diff --git a/markdown/extensions/attr_list.py b/markdown/extensions/attr_list.py index 00f92cd..3a79d85 100644 --- a/markdown/extensions/attr_list.py +++ b/markdown/extensions/attr_list.py @@ -130,7 +130,7 @@ class AttrListTreeprocessor(markdown.treeprocessors.Treeprocessor): class AttrListExtension(markdown.extensions.Extension): def extendMarkdown(self, md, md_globals): - md.treeprocessors.add('attr_list', AttrListTreeprocessor(md), '>inline') + md.treeprocessors.add('attr_list', AttrListTreeprocessor(md), '>prettify') def makeExtension(configs={}): diff --git a/markdown/extensions/headerid.py b/markdown/extensions/headerid.py index 1d158f9..b6a12e8 100644 --- a/markdown/extensions/headerid.py +++ b/markdown/extensions/headerid.py @@ -187,8 +187,8 @@ class HeaderIdExtension (markdown.Extension): # insert after attr_list treeprocessor md.treeprocessors.add('headerid', self.processor, '>attr_list') else: - # insert after 'inline' treeprocessor. - md.treeprocessors.add('headerid', self.processor, '>inline') + # insert after 'prettify' treeprocessor. + md.treeprocessors.add('headerid', self.processor, '>prettify') def reset(self): self.processor.IDs = [] diff --git a/tests/extensions/nl2br_w_attr_list.html b/tests/extensions/nl2br_w_attr_list.html new file mode 100644 index 0000000..e5e7eb2 --- /dev/null +++ b/tests/extensions/nl2br_w_attr_list.html @@ -0,0 +1 @@ +

Foo

\ No newline at end of file diff --git a/tests/extensions/nl2br_w_attr_list.txt b/tests/extensions/nl2br_w_attr_list.txt new file mode 100644 index 0000000..4b520b5 --- /dev/null +++ b/tests/extensions/nl2br_w_attr_list.txt @@ -0,0 +1,2 @@ +Foo +{: #bar} \ No newline at end of file diff --git a/tests/extensions/test.cfg b/tests/extensions/test.cfg index ac8a747..d642bd8 100644 --- a/tests/extensions/test.cfg +++ b/tests/extensions/test.cfg @@ -29,3 +29,6 @@ extensions=fenced_code [sane_lists] extensions=sane_lists + +[nl2br_w_attr_list] +extensions=nl2br,attr_list -- cgit v1.2.3