diff --git a/apps/svelte.dev/src/routes/blog/rss.xml/+server.js b/apps/svelte.dev/src/routes/blog/rss.xml/+server.js
index 0695c2351e..ee994f9a4a 100644
--- a/apps/svelte.dev/src/routes/blog/rss.xml/+server.js
+++ b/apps/svelte.dev/src/routes/blog/rss.xml/+server.js
@@ -1,4 +1,5 @@
import { index } from '$lib/server/content';
+import { render_content } from '$lib/server/renderer';
export const prerender = false; // TODO
@@ -25,8 +26,24 @@ function escapeHTML(html) {
}
/** @param {import('@sveltejs/site-kit').Document[]} posts */
-const get_rss = (posts) =>
+const get_rss = async (posts) => {
+ const renderedPosts = await Promise.all(
+ posts
+ .filter((post) => !post.metadata.draft)
+ .map(
+ async (post) => `
+ -
+ ${escapeHTML(post.metadata.title)}
+ https://svelte.dev/${post.slug}
+ ${escapeHTML(post.metadata.author)}
+ ${escapeHTML(await render_content(post.file, post.body))}
+ ${formatPubdate(/** @type {string} */ (post.file.split('/').pop()).slice(0, 10))}
+
`
+ )
+ );
+
+ return `
@@ -39,19 +56,7 @@ const get_rss = (posts) =>
Svelte
https://svelte.dev/blog
- ${posts
- .filter((post) => !post.metadata.draft)
- .map(
- (post) => `
- -
- ${escapeHTML(post.metadata.title)}
- https://svelte.dev/${post.slug}
- ${escapeHTML(post.metadata.description)}
- ${formatPubdate(/** @type {string} */ (post.file.split('/').pop()).slice(0, 10))}
-
- `
- )
- .join('')}
+ ${renderedPosts.join('')}
@@ -59,9 +64,10 @@ const get_rss = (posts) =>
.replace(/>[^\S]+/gm, '>')
.replace(/[^\S]+