aphid 0.1.2

aphid 0.1.2 is a release about everyday writing flow: keeping readers up to date with feeds, keeping listings readable as the archive grows, and keeping half-finished pieces out of the published site until they’re ready.

RSS and Atom feeds

Every build now emits an Atom feed at /feed.xml and an RSS feed at /rss.xml, both linked from every page’s <head> so feed readers can discover them automatically. The feed picks up the newest blog posts, and a new feed_limit setting in aphid.toml controls how many appear:

feed_limit = 20   # default; set to 0 for no limit

Both feeds are generated only in aphid buildaphid serve skips them so dev rebuilds stay fast. See Configuration for the full field list.

Pagination

The blog index and per-tag pages now split into pages of posts_per_page once the listing grows past that count. Page 1 stays at the canonical URL (/blog/, /tags/rust/); subsequent pages live at /blog/page/2/, /tags/rust/page/2/, and so on:

posts_per_page = 10   # default

The full mechanics — URL scheme, the pagination template variable, and the page-1-only treatment for “featured” cards — are in Pagination. Themes get a pagination.html partial that renders prev/next/numeric nav, and the docs theme uses pagination.current == 1 to gate its featured-post layout so page 2 onwards renders every post in the same compact format.

Drafts

Setting draft: true in any content file’s frontmatter excludes it from the build entirely:

---
title: Half-finished thoughts
slug: wip
author: LHelge
created: 2026-05-01
draft: true
---

A draft has no rendered page, no entry in any listing, no presence in the feeds or sitemap, and no nav entry (for standalone pages). Wiki-links pointing at a draft fail to resolve as if the file did not exist on disk — aphid build reports a broken link error and aphid serve warns. There is no preview override; to publish, change the flag to false or remove it. See Frontmatter for the field’s full semantics.

Also in 0.1.2

A handful of smaller things landed alongside the headline features:

  • Adjacent post nav. Every blog post now shows the previous (newer) and next (older) post at the bottom, with date and title. The values are exposed to templates as newer_post and older_post on the blog post context.
  • Tag-aware cards. Tag badges on the blog index and home-page cards link to the tag page, not the post — clicking the rest of the card still opens the post.
  • Tag pages share the blog-index layout. The docs theme used to show tag pages as a thin list; they now use the same compact-card format as the blog index, minus the featured treatment.

Upgrading

cargo install aphid --locked --force
aphid --version

There are no breaking changes from 0.1.1. Existing aphid.toml files keep working — feed_limit and posts_per_page both default sensibly, and draft is opt-in per file.