Zola gør relative billedstier absolutte, så omskrivningen til webp skal matche den form. Ikke-konverterbare billeder får en rod-relativ sti, som preview kan flytte. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
115 lines
5.7 KiB
HTML
115 lines
5.7 KiB
HTML
{%- set preview = get_env(name="PW_PREVIEW", default="") == "1" -%}
|
|
{%- set seo = load_data(path="data/seo.json") -%}
|
|
{%- set lang = "da" -%}
|
|
{%- set noindex = preview -%}
|
|
{%- set alternates = [] -%}
|
|
{%- set titel = "" -%}
|
|
{%- set desc = config.description -%}
|
|
{%- set sti = "/404" -%}
|
|
{%- set artikel = false -%}
|
|
{%- if page -%}{%- set meta = page -%}{%- elif section -%}{%- set meta = section -%}{%- endif -%}
|
|
{%- if current_path -%}{%- set sti = current_path | trim_end(pat="/") -%}{%- endif -%}
|
|
{%- if sti == "" -%}{%- set sti = "/" -%}{%- endif -%}
|
|
{%- if meta -%}
|
|
{%- if meta.title -%}{%- set titel = meta.title -%}{%- endif -%}
|
|
{%- if meta.description -%}{%- set desc = meta.description -%}{%- endif -%}
|
|
{%- if meta.extra.lang -%}{%- set lang = meta.extra.lang -%}{%- endif -%}
|
|
{%- if meta.extra.noindex -%}{%- set noindex = true -%}{%- endif -%}
|
|
{%- if meta.extra.alternates -%}{%- set alternates = meta.extra.alternates -%}{%- endif -%}
|
|
{%- if page and page.date -%}{%- set artikel = true -%}{%- endif -%}
|
|
{%- elif term -%}
|
|
{%- set titel = "#" ~ term.name -%}{%- set desc = "Indlæg om " ~ term.name ~ "." -%}{%- set noindex = true -%}
|
|
{%- elif taxonomy -%}
|
|
{%- set titel = "Tags" -%}{%- set desc = "Alle emner på bloggen." -%}{%- set noindex = true -%}
|
|
{%- else -%}
|
|
{%- set titel = "404" -%}
|
|
{%- endif -%}
|
|
{%- if titel -%}{%- set sidetitel = titel ~ " · " ~ config.title -%}{%- else -%}{%- set sidetitel = config.title ~ " · Datalog & Technical Solution Architect" -%}{%- endif -%}
|
|
{%- set kanonisk = config.extra.site ~ sti -%}
|
|
<!doctype html>
|
|
<html lang="{{ lang }}"{% if preview %} data-base="/udkast"{% endif %}>
|
|
<head>
|
|
{% include "partials/banner.html" %}
|
|
{% include "partials/theme.html" %}
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>{{ sidetitel }}</title>
|
|
<meta name="description" content="{{ desc }}" />
|
|
<meta name="author" content="Asger Weirsøe" />
|
|
<meta name="google-site-verification" content="l5LfnJZFSkVCauhwN9pND_gvxdnZJbx3FM6fpEK8nzE" />
|
|
<meta name="robots" content="{% if noindex %}noindex, follow{% else %}index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1{% endif %}" />
|
|
<link rel="canonical" href="{{ kanonisk | safe }}" />
|
|
|
|
<!-- Open Graph -->
|
|
<meta property="og:type" content="{% if artikel %}article{% else %}website{% endif %}" />
|
|
<meta property="og:site_name" content="{{ config.title }}" />
|
|
<meta property="og:title" content="{{ sidetitel }}" />
|
|
<meta property="og:description" content="{{ desc }}" />
|
|
<meta property="og:url" content="{{ kanonisk | safe }}" />
|
|
<meta property="og:locale" content="{% if lang == "en" %}en_GB{% else %}da_DK{% endif %}" />
|
|
{%- for a in alternates %}
|
|
<link rel="alternate" hreflang="{{ a.lang }}" href="{{ (config.extra.site ~ a.path) | safe }}" />
|
|
{%- if a.lang == "da" %}
|
|
<link rel="alternate" hreflang="x-default" href="{{ (config.extra.site ~ a.path) | safe }}" />
|
|
{%- endif %}
|
|
{%- endfor %}
|
|
<meta property="og:image" content="{{ (config.extra.site ~ "/og.png") | safe }}" />
|
|
<meta property="og:image:width" content="1200" />
|
|
<meta property="og:image:height" content="630" />
|
|
<meta property="og:image:alt" content="{{ sidetitel }}" />
|
|
{%- if artikel %}
|
|
<meta property="article:published_time" content="{{ page.date | date(format="%Y-%m-%dT%H:%M:%S.000Z") }}" />
|
|
<meta property="article:modified_time" content="{{ (page.updated or page.date) | date(format="%Y-%m-%dT%H:%M:%S.000Z") }}" />
|
|
<meta property="article:author" content="Asger Weirsøe" />
|
|
{%- for t in page.taxonomies.tags or page.extra.tags or [] %}
|
|
<meta property="article:tag" content="{{ t }}" />
|
|
{%- endfor %}
|
|
{%- endif %}
|
|
|
|
<!-- Twitter -->
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:title" content="{{ sidetitel }}" />
|
|
<meta name="twitter:description" content="{{ desc }}" />
|
|
<meta name="twitter:image" content="{{ (config.extra.site ~ "/og.png") | safe }}" />
|
|
|
|
<meta name="theme-color" content="#0b0f17" media="(prefers-color-scheme: dark)" />
|
|
<meta name="theme-color" content="#f6f8fb" media="(prefers-color-scheme: light)" />
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
|
<link rel="manifest" href="/site.webmanifest" />
|
|
{%- if not preview %}
|
|
<link rel="sitemap" href="/sitemap-index.xml" />
|
|
{%- endif %}
|
|
<link rel="alternate" type="application/rss+xml" title="{{ config.title }}" href="/rss.xml" />
|
|
<link rel="me" href="https://mastodon.social/@asgerweirsoee" />
|
|
<link rel="stylesheet" href="{{ get_url(path="css/site.css", cachebust=true) | replace(from=config.base_url, to="") | safe }}" />
|
|
|
|
{{ <ld g={seo.baseGraph} /> }}
|
|
{%- block jsonld %}{% endblock %}
|
|
|
|
{% include "partials/matomo.html" %}
|
|
<script type="speculationrules">{"prefetch":[{"where":{"href_matches":"/*"},"eagerness":"moderate"}]}</script>
|
|
{%- if not preview %}
|
|
<script src="/registerSW.js"></script>
|
|
{%- endif %}
|
|
</head>
|
|
<body class="min-h-screen flex flex-col antialiased">
|
|
{%- if preview %}
|
|
<div class="sticky top-0 z-50 bg-amber-400 px-4 py-2 text-center text-sm font-semibold text-black">
|
|
UDKAST, ikke udgivet. <a href="/udkast/" class="underline">Tilbage til godkendelse</a>
|
|
</div>
|
|
{%- endif %}
|
|
{%- set nav = config.extra.nav_en if lang == "en" else config.extra.nav %}
|
|
{%- set hjem = "/en" if lang == "en" else "/" %}
|
|
{%- set andet = [a for a in alternates if a.lang != lang] | first %}
|
|
{% include "partials/header.html" %}
|
|
<main class="mx-auto w-full max-w-3xl flex-1 px-5 py-12">
|
|
{% block main %}{% endblock %}
|
|
</main>
|
|
{% include "partials/footer.html" %}
|
|
{% include "partials/palette.html" %}
|
|
{% include "partials/cookie.html" %}
|
|
{% include "partials/konami.html" %}
|
|
</body>
|
|
</html>
|