diff --git a/generator/markdown.py b/generator/markdown.py index cd056f9..2d75e95 100644 --- a/generator/markdown.py +++ b/generator/markdown.py @@ -7,6 +7,7 @@ import mistune.toc import pygments import pygments.lexers import pygments.formatters +import html class LevelAdjustingHTMLRenderer(mistune.HTMLRenderer): @@ -89,4 +90,5 @@ def create( def render_toc_from_state(render_state: dict[str, Any], min_level: int = 1) -> str: - return mistune.toc.render_toc_ul(filter(lambda x: x[0] >= min_level, render_state.env["toc_items"])) + # hilarious note: if you supply a raw filter object, this dies. hence the cast to list. see https://github.com/lepture/mistune/pull/407 + return mistune.toc.render_toc_ul(list(filter(lambda x: x[0] >= min_level, render_state.env["toc_items"]))) diff --git a/poetry.lock b/poetry.lock index cef4b8d..a7b44b4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -282,4 +282,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "e9b4ebba9c7c7c01dc374f54ee71e90cc08f549ae8fa175cf7c651407fd744d0" +content-hash = "d7f23cd48511949feb0baad457ed037727428a0cb01b734c4437d5831254a7eb" diff --git a/pyproject.toml b/pyproject.toml index 32c4801..28d015a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ Jinja2 = "^3.1.2" PyYAML = "^6.0.1" fire = "^0.7.0" rich = "^13.7.0" -mistune = "^3.0.2" +mistune = "^3.1.0" pygments = "^2.17.2" diff --git a/site/content/_imports/toc.html b/site/content/_imports/toc.html index 1d28203..ffa3ff4 100644 --- a/site/content/_imports/toc.html +++ b/site/content/_imports/toc.html @@ -1,7 +1,9 @@ {# :t content = str #} {% macro render(content) -%} +{% if content != "" %}
On this page
{{ content | safe }}
+{% endif %} {%- endmacro %} \ No newline at end of file