From 858d525a9bb4e9d24f26e0d26482357b81ffd682 Mon Sep 17 00:00:00 2001
From: Jake <j.vondoemming@stud.uni-goettingen.de>
Date: Sun, 2 Oct 2022 23:08:29 +0200
Subject: [PATCH] let sections have custom header levels

---
 theme/templates/macros/content_renderer.html |  6 +++---
 theme/templates/macros/renderers.html        | 16 ++++++++--------
 theme/templates/page.html                    |  6 +++---
 theme/templates/tag.html                     |  2 +-
 4 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/theme/templates/macros/content_renderer.html b/theme/templates/macros/content_renderer.html
index 4064074..164c42d 100644
--- a/theme/templates/macros/content_renderer.html
+++ b/theme/templates/macros/content_renderer.html
@@ -1,8 +1,8 @@
 
 {#- Siehe https://gitlab.gwdg.de/GAUMI-fginfo/fg-website/-/blob/better-content-renderer/docs/content.md -#}
 
-{%- macro render_content(content, lang) -%}
-	{%- set meta = namespace() -%}
+{%- macro render_content(content, lang, header_level_offset) -%}
+	{%- set meta = namespace(header_level_offset=header_level_offset) -%}
 	{{ render_blocks(content, lang, meta) }}
 {%- endmacro -%}
 
@@ -101,7 +101,7 @@
 	{%- set attr = block['attr'] -%}
 	{%- set content = block['content'] -%}
 
-	{{ render_header(content, level, attr, lang) }}
+	{{ render_header(content, level + meta.header_level_offset, attr, lang) }}
 {%- endmacro -%}
 
 {%- macro render_block_paragraph(block, lang, meta) -%}
diff --git a/theme/templates/macros/renderers.html b/theme/templates/macros/renderers.html
index 5677513..1e5d022 100644
--- a/theme/templates/macros/renderers.html
+++ b/theme/templates/macros/renderers.html
@@ -11,27 +11,27 @@
 	<iframe src="{{ s.url }}" loading="lazy"></iframe>
 {%- endmacro -%}
 
-{%- macro section_tag(s, lang) -%}
+{%- macro section_tag(s, lang, header_level) -%}
 	{%- if s.title is not defined -%}
-		{{ common.render_header(s.tag.title, 2, {"id": s.id}, lang) }}
+		{{ common.render_header(s.tag.title, header_level, {"id": s.id}, lang) }}
 	{%- endif -%}
 	{{ cards.cards_from_pages(s.tag.pages, lang, max=s.num|d(None)) }}
 	
 	{%- if s.tag.page -%}
-		{{ content_renderer.render_content(s.tag.page.content, lang) }}
+		{{ content_renderer.render_content(s.tag.page.content, lang, header_level - 1) }}
 	{%- endif -%}
 {%- endmacro -%}
 
-{%- macro section(s, lang) -%}
+{%- macro section(s, lang, header_level) -%}
 	{%- if s.title is defined -%}
-		{{ common.render_header(s.title[lang], 2, {"id": s.id}, lang) }}
+		{{ common.render_header(s.title[lang], header_level, {"id": s.id}, lang) }}
 	{%- endif -%}
 	{%- if s.type == "news" -%}
 		{{ section_news(s, lang) }}
 	{%- elif s.type == "iframe" -%}
 		{{ section_iframe(s, lang) }}
 	{%- elif s.type == "tag" -%}
-		{{ section_tag(s, lang) }}
+		{{ section_tag(s, lang, header_level) }}
 	{%- elif s.type == "relevant" -%}
 		{{ section_relevant(s, lang) }}
 	{%- else -%}
@@ -41,10 +41,10 @@
 	{%- endif -%}
 {%- endmacro -%}
 
-{%- macro sections(sl, lang) -%}
+{%- macro sections(sl, lang, header_level) -%}
 	{%- for s in sl -%}
 	<section>
-		{{ section(s, lang) }}
+		{{ section(s, lang, header_level) }}
 	</section>
 	{%- endfor -%}
 {%- endmacro -%}
diff --git a/theme/templates/page.html b/theme/templates/page.html
index 8e0b53a..db51dd0 100644
--- a/theme/templates/page.html
+++ b/theme/templates/page.html
@@ -16,11 +16,11 @@
 		{% endblock %}
 		{% block page_content %}
 			{%- if 'before' in page.metadata -%}
-				{{ render.sections(page.metadata.before, l) }}
+				{{ render.sections(page.metadata.before, l, 2) }}
 			{%- endif -%}
-			{{ content_renderer.render_content(page.content, l) }}
+			{{ content_renderer.render_content(page.content, l, 0) }}
 			{%- if 'after' in page.metadata -%}
-				{{ render.sections(page.metadata.after, l) }}
+				{{ render.sections(page.metadata.after, l, 2) }}
 			{%- endif -%}
 		{% endblock %}
 	</article>
diff --git a/theme/templates/tag.html b/theme/templates/tag.html
index cf8d5cf..de38594 100644
--- a/theme/templates/tag.html
+++ b/theme/templates/tag.html
@@ -8,7 +8,7 @@
 
 {% block main %}
 	<section>
-		{{ render.section({"type": "tag", "tag": tag, "num": None}, l) }}
+		{{ render.section({"type": "tag", "tag": tag, "num": None}, l, 1) }}
 	</section>
 {% endblock main %}
 
-- 
GitLab