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