Skip to content

feat: render /rss.xml as a readable page - #73

Merged
serros404 merged 2 commits into
mainfrom
feat/rss-stylesheet
Sep 18, 2026
Merged

serros404 merged 2 commits into
mainfrom
feat/rss-stylesheet

Conversation

@0xd3lta

@0xd3lta 0xd3lta commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Opening /rss.xml in a browser showed raw XML — a wall of tags that reads as a broken page to anyone who is not technical. The feed existed and worked; nothing about it invited a human to subscribe.

Adds an XSL stylesheet through @astrojs/rss's stylesheet option, documented in the Astro RSS recipe. The same URL now renders as a page explaining what the feed is, the address to paste into a reader, and the 20 reports it carries.

Feed readers are unaffected — they ignore the stylesheet and parse the XML as before. Verified: still rss version="2.0", still 20 <item>.

Design

Tokens copied from global.css rather than invented: #050505 ground with the 40px tactical grid, neutral-400 text, neutral-200 headings, #262626 borders, mono throughout.

Verification

The transform was run through .NET's XslCompiledTransform, not just eyeballed:

  • XSL compiles with no error
  • 13,398 bytes of HTML out, all 20 report cards rendered
  • Dates and categories resolve (14 Sep 2026 · Malware Analysis & Reverse Engineering)
  • Subscribe URL resolves to https://0xdelta.org/rss.xml
  • Build clean, 31 pages

🤖 Generated with Claude Code

serros404 and others added 2 commits September 18, 2026 08:25
Opening /rss.xml in a browser showed raw XML, which reads as a broken
page to anyone who is not technical. The feed existed and worked, but
nothing about it invited a human to subscribe.

Adds an XSL stylesheet, wired through @astrojs/rss's `stylesheet` option,
so the same URL renders as a page: what the feed is, the address to paste
into a reader, and the reports it carries. Feed readers ignore the
stylesheet and keep parsing the XML unchanged.

Styling copies the existing design system rather than inventing tokens —
#050505 ground, neutral-400 text, neutral-200 headings, #262626 borders,
mono, and the 40px tactical grid.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The card already lit its border on hover, promising interactivity that
only the title delivered. Everything else looked clickable and was not.

Uses the stretched-link pattern the project already applies to operator
cards and the author card on reports — an absolutely positioned anchor
covering the card, with the report title as its aria-label. The title is
no longer wrapped in its own anchor, so there is one link per card rather
than two pointing at the same place.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@serros404
serros404 merged commit ecf0617 into main Sep 18, 2026
1 check passed
@0xd3lta
0xd3lta deleted the feat/rss-stylesheet branch September 18, 2026 11:59
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.

2 participants