diff --git a/fgs/pandoc.py b/fgs/pandoc.py index 541c8e0895236768eadf62b4b7682df8b8a67e87..8921b38fc416fde684499d0e5518c2c71ab1473f 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 04a3233b74cd9a8cbce449ca67d9820953879d96..0caf523629af5faac035916b425d4593ef5fdcd8 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) }}