<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dennisfink.me/templates/blog-post.html, branch main</title>
<subtitle>Source files of my personal blog.</subtitle>
<id>https://git.dennisfink.me/dennisfink.me/atom/templates/blog-post.html?h=main</id>
<link rel='self' href='https://git.dennisfink.me/dennisfink.me/atom/templates/blog-post.html?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 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 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>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 proper Open Graph image metadata</title>
<updated>2026-06-19T16:21:16Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-06-19T16:21:16Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/dennisfink.me/commit/?id=41e364a3278ebe673cc851a80c206885076ed569'/>
<id>urn:sha1:41e364a3278ebe673cc851a80c206885076ed569</id>
<content type='text'>
This replaces the placeholder Open Graph image with a dedicated 1200×630
asset and adds the SVG source for future edits.

The base metadata now describes the site and preview image more
accurately, while blog post timestamps use the local publishing timezone
instead of UTC.
</content>
</entry>
<entry>
<title>Build the first usable version of the blog</title>
<updated>2026-06-18T15:57:51Z</updated>
<author>
<name>Dennis Fink</name>
</author>
<published>2026-06-18T15:57:51Z</published>
<link rel='alternate' type='text/html' href='https://git.dennisfink.me/dennisfink.me/commit/?id=a4e35942fee745e64db5d0099ba2582e0fb4417e'/>
<id>urn:sha1:a4e35942fee745e64db5d0099ba2582e0fb4417e</id>
<content type='text'>
This adds the Lektor project structure, models, templates, styling,
feeds, categories, tags, archives, custom Markdown heading handling, and
the initial content needed to make the blog usable.
</content>
</entry>
</feed>
