Classify visitors by referrer into segments (direct, search, fediverse,
bluesky, indieweb, web) via a custom umami.track('reader-source') event.
Add noscript pixels to RSS/JSON feeds so feed-reader activity appears
under virtual /rss/* paths in Umami.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
RSS feeds encode special characters as HTML entities; the backend
serves them raw, causing " etc. to appear literally in the UI.
Decode titles client-side using the browser's HTML parser.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Switch from KittyGiraudel's shortcode-based footnotes plugin to
markdown-it-footnote, which handles standard [^1] Markdown syntax
used in Obsidian notes. Remove the {% footnotes %} shortcode from
the post layout as the plugin renders footnotes automatically.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Registers the KittyGiraudel footnotes plugin and adds {% footnotes %}
to post.njk below the article content.
Usage in content:
{% footnoteref "id" "Footnote text here" %}anchor text{% endfootnoteref %}
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Indiekit stores a single related URL as a plain string, not a YAML list.
Iterating over a string yields characters, breaking the See Also section.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds seeAlsoLinks filter that extracts all internal blog.giersig.eu
links from the raw markdown source and merges them with the explicit
`related` frontmatter field, deduplicated. The section now surfaces
automatically whenever an article links to another post inline.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- `backlinksWith` filter scans raw source files to find posts that
link to the current post (backlinks), with per-build caching.
- `postByUrl` filter looks up a post by absolute URL for title display.
- post.njk: "See Also" renders resolved `related` URLs with titles;
"Linked From" lists backlinks computed at build time.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>