Skip to content

Feeds: ship full post content in RSS/Atom - #69

Merged
rivassec merged 1 commit into
mainfrom
feeds-full-content
Sep 12, 2026
Merged

Feeds: ship full post content in RSS/Atom#69
rivassec merged 1 commit into
mainfrom
feeds-full-content

Conversation

@rivassec

Copy link
Copy Markdown
Owner

Problem

The RSS feed shipped summary-only content. Pelican's default for RSS is
summary-only (RSS_FEED_SUMMARY_ONLY defaults to True), and
publishconf.py never overrode it. As a result output/feeds/all.rss.xml
carried short truncated summaries per item (150-310 chars) and zero full
post content, so feed readers only saw a teaser.

Fix

Set RSS_FEED_SUMMARY_ONLY = False in publishconf.py. Pelican then
places the full post HTML in each item's <description>.

Note on <content:encoded>: Pelican does not emit a content:encoded
element for RSS. Full content goes into <description> for RSS (the Atom
feed uses <content>). So the correct signal that the fix worked is the
<description> growing from a truncated summary to full HTML, not the
presence of content:encoded.

Verification

Built with pelican content -o output -s publishconf.py (Pelican 4.12.0)
and compared per-item <description> payloads:

  • Feed file size: 16 KB (before) -> 288 KB (after)
  • Per-item <description> length: 150-310 chars (before) -> 3,563-36,952
    chars (after), across all 21 items
  • Item count unchanged: 21

Guards run locally, all pass:

  • scripts/check_wellknown_llms.py - 0 issues
  • scripts/check_em_dashes.py - pass
  • scripts/check_descriptions.py - pass
  • scripts/check_link_graph.py - 21 posts, 0 issues
  • python3 -m unittest discover tests - 27 tests OK

Deploy builds with publishconf.py (.github/workflows/deploy.yml), so
the fix reaches production.

RSS feeds shipped truncated summaries only. Pelican's default for RSS
is summary-only (RSS_FEED_SUMMARY_ONLY defaults True), and publishconf.py
never overrode it, so output/feeds/all.rss.xml carried 150-310 char
truncated summaries per item and zero full content.

Set RSS_FEED_SUMMARY_ONLY = False in publishconf.py so the RSS feed
carries full post HTML in <description>. Note: Pelican does not emit
<content:encoded>; it places full content in <description> for RSS,
while Atom uses <content>.
@rivassec
rivassec merged commit 1004997 into main Sep 12, 2026
17 checks passed
@rivassec
rivassec deleted the feeds-full-content branch September 12, 2026 02:54
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.

1 participant