From f353cc852af953fc8c0eb601da974d6d1a5ff7bb Mon Sep 17 00:00:00 2001 From: Max Goodman Date: Mon, 22 Apr 2013 17:06:32 -0700 Subject: [PATCH] Modularize wiki ToC generation. --- r2/r2/lib/filters.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/r2/r2/lib/filters.py b/r2/r2/lib/filters.py index f2ff7347a..c2ed62269 100644 --- a/r2/r2/lib/filters.py +++ b/r2/r2/lib/filters.py @@ -237,7 +237,7 @@ def safemarkdown(text, nofollow=False, wrap=True, **kwargs): else: return SC_OFF + text + SC_ON -def wikimarkdown(text): +def wikimarkdown(text, include_toc=True): from r2.lib.cssfilter import legacy_s3_url def img_swap(tag): @@ -264,7 +264,10 @@ def wikimarkdown(text): if images: [img_swap(image) for image in images] - inject_table_of_contents(soup, prefix="wiki") + if include_toc: + tocdiv = generate_table_of_contents(soup, prefix="wiki") + if tocdiv: + soup.insert(0, tocdiv) text = str(soup) @@ -272,7 +275,7 @@ def wikimarkdown(text): title_re = re.compile('[^\w.-]') header_re = re.compile('^h[1-6]$') -def inject_table_of_contents(soup, prefix): +def generate_table_of_contents(soup, prefix): header_ids = Counter() headers = soup.findAll(header_re) if not headers: @@ -327,7 +330,8 @@ def inject_table_of_contents(soup, prefix): previous = thislevel parent.append(li) - soup.insert(0, tocdiv) + return tocdiv + def keep_space(text): text = websafe(text)