<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dennisfink.me/templates, branch main</title>
<subtitle>Source files of my personal blog.</subtitle>
<id>https://git.dennisfink.me/dennisfink.me/atom/templates?h=main</id>
<link rel='self' href='https://git.dennisfink.me/dennisfink.me/atom/templates?h=main'/>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/dennisfink.me/'/>
<updated>2026-08-17T18:00:16Z</updated>
<entry>
<title>Add post changelogs</title>
<updated>2026-08-17T18:00:16Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-08-17T17:36:16Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/dennisfink.me/commit/?id=2b2d89ffd233e331a6985fe762ac339befc972a3'/>
<id>urn:sha1:2b2d89ffd233e331a6985fe762ac339befc972a3</id>
<content type='text'>
This replaces the manual `updated_date` field with a changelog flow
field so post updates can be recorded as dated entries.

The blog template now derives the "Last updated" metadata from the
latest changelog entry and renders the full changelog in the article
footer, with dedicated styling for compact change notes.
</content>
</entry>
<entry>
<title>Add RSS feed support</title>
<updated>2026-08-10T17:53:17Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-08-10T17:53:17Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/dennisfink.me/commit/?id=be8614b3c5f63b9e94341166567b9198746f98aa'/>
<id>urn:sha1:be8614b3c5f63b9e94341166567b9198746f98aa</id>
<content type='text'>
This adds a project-local RSS plugin that generates RSS 2.0 feeds from
configured Lektor sources, including feed titles, item dates, authors,
body content, and stable permalink IDs.

It also adds latest and all-post RSS feed configurations and advertises
both feeds from the base template alongside the existing Atom feeds.
</content>
</entry>
<entry>
<title>Advertise Webmention endpoint</title>
<updated>2026-08-10T17:51:35Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-08-10T17:51:35Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/dennisfink.me/commit/?id=0449117060a436792d4f7d89e053b478fe953a5a'/>
<id>urn:sha1:0449117060a436792d4f7d89e053b478fe953a5a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add self-hosted Pagefind search</title>
<updated>2026-08-09T13:34:34Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-08-09T13:34:34Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/dennisfink.me/commit/?id=9b7e535fa76efdd4f76c23f3d7dee8d860b60642'/>
<id>urn:sha1:9b7e535fa76efdd4f76c23f3d7dee8d860b60642</id>
<content type='text'>
This adds the Pagefind component UI assets and wires the search modal
into the base template with a compact header trigger.

The integration marks searchable page bodies explicitly, exposes page
titles to Pagefind metadata, and adds site-specific styling so the
search modal, trigger, focus states, and keyboard-selected results match
the blog’s colour scheme.
</content>
</entry>
<entry>
<title>Add aspect-ratio-aware image galleries</title>
<updated>2026-08-08T17:32:47Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-08-08T17:32:47Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/dennisfink.me/commit/?id=1af817249d115ff7013d3ab1a30ea145e30924c7'/>
<id>urn:sha1:1af817249d115ff7013d3ab1a30ea145e30924c7</id>
<content type='text'>
This adds a project-local gallery plugin that builds deterministic rectangular
image layouts from attachment aspect ratios, with both in-process and disk-backed
layout caching.

It also adds gallery flow blocks, templates, and CSS so posts can include
responsive galleries with lazy-loaded images, configurable gaps, target ratios,
and the existing breakout/centering utilities.
</content>
</entry>
<entry>
<title>Add GPX trail maps to blog posts</title>
<updated>2026-07-22T22:18:21Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-07-22T22:18:21Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/dennisfink.me/commit/?id=1fe1d13c600b7dfe421b3b99b833b7d5d1232724'/>
<id>urn:sha1:1fe1d13c600b7dfe421b3b99b833b7d5d1232724</id>
<content type='text'>
This adds a trail flow block so posts can include attached GPX files as
interactive maps with route display, elevation charts, activity
summaries, and start/finish markers.

The trail assets are loaded only when needed, keeping the shared
templates clean while vendoring the Leaflet dependencies required for
offline, self-hosted map rendering.
</content>
</entry>
<entry>
<title>Make article tags wrap like inline text</title>
<updated>2026-07-22T22:16:14Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-07-22T22:16:14Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/dennisfink.me/commit/?id=ca77de06be474dfd712402c327dc436864d233a3'/>
<id>urn:sha1:ca77de06be474dfd712402c327dc436864d233a3</id>
<content type='text'>
This moves the “Tagged with” label into the tag list itself, so the
footer can wrap naturally like a paragraph instead of splitting the
label and tags onto separate alignment contexts.

The CSS now treats each tag item as inline text while keeping later
items together, which avoids awkward line breaks after the label.
</content>
</entry>
<entry>
<title>Add structured data and microformats</title>
<updated>2026-07-14T17:38:31Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-07-14T17:38:31Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/dennisfink.me/commit/?id=5c65f40bbca27dfb26e75cb027f287b2aa78cd3a'/>
<id>urn:sha1:5c65f40bbca27dfb26e75cb027f287b2aa78cd3a</id>
<content type='text'>
This adds JSON-LD for the site, author, blog, and individual blog posts, so
search engines and other consumers can understand the blog structure more
clearly.

It also adds Microformats2 classes to blog posts and the about page, keeping
machine-readable author, post, category, date, and content data attached to the
visible HTML.
</content>
</entry>
<entry>
<title>Add SVG favicon support</title>
<updated>2026-06-20T18:00:31Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-06-20T18:00:31Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/dennisfink.me/commit/?id=206400382a5c111842fd77c8418ad94a85f2da99'/>
<id>urn:sha1:206400382a5c111842fd77c8418ad94a85f2da99</id>
<content type='text'>
This adds a scalable SVG favicon alongside the existing PNG favicon and
exposes both through explicit icon links in the base template.

The SVG is used for browsers that support it, while the 32×32 PNG
remains as a fallback for clients that still expect a raster favicon.
</content>
</entry>
<entry>
<title>Add page descriptions for metadata previews</title>
<updated>2026-06-19T16:35:56Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-06-19T16:35:56Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/dennisfink.me/commit/?id=cc6003d997e041127ac081e14a3213c4b898860d'/>
<id>urn:sha1:cc6003d997e041127ac081e14a3213c4b898860d</id>
<content type='text'>
This adds a description field to blog posts and uses it for the HTML
meta description and Open Graph description, with the blog tagline
remaining as the fallback.

Archive, category, and tag pages now define their own descriptions so
previews are more specific instead of all sharing the same generic site
tagline.
</content>
</entry>
</feed>
