bigins/scriptor-markdown-feed is a new standalone plugin that turns a
markdown content track into a syndication feed. Point it at a news/,
blog/, or releases/ directory and it answers /news/feed.xml by
scanning those .md files, parsing their frontmatter, and emitting
Atom 1.0 (or RSS 2.0) on every request. No build step, no cache, no
database table: add a dated entry, push, and the next poll sees it.
This site already runs it for /news/feed.xml.
What changed
-
Feed from markdown, not the database. It's the companion to scriptor-markdown-pages: the same
.mdfiles that render as pages back the feed, and the entry links it generates match how markdown-pages resolves those files. Thecontent_rootfalls back to the markdown-pages config, so a paired install needs no extra path. -
Atom 1.0 by default, RSS 2.0 on request. Entries sort newest first by the
date:frontmatter (mtime as fallback),_index.mdis skipped, and the output is escaped and well-formed. -
One-line activation. A feed is not page-shaped, so the plugin doesn't hook the page resolver. It activates from a single guard line at the top of the theme's
_ext.php, the same model as scriptor-simple-router:if (\Bigins\ScriptorMarkdownFeed\Feed::handle($config)) { return; }
Install
Not on Packagist, so register the VCS repo, then require (typically alongside markdown-pages, since it reuses that plugin's content root):
composer config repositories.scriptor-markdown-feed \
vcs https://github.com/bigin/scriptor-markdown-feed
composer require bigins/scriptor-markdown-feed:^0.1
Configure the feed under plugins.markdown_feed, then add the
_ext.php guard line above. News-entry filenames must be URL-safe
([a-z0-9_-]), because the entry URLs route through markdown-pages.