diff options
-rw-r--r-- | markdown/extensions/toc.py | 3 | ||||
-rw-r--r-- | tests/test_extensions.py | 72 |
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">¶</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">¶</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">¶</a>' # noqa + '</h1>' # noqa + ) + def testTitle(self): """ Test TOC Title. """ md = markdown.Markdown( |