Skip to content

Commit 182a26c

Browse files
committed
Add reset support to TOC extension.
Now, whenever the TOC extensiuon is loaded, the Markdown class instance will always have a toc attribute (md.toc). Calling md.reset() will also reset the toc attribute which defaults to an empty string.
1 parent 257c0fe commit 182a26c

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

markdown/extensions/toc.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,9 @@ def __init__(self, *args, **kwargs):
234234
super(TocExtension, self).__init__(*args, **kwargs)
235235

236236
def extendMarkdown(self, md, md_globals):
237+
md.registerExtension(self)
238+
self.md = md
239+
self.reset()
237240
tocext = self.TreeProcessorClass(md)
238241
tocext.config = self.getConfigs()
239242
# Headerid ext is set to '>prettify'. With this set to '_end',
@@ -243,6 +246,9 @@ def extendMarkdown(self, md, md_globals):
243246
# to redefine ids after toc is created. But we do want toc prettified.
244247
md.treeprocessors.add("toc", tocext, "_end")
245248

249+
def reset(self):
250+
self.md.toc = ''
251+
246252

247253
def makeExtension(*args, **kwargs):
248254
return TocExtension(*args, **kwargs)

tests/test_extensions.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,25 @@ def testNoMarker(self):
733733
'</div>\n'
734734
)
735735

736+
def testReset(self):
737+
""" Test TOC Reset. """
738+
self.assertEqual(self.md.toc, '')
739+
self.md.convert('# Header 1\n\n## Header 2')
740+
self.assertEqual(
741+
self.md.toc,
742+
'<div class="toc">\n'
743+
'<ul>\n' # noqa
744+
'<li><a href="#header-1">Header 1</a>' # noqa
745+
'<ul>\n' # noqa
746+
'<li><a href="#header-2">Header 2</a></li>\n' # noqa
747+
'</ul>\n' # noqa
748+
'</li>\n' # noqa
749+
'</ul>\n' # noqa
750+
'</div>\n'
751+
)
752+
self.md.reset()
753+
self.assertEqual(self.md.toc, '')
754+
736755

737756
class TestSmarty(unittest.TestCase):
738757
def setUp(self):

0 commit comments

Comments
 (0)