From 677f85e1259d7c55a502d1de5dce4a85e0e64f29 Mon Sep 17 00:00:00 2001 From: Jake <j.vondoemming@stud.uni-goettingen.de> Date: Sun, 2 Oct 2022 22:46:19 +0200 Subject: [PATCH] added meta to blocks --- theme/templates/macros/content_renderer.html | 90 ++++++++------------ 1 file changed, 37 insertions(+), 53 deletions(-) diff --git a/theme/templates/macros/content_renderer.html b/theme/templates/macros/content_renderer.html index 286921a..4064074 100644 --- a/theme/templates/macros/content_renderer.html +++ b/theme/templates/macros/content_renderer.html @@ -2,7 +2,8 @@ {#- Siehe https://gitlab.gwdg.de/GAUMI-fginfo/fg-website/-/blob/better-content-renderer/docs/content.md -#} {%- macro render_content(content, lang) -%} - {{ render_blocks(content, lang) }} + {%- set meta = namespace() -%} + {{ render_blocks(content, lang, meta) }} {%- endmacro -%} {%- macro render_link(link, content, lang, attr = None, title = None) -%} @@ -14,7 +15,7 @@ {{ common.softbreak_span(obj.title) }} {%- endif -%} {%- else -%} - {{ render_blocks_or_inlines(content, lang) }} + {{ render_inlines(content, lang) }} {%- endif -%} {%- endcall -%} {%- endmacro -%} @@ -56,63 +57,46 @@ {%- endcall -%} {%- endmacro -%} -{%- macro render_blocks_or_inlines(bsois, lang) -%} - {%- for boi in bsois -%} - {{ render_block_or_inline(boi, lang) }} - {%- endfor -%} -{%- endmacro -%} - -{%- macro render_block_or_inline(boi, lang) -%} - {%- set eclass = boi['eclass'] -%} - {%- if eclass == "block" -%} - {{ render_block(boi,lang) }} - {%- elif eclass == "inline" -%} - {{ render_inline(boi,lang) }} - {%- else -%} - <br><strong>ERROR: Cannot render block or inline: '{{ boi|e }}'</strong><br> - {%- endif -%} -{%- endmacro -%} - {#- ############################ BLOCKS ################################### -#} -{%- macro render_blocks(blocks, lang) -%} +{%- macro render_blocks(blocks, lang, meta) -%} {%- for block in blocks -%} - {{ render_block(block,lang) }} + {{ render_block(block, lang, meta) }} {%- endfor -%} {%- endmacro -%} -{%- macro render_block(block, lang) -%} +{%- macro render_block(block, lang, meta) -%} {%- set etype = block['etype'] -%} {%- if etype == "header" -%} - {{ render_block_header(block, lang) }} + {{ render_block_header(block, lang, meta) }} {%- elif etype == "paragraph" -%} - {{ render_block_paragraph(block, lang) }} + {{ render_block_paragraph(block, lang, meta) }} {%- elif etype == "bulletlist" -%} - {{ render_block_bulletlist(block, lang) }} + {{ render_block_bulletlist(block, lang, meta) }} {%- elif etype == "plain" -%} - {{ render_block_plain(block, lang) }} + {{ render_block_plain(block, lang, meta) }} {%- elif etype == "codeblock" -%} - {{ render_block_codeblock(block, lang) }} + {{ render_block_codeblock(block, lang, meta) }} {%- elif etype == "blockquote" -%} - {{ render_block_blockquote(block, lang) }} + {{ render_block_blockquote(block, lang, meta) }} {%- elif etype == "blockcontainer" -%} - {{ render_block_blockcontainer(block, lang) }} + {{ render_block_blockcontainer(block, lang, meta) }} {%- elif etype == "horizontalrule" -%} - {{ render_block_horizontalrule(block, lang) }} + {{ render_block_horizontalrule(block, lang, meta) }} {%- elif etype == "rawblock" -%} - {{ render_block_rawblock(block, lang) }} + {{ render_block_rawblock(block, lang, meta) }} {%- elif etype == "orderedlist" -%} - {{ render_block_orderedlist(block, lang) }} + {{ render_block_orderedlist(block, lang, meta) }} {%- elif etype == "table" -%} - {{ render_block_table(block, lang) }} + {{ render_block_table(block, lang, meta) }} {%- elif etype == "definitionlist" -%} - {{ render_block_definitionlist(block, lang) }} + {{ render_block_definitionlist(block, lang, meta) }} {%- else -%} <br><strong>ERROR: Unhandled block type: '{{ etype|e }}'</strong><br> {%- endif -%} {%- endmacro -%} -{%- macro render_block_header(block, lang) -%} +{%- macro render_block_header(block, lang, meta) -%} {%- set level = block['level'] -%} {%- set attr = block['attr'] -%} {%- set content = block['content'] -%} @@ -120,53 +104,53 @@ {{ render_header(content, level, attr, lang) }} {%- endmacro -%} -{%- macro render_block_paragraph(block, lang) -%} +{%- macro render_block_paragraph(block, lang, meta) -%} {%- set content = block['content'] -%} <p>{{ render_inlines(content, lang) }}</p> {%- endmacro -%} -{%- macro render_block_bulletlist(block, lang) -%} +{%- macro render_block_bulletlist(block, lang, meta) -%} {%- set items = block['items'] -%} {%- set count = block['count'] -%} <ul> {%- for item in items -%} - <li>{{ render_blocks(item, lang) }}</li> + <li>{{ render_blocks(item, lang, meta) }}</li> {%- endfor -%} </ul> {%- endmacro -%} -{%- macro render_block_plain(block, lang) -%} +{%- macro render_block_plain(block, lang, meta) -%} {%- set content = block['content'] -%} {{ render_inlines(content, lang) }} {%- endmacro -%} -{%- macro render_block_codeblock(block, lang) -%} +{%- macro render_block_codeblock(block, lang, meta) -%} {%- set attr = block['attr'] -%} {%- set code = block['code'] -%} {%- set code_lines = block['code_lines'] -%} <pre {{ common.render_attr(attr, lang, extra_classes=["codeblock"]) }}>{{ code|e }}</pre> {%- endmacro -%} -{%- macro render_block_blockquote(block, lang) -%} +{%- macro render_block_blockquote(block, lang, meta) -%} {%- set content = block['content'] -%} <blockquote> - {{ render_blocks(content, lang) }} + {{ render_blocks(content, lang, meta) }} </blockquote> {%- endmacro -%} -{%- macro render_block_blockcontainer(block, lang) -%} +{%- macro render_block_blockcontainer(block, lang, meta) -%} {%- set attr = block['attr'] -%} {%- set content = block['content'] -%} <div {{ common.render_attr(attr, lang) }}> - {{ render_blocks(content, lang) }} + {{ render_blocks(content, lang, meta) }} </div> {%- endmacro -%} -{%- macro render_block_horizontalrule(block, lang) -%} +{%- macro render_block_horizontalrule(block, lang, meta) -%} <hr> {%- endmacro -%} -{%- macro render_block_rawblock(block, lang) -%} +{%- macro render_block_rawblock(block, lang, meta) -%} {%- set format = block['format'] -%} {%- set raw = block['raw'] -%} {%- if format == "html" -%} @@ -203,7 +187,7 @@ {%- endif -%} <{% if is_header %}th{% else %}td{% endif %} {{ common.render_attr(attr, lang, extra_classes=ns.classes, extra={"rowspan": row_span, "colspan": column_span}, extra_style=ns.extra_style) }}> - {{ render_blocks(content, lang) }} + {{ render_blocks(content, lang, meta) }} </{% if is_header %}th{% else %}td{% endif %}> {%- endmacro -%} @@ -227,7 +211,7 @@ </tr> {%- endmacro -%} -{%- macro render_block_table(block, lang) -%} +{%- macro render_block_table(block, lang, meta) -%} {#- https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table -#} {%- set attr = block['attr'] -%} {%- set caption = block['caption'] -%} @@ -238,7 +222,7 @@ <table> {%- if caption|length -%} - <caption>{{ render_blocks(caption, lang) }}</caption> + <caption>{{ render_blocks(caption, lang, meta) }}</caption> {%- endif -%} {#- TODO: Maybe add colgroup? -#} @@ -267,7 +251,7 @@ </table> {%- endmacro -%} -{%- macro render_block_orderedlist(block, lang) -%} +{%- macro render_block_orderedlist(block, lang, meta) -%} {%- set items = block['items'] -%} {%- set count = block['count'] -%} {%- set start = block['start'] -%} @@ -276,12 +260,12 @@ {#- ol start="{{ start|e }}" style="list-style-type: {{ render_orderedlist_type(style, delim) }};" -#} <ol start="{{ start|e }}" type="{{ render_orderedlist_type(style, delim) }}"> {%- for item in items -%} - <li>{{ render_blocks(item, lang) }}</li> + <li>{{ render_blocks(item, lang, meta) }}</li> {%- endfor -%} </ol> {%- endmacro -%} -{%- macro render_block_definitionlist(block, lang) -%} +{%- macro render_block_definitionlist(block, lang, meta) -%} {%- set items = block['items'] -%} <dl> {%- for item in items -%} @@ -289,7 +273,7 @@ {%- set definitions = item['definitions'] -%} <dt>{{ render_inlines(term, lang) }}</dt> {%- for def in definitions -%} - <dd>{{ render_blocks(def, lang) }}</dd> + <dd>{{ render_blocks(def, lang, meta) }}</dd> {%- endfor -%} {%- endfor -%} </dl> -- GitLab