Skip to content

Commit 52b9f8c

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 52b9f8c

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-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: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,14 @@ 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.assertTrue(self.md.toc.startswith('<div class="toc">'))
741+
self.md.reset()
742+
self.assertEqual(self.md.toc, '')
743+
736744

737745
class TestSmarty(unittest.TestCase):
738746
def setUp(self):

0 commit comments

Comments
 (0)