cards.html 1.64 KiB
{%- macro open(id = None, classes = []) -%}
{%- set attr = {"id": id, "classes": ["cards"], "extra_classes": classes} -%}
<ul {{ common.render_attr(attr, None) }}>
{%- endmacro -%}
{%- macro close() -%}
</ul>
{%- endmacro -%}
{%- macro card(title, link, catcolor, lang) -%}
{%- set attr = namespace(classes=[], style={"--category-color": catcolor}) -%}
{%- set page = link.page -%}
{%- if page.metadata.has_image -%}
{%- set attr.classes = ["has-image"] -%}
{%- set imageurl = ["url('", [siteurl, page.metadata.image.link.url]|join("/"), "')"]|join() -%}
{#- set imageurl = ["url('", ["http://127.0.0.1:8000/output", page.metadata.image.link.url]|join("/"), "')"]|join() -#}
{#- AHHHHHHHHH... Firefox interpretiert relative background-image urls falsch, wenn diese nicht direkt im inline-style sind! -#}
{%- set attr.style = {"--category-color": catcolor, "--card-image": imageurl, "background-image": imageurl } -%}
{%- endif -%}
<li>{{ common.render_link(link, title, lang, attr=attr) }}</li>
{%- endmacro -%}
{%- macro card_from_link(link, lang) -%}
{{ card(title=None, link=link, catcolor=link.category.color, lang=lang) }}
{%- endmacro -%}
{%- macro card_from_page(page, lang) -%}
{%- if not page.slug.startswith('tag-') -%}
{{ card_from_link(link=page.link, lang=lang) }}
{%- endif -%}
{%- endmacro -%}
{%- macro cards_from_pages(pages, lang, max = None, standalone = True) -%}
{%- if standalone -%}
{{ open() }}
{%- endif -%}
{%- for page in pages -%}
{%- if max is none or loop.index <= max -%}
{{ card_from_page(page, lang) }}
{%- endif -%}
{%- endfor -%}
{%- if standalone -%}
{{ close() }}
{%- endif -%}
{%- endmacro -%}