aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWaylan Limberg <waylan@gmail.com>2010-03-01 13:07:57 -0500
committerWaylan Limberg <waylan@gmail.com>2010-03-01 13:07:57 -0500
commit996bcdd332551b82791ab0851e2f7f826bc0a4ed (patch)
tree7cf4de3a8759442338cf1f2875f3996661ecf4dc
parenta7844d9eb42c2786d5809443b5a9c3cc1dae0788 (diff)
downloadmarkdown-996bcdd332551b82791ab0851e2f7f826bc0a4ed.tar.gz
markdown-996bcdd332551b82791ab0851e2f7f826bc0a4ed.tar.bz2
markdown-996bcdd332551b82791ab0851e2f7f826bc0a4ed.zip
Fix bug with rawhtml and markdown escaping. Previously, any inline rawhtml that contained text that fit markdown's escaping syntax (i.e. <x\]>) was never unescaped. Now it is. Markdown probably shouldn't be escaping before removing rawhtml in the first place, but this will do for now.
-rw-r--r--markdown/postprocessors.py8
-rw-r--r--tests/misc/html.html3
-rw-r--r--tests/misc/html.txt1
3 files changed, 11 insertions, 1 deletions
diff --git a/markdown/postprocessors.py b/markdown/postprocessors.py
index 80227bb..e5c2e06 100644
--- a/markdown/postprocessors.py
+++ b/markdown/postprocessors.py
@@ -44,6 +44,7 @@ class RawHtmlPostprocessor(Postprocessor):
""" Iterate over html stash and restore "safe" html. """
for i in range(self.markdown.htmlStash.html_counter):
html, safe = self.markdown.htmlStash.rawHtmlBlocks[i]
+ html = self.unescape(html)
if self.markdown.safeMode and not safe:
if str(self.markdown.safeMode).lower() == 'escape':
html = self.escape(html)
@@ -59,6 +60,13 @@ class RawHtmlPostprocessor(Postprocessor):
html)
return text
+ def unescape(self, html):
+ """ Unescape any markdown escaped text within inline html. """
+ for k, v in self.markdown.treeprocessors['inline'].stashed_nodes.items():
+ ph = markdown.INLINE_PLACEHOLDER % k
+ html = html.replace(ph, '\%s' % v)
+ return html
+
def escape(self, html):
""" Basic html escaping """
html = html.replace('&', '&amp;')
diff --git a/tests/misc/html.html b/tests/misc/html.html
index cd6d4af..c4bad4f 100644
--- a/tests/misc/html.html
+++ b/tests/misc/html.html
@@ -10,4 +10,5 @@ Html with various attributes.
</div>
<p>And of course <script>blah</script>.</p>
-<p><a href="script&gt;stuff&lt;/script">this <script>link</a></p> \ No newline at end of file
+<p><a href="script&gt;stuff&lt;/script">this <script>link</a></p>
+<p>Some funky <x\]> inline stuff with markdown escaping syntax.</p> \ No newline at end of file
diff --git a/tests/misc/html.txt b/tests/misc/html.txt
index c08fe1d..b04b740 100644
--- a/tests/misc/html.txt
+++ b/tests/misc/html.txt
@@ -15,3 +15,4 @@ And of course <script>blah</script>.
[this <script>link](<script>stuff</script>)
+Some funky <x\]> inline stuff with markdown escaping syntax.