{%- macro open(id = None, classes = []) -%} {%- set attr = {"id": id, "classes": ["cards"], "extra_classes": classes} -%} {%- endmacro -%} {%- macro card(title, link, catcolor, lang) -%} {%- set attr = namespace(classes=[], style={"--category-color": catcolor}) -%} {%- set page = link.page -%} {%- set ns = namespace(resolvedimageurl=None) -%} {%- if page.metadata.has_image -%} {%- set attr.classes = ["has-image"] -%} {#- Determine imageurl -#} {%- set ns.resolvedimageurl = page.metadata.image.link.urlwithanchor -%} {%- if not page.metadata.image.link.is_external -%} {%- if page.metadata.image.link.url|length -%} {%- set ns.resolvedimageurl = [siteurl, ns.resolvedimageurl]|join("/") -%} {%- endif -%} {%- endif -%} {%- set imageurl = ["url('", ns.resolvedimageurl , "')"]|join() -%} {#- set imageurl = ["url('", siteurl, "/", page.metadata.image.link.url, "')"]|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 -%}
  • {{ common.render_link(link, title, lang, attr=attr) }}
  • {%- 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 -%}