Feeds & Machine-Readable Outputs
About 521 wordsAbout 2 min
2026-09-01
At build time, Shirone generates static outputs for feed readers, search engines, and AI tools. They all use the same site configuration and post data, with no runtime server required.
Output Catalog
| URL | Format | Purpose | Generation |
|---|---|---|---|
/rss.xml | RSS 2.0 | Feed readers and aggregators | Always generated |
/atom.xml | Atom 1.0 | Atom-compatible clients | Always generated |
/sitemap-index.xml | XML Sitemap | Search-engine discovery | Generated by Astro Sitemap |
/robots.txt | Plain text | Crawler rules and Sitemap declaration | Always generated |
/llms.txt | Markdown | Site index for AI tools | llms.enable: true |
/llms-full.txt | Markdown | Full public-post text dump | llms.enable and llms.generateFull are true |
All URLs use siteConfig.site (or the build context's site) as their absolute origin and respect Astro's base setting when deployed under a subpath.
RSS and Atom
Both feeds receive post data from getFeedPosts(). They include publicly published posts with titles, publication dates, descriptions, links, and rendered HTML content.
- RSS is generated with
@astrojs/rss; its language comes fromsiteConfig.lang. - Atom is generated by Shirone's
buildAtomXml(); its author comes fromprofileConfig.name. - Relative media references are converted to accessible site URLs in feed content.
- Drafts are excluded from production builds; they remain available for development preview.
- Encrypted posts remain as feed entries but are sanitized: titles receive a lock marker and content becomes a password-protection notice. When home excerpts are hidden, the description also uses a secure notice.
Feed readers such as Feedly and Inoreader can subscribe directly:
https://example.com/rss.xml
https://example.com/atom.xmlSitemap and robots.txt
The Astro Sitemap integration generates sitemap-index.xml from pages emitted by the build. Articles, standalone pages, and pagination routes appear according to whether their corresponding pages are generated in that build.
src/pages/robots.txt.ts emits:
User-agent: *
Disallow: /_astro/
Sitemap: https://example.com/sitemap-index.xmlThis only disallows crawling the compiled asset directory and declares the Sitemap URL; it does not block public posts. Ensure siteConfig.site and base are correct for custom domains and subpath deployments so absolute URLs point to the right location.
LLM Outputs and Privacy Boundaries
/llms.txt and /llms-full.txt are controlled by llmsConfig; see LLM-Friendly Content for section and extension settings. Both apply the same safety filters:
- Exclude
draft: trueposts; - Exclude
encrypted: trueposts; - Exclude posts matching
excludeTags; - Exclude posts matching
excludeCategories.
/llms.txt is an index of titles, links, and descriptions. /llms-full.txt also combines public post bodies and processes <llm-only> and <llm-exclude> markers.
Disable the AI endpoints in src/config/llmsConfig.ts or the content repository's config/llms.yaml:
enable: falseBoth URLs then return 404 and no static files are emitted. To keep only the index, set generateFull: false.
Pre-Release Checks
pnpm buildAfter building, inspect dist/ for rss.xml, atom.xml, sitemap-index.xml, robots.txt, and the configured llms.txt files. Confirm that:
siteConfig.siteis the production domain, not a local preview URL;basematches the hosting platform's path prefix;- RSS / Atom contain only sanitized encrypted entries, drafts are absent from production feeds, and both are excluded from LLM outputs;
- Feed and Sitemap URLs return
200and parse as valid XML.
Copyright
Copyright Ownership:matsuzaka-yuki
License under:Attribution 4.0 International (CC-BY-4.0)