-
Notifications
You must be signed in to change notification settings - Fork 420
Description
Bug description
Shortcodes used in website.description are not resolved in the listing feed XML output. The raw shortcode syntax appears in the <description> element of the generated RSS feed.
This is the same root cause as #14237 (shortcodes in website.title not resolved in llms.txt): websiteDescription(project.config) reads the raw YAML value without passing it through Pandoc's shortcode resolution.
Affected code: src/project/types/website/listing/website-listing-feed.ts:125
const feedDescription = options.description ||
format.metadata[kDescription] as string ||
websiteDescription(project.config) || "";Steps to reproduce
quarto create project website issue-feed
cd issue-feedEdit _quarto.yml:
project:
type: website
website:
title: "My Site"
description: "A site about {{< env DEMO >}}"
site-url: "https://example.com"
navbar:
left:
- href: index.qmd
text: Home
format:
html:
theme: cosmoCreate _environment:
DEMO="testing"
Create index.qmd:
---
title: "Posts"
listing:
contents: "*.qmd"
feed: true
---Create post1.qmd:
---
title: "First Post"
date: "2024-01-01"
---
A post.Then render and inspect the feed:
quarto render
grep '<description>' _site/index.xmlActual behaviour
<description>A site about {{< env DEMO >}}</description>Expected behaviour
<description>A site about testing</description>Testing infrastructure note
There is currently no smoke-all test infrastructure for verifying feed XML content. Adding a test for this would require:
- A new
ensureFeedRegexMatchesverify function intests/verify.ts(similar toensureLlmsTxtRegexMatches) that derives the.xmlpath from the HTML output path - Registering it in the
verifyMapintests/smoke/smoke-all.test.ts - A smoke-all test project under
tests/docs/smoke-all/website/with a listing + feed configuration
The existing tests/smoke/site/render-listings.test.ts only checks HTML elements, not feed content.