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 .md files that render as pages back the feed, and the entry links it generates match how markdown-pages resolves those files. The content_root falls 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.md is 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.