Skip to content
Snippets Groups Projects
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 -%}