From 9943cdebb336cf9af0246680c1991001ba6d7de2 Mon Sep 17 00:00:00 2001 From: Jake <j.vondoemming@stud.uni-goettingen.de> Date: Wed, 12 Oct 2022 11:48:52 +0200 Subject: [PATCH] updated CustomBlockTOC --- fgs/pandoc.py | 7 +++++-- theme/templates/macros/content_renderer.html | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/fgs/pandoc.py b/fgs/pandoc.py index 541c8e0..8921b38 100644 --- a/fgs/pandoc.py +++ b/fgs/pandoc.py @@ -52,7 +52,6 @@ def run_pandoc(source, factories, lang, base="markdown", extensions=[], extra_ar contentmetadata = {} - # Get all images on page images = [] for e in elementlist: @@ -73,6 +72,10 @@ def run_pandoc(source, factories, lang, base="markdown", extensions=[], extra_ar # Add Table-of-Contents contentmetadata["toc"] = build_toc(headers) + # Add Table-of-Contents information to "toc" elements. + for e in elementlist: + if e.etype == "toc": + e.toc = contentmetadata["toc"] #blocks = json.loads(json.dumps(blocks, cls=ElementEncoder)) # Reduce to 'simple' dict, which can be converted to JSON in Jinja2. @@ -758,7 +761,7 @@ class CustomSyntaxHandler: class CustomBlockTOC(Block): etype = "toc" def replace(self, origelement, custom_sytax_register_entry): - pass # Necessary information for rendering can be found in page.metadata['toc'] + self.toc = None # Value will be set, after document is parsed and contentmetadata['toc'] is set. ############################## REGISTER ####################################### diff --git a/theme/templates/macros/content_renderer.html b/theme/templates/macros/content_renderer.html index 04a3233..0caf523 100644 --- a/theme/templates/macros/content_renderer.html +++ b/theme/templates/macros/content_renderer.html @@ -312,7 +312,7 @@ {%- endif -%} {%- endmacro -%} {%- macro render_block_toc(block, lang, meta) -%} - {%- set toc = meta.page.metadata.toc -%} + {%- set toc = block.toc -%} <nav class="toc"> {{ render_header(t[lang].toc.header, 2 + meta.header_level_offset, None, lang, meta.in_footer) }} {{ render_toc({"children": toc}, lang, meta) }} -- GitLab