aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWaylan Limberg <waylan@gmail.com>2010-08-02 23:36:39 -0400
committerWaylan Limberg <waylan@gmail.com>2010-08-02 23:36:39 -0400
commitf039ca04cccf0645a21cb0739c17e5f6abd593fb (patch)
treed5f7d7bf2e1bb480048eee80eef20e451495f488
parent7942471746b5ab0ce20182e26a23f4432632e2e5 (diff)
downloadmarkdown-f039ca04cccf0645a21cb0739c17e5f6abd593fb.tar.gz
markdown-f039ca04cccf0645a21cb0739c17e5f6abd593fb.tar.bz2
markdown-f039ca04cccf0645a21cb0739c17e5f6abd593fb.zip
Fixed problem hidden by Ticket 68. Defining a footnote placeholder in a markdown document results in the placeholder actually being replaced. Also added a test for this. Note that if the placeholder paragraph has other text, that text is lost. Not sure if this is a bug or bad markdown syntax.
-rw-r--r--markdown/extensions/footnotes.py15
-rw-r--r--tests/extensions/extra/footnote_placeholder.html10
-rw-r--r--tests/extensions/extra/footnote_placeholder.txt5
3 files changed, 22 insertions, 8 deletions
diff --git a/markdown/extensions/footnotes.py b/markdown/extensions/footnotes.py
index 3c9d23a..2bdabe9 100644
--- a/markdown/extensions/footnotes.py
+++ b/markdown/extensions/footnotes.py
@@ -84,10 +84,10 @@ class FootnoteExtension(markdown.Extension):
for child in element:
if child.text:
if child.text.find(self.getConfig("PLACE_MARKER")) > -1:
- return child, True
+ return child, element, True
if child.tail:
if child.tail.find(self.getConfig("PLACE_MARKER")) > -1:
- return (child, element), False
+ return child, element, False
finder(child)
return None
@@ -282,14 +282,13 @@ class FootnoteTreeprocessor(markdown.treeprocessors.Treeprocessor):
if footnotesDiv:
result = self.footnotes.findFootnotesPlaceholder(root)
if result:
- node, isText = result
+ child, parent, isText = result
+ ind = parent.getchildren().index(child)
if isText:
- node.text = None
- node.getchildren().insert(0, footnotesDiv)
+ parent.remove(child)
+ parent.insert(ind, footnotesDiv)
else:
- child, element = node
- ind = element.getchildren().find(child)
- element.getchildren().insert(ind + 1, footnotesDiv)
+ parent.insert(ind + 1, footnotesDiv)
child.tail = None
else:
root.append(footnotesDiv)
diff --git a/tests/extensions/extra/footnote_placeholder.html b/tests/extensions/extra/footnote_placeholder.html
new file mode 100644
index 0000000..7aaf4b2
--- /dev/null
+++ b/tests/extensions/extra/footnote_placeholder.html
@@ -0,0 +1,10 @@
+<div class="footnote">
+<hr />
+<ol>
+<li id="fn:1">
+<p>A Footnote.
+&#160;<a href="#fnref:1" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p>
+</li>
+</ol>
+</div>
+<p>Some text with a footnote<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup>.</p> \ No newline at end of file
diff --git a/tests/extensions/extra/footnote_placeholder.txt b/tests/extensions/extra/footnote_placeholder.txt
new file mode 100644
index 0000000..0b0af42
--- /dev/null
+++ b/tests/extensions/extra/footnote_placeholder.txt
@@ -0,0 +1,5 @@
+///Footnotes Go Here///
+
+Some text with a footnote[^1].
+
+[^1]: A Footnote.