diff options
author | Waylan Limberg <waylan@gmail.com> | 2009-03-18 19:09:35 -0400 |
---|---|---|
committer | Waylan Limberg <waylan@gmail.com> | 2009-03-18 19:09:35 -0400 |
commit | e4508b2a767e0679bca71086890998d5e328517d (patch) | |
tree | f9a2cb5c7c0acc32b0f9cac69092cf8ea52aeea9 /markdown | |
parent | d912dde6b40fbfe02686e3d40eaf9b899261cff9 (diff) | |
download | markdown-e4508b2a767e0679bca71086890998d5e328517d.tar.gz markdown-e4508b2a767e0679bca71086890998d5e328517d.tar.bz2 markdown-e4508b2a767e0679bca71086890998d5e328517d.zip |
Fixed bug in toc extension and added a test. We now disallow the marker in any headers (h1-6) as this crashes markdown with an infinite loop trying to build the toc. Thanks for the report Holger Rapp.
Diffstat (limited to 'markdown')
-rw-r--r-- | markdown/extensions/toc.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/markdown/extensions/toc.py b/markdown/extensions/toc.py index 3e6e075..1624ccf 100644 --- a/markdown/extensions/toc.py +++ b/markdown/extensions/toc.py @@ -47,8 +47,11 @@ class TocTreeprocessor(markdown.treeprocessors.Treeprocessor): # To keep the output from screwing up the # validation by putting a <div> inside of a <p> # we actually replace the <p> in its entirety. + # We do not allow the marker inside a header as that + # would causes an enless loop of placing a new TOC + # inside previously generated TOC. - if c.text.find(self.config["marker"][0]) > -1: + if c.text.find(self.config["marker"][0]) > -1 and not header_rgx.match(c.tag): for i in range(len(p)): if p[i] == c: p[i] = div |