aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--markdown/extensions/toc.py3
-rw-r--r--tests/test_extensions.py72
2 files changed, 74 insertions, 1 deletions
diff --git a/markdown/extensions/toc.py b/markdown/extensions/toc.py
index b3cf898..56db33c 100644
--- a/markdown/extensions/toc.py
+++ b/markdown/extensions/toc.py
@@ -180,7 +180,8 @@ class TocTreeprocessor(Treeprocessor):
c.text = ""
for elem in c:
anchor.append(elem)
- c.remove(elem)
+ while c:
+ c.remove(c[0])
c.append(anchor)
def add_permalink(self, c, elem_id):
diff --git a/tests/test_extensions.py b/tests/test_extensions.py
index 6d47e0e..19a1389 100644
--- a/tests/test_extensions.py
+++ b/tests/test_extensions.py
@@ -775,6 +775,78 @@ class TestTOC(TestCaseWithAssertStartsWith):
'<h2 id="header-2"><a class="toclink" href="#header-2">Header <em>2</em></a></h2>'
)
+ def testAnchorLinkWithSingleInlineCode(self):
+ """ Test TOC Anchorlink with single inline code. """
+ md = markdown.Markdown(
+ extensions=[markdown.extensions.toc.TocExtension(anchorlink=True)]
+ )
+ text = '# This is `code`.'
+ self.assertEqual(
+ md.convert(text),
+ '<h1 id="this-is-code">' # noqa
+ '<a class="toclink" href="#this-is-code">' # noqa
+ 'This is <code>code</code>.' # noqa
+ '</a>' # noqa
+ '</h1>' # noqa
+ )
+
+ def testAnchorLinkWithDoubleInlineCode(self):
+ """ Test TOC Anchorlink with double inline code. """
+ md = markdown.Markdown(
+ extensions=[markdown.extensions.toc.TocExtension(anchorlink=True)]
+ )
+ text = '# This is `code` and `this` too.'
+ self.assertEqual(
+ md.convert(text),
+ '<h1 id="this-is-code-and-this-too">' # noqa
+ '<a class="toclink" href="#this-is-code-and-this-too">' # noqa
+ 'This is <code>code</code> and <code>this</code> too.' # noqa
+ '</a>' # noqa
+ '</h1>' # noqa
+ )
+
+ def testPermalink(self):
+ """ Test TOC Permalink. """
+ md = markdown.Markdown(
+ extensions=[markdown.extensions.toc.TocExtension(permalink=True)]
+ )
+ text = '# Header'
+ self.assertEqual(
+ md.convert(text),
+ '<h1 id="header">' # noqa
+ 'Header' # noqa
+ '<a class="headerlink" href="#header" title="Permanent link">&para;</a>' # noqa
+ '</h1>' # noqa
+ )
+
+ def testPermalinkWithSingleInlineCode(self):
+ """ Test TOC Permalink with single inline code. """
+ md = markdown.Markdown(
+ extensions=[markdown.extensions.toc.TocExtension(permalink=True)]
+ )
+ text = '# This is `code`.'
+ self.assertEqual(
+ md.convert(text),
+ '<h1 id="this-is-code">' # noqa
+ 'This is <code>code</code>.' # noqa
+ '<a class="headerlink" href="#this-is-code" title="Permanent link">&para;</a>' # noqa
+ '</h1>' # noqa
+ )
+
+ def testPermalinkWithDoubleInlineCode(self):
+ """ Test TOC Permalink with double inline code. """
+ md = markdown.Markdown(
+ extensions=[markdown.extensions.toc.TocExtension(permalink=True)]
+ )
+ text = '# This is `code` and `this` too.'
+ self.assertEqual(
+ md.convert(text),
+ '<h1 id="this-is-code-and-this-too">' # noqa
+ 'This is <code>code</code> and <code>this</code> too.' # noqa
+ '<a class="headerlink" href="#this-is-code-and-this-too" title="Permanent link">&para;</a>' # noqa
+ '</h1>' # noqa
+ )
+
def testTitle(self):
""" Test TOC Title. """
md = markdown.Markdown(