Skip to content

feat: support Atom 1.0 feeds alongside RSS#46

Merged
veeso merged 4 commits into6.0.0from
feat/44-support-atom-feed-alongside-rss
May 6, 2026
Merged

feat: support Atom 1.0 feeds alongside RSS#46
veeso merged 4 commits into6.0.0from
feat/44-support-atom-feed-alongside-rss

Conversation

@veeso
Copy link
Copy Markdown
Owner

@veeso veeso commented May 6, 2026

Summary

  • Add AtomFeed configuration module (blogatto/config/feed/atom) mirroring the RSS API: atom.new(id, title, updated) plus builder setters for authors, link, categories, contributors, generator, icon/logo, rights, subtitle, filter, serialize, and output.
  • Add internal Atom builder (blogatto/internal/builder/feed/atom) that converts AtomFeed/AtomFeedItem into webls/atom types and writes the rendered XML.
  • Wire config.atom_feed(...) into Config and the build pipeline so multiple Atom feeds can be generated alongside RSS feeds.
  • Includes the prior breaking refactor (refactor!: rename FeedConfig to RssFeedConfig and split into rss submodule) — required for the new feed/rss + feed/atom namespace split.
  • Update README, docs (new atom-feeds.md, updated index.md, configuration.md, rss-feeds.md, example.md, nav reordering for sitemap/dev-server/error-handling), and the simple_blog example to emit atom.xml.
  • Add tests for the new config module and the internal builder (28 new builder tests, full config coverage).

Closes #44

Test plan

  • gleam build clean (root project)
  • gleam test — 470 tests pass (was 442 before atom builder tests)
  • gleam format src test clean
  • examples/simple_blog builds and produces dist/atom.xml with valid Atom 1.0 entries for both posts

veeso added 4 commits May 6, 2026 21:52
…odule

BREAKING CHANGE: `blogatto/config/feed`'s `FeedConfig`, `FeedItem`, and the
related builder functions have moved to `blogatto/config/feed/rss` as
`RssFeedConfig` and `RssFeedItem`. `Config.feeds` is now `Config.rss_feeds`,
and `config.feed()` is now `config.rss_feed()`. `FeedMetadata` stays in
`blogatto/config/feed`. This makes the existing API explicit about RSS and
leaves room for additional feed formats (e.g. Atom, #44) without overloading
the generic `feed` namespace.
Adds AtomFeed configuration and internal builder for generating
Atom 1.0 feeds via webls. Multiple Atom feeds can be configured
through `config.atom_feed()` with optional filter/serialize hooks
mirroring the RSS API. Updates docs, README, and the simple_blog
example to demonstrate atom feed generation.

Closes #44
@cocogitto-bot
Copy link
Copy Markdown

cocogitto-bot Bot commented May 6, 2026

✔️ aa4b429...f34f847 - Conventional commits check succeeded.

@veeso veeso linked an issue May 6, 2026 that may be closed by this pull request
5 tasks
@veeso veeso merged commit f82c054 into 6.0.0 May 6, 2026
3 checks passed
@veeso veeso deleted the feat/44-support-atom-feed-alongside-rss branch May 6, 2026 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(feed): support Atom 1.0 feed alongside RSS 2.0

1 participant