8b8f26fdf2af2a769f4846bdaaf4cf6b30f9e37c Thanks @madcampos! - Allows `enclosure' to have a length of 0457e8b6422704ba23347c766a8bb9c101c2aba0b Thanks @wkillerud! - Restores rssSchema to a zod object7356336d18c916804001bdf64bff5445d82baceb Thanks @florian-lefebvre! - Fixes rssSchema definition to allow calling standard zod object methods (like extend)24663c9695385fed9ece57bf4aecdca3a8581e70 Thanks @florian-lefebvre! - Fixes the RSS schema to make the title optional if the description is already provided. It also makes pubDate and link optional, as specified in the RSS specification.edfae50e6 Thanks @cdvillard! - Improves the @astrojs/rss error message thrown when the object passed to the items property is missing any of the three required keys or if one of those keys is mistyped.153a5abb9 Thanks @bluwy! - Removes the deprecated (in v3.0) drafts option as the feature is deprecated in Astro 3.0153a5abb9 Thanks @bluwy! - Removes the drafts option as the feature is deprecated in Astro 3.0#8188 d0679a666 Thanks @ematipico! - Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023.
#8179 6011d52d3 Thanks @matthewp! - Astro 3.0 Release Candidate
#8198 cb95aa5f8 Thanks @bluwy! - Update the rss() default export to return a Response instead of a simple object, which is deprecated in Astro 3.0. If you were directly returning the rss() result from an endpoint before, this breaking change should not affect you.
You can also import getRssString() to get the RSS string directly and use it to return your own Response:
// src/pages/rss.xml.js
import { getRssString } from '@astrojs/rss';
export async function get(context) {
const rssString = await getRssString({
title: 'Buzz’s Blog',
...
});
return new Response(rssString, {
headers: {
'Content-Type': 'application/xml',
},
});
}
If you'd like to create draft pages that are visible in dev but not in production, you can migrate to content collections and manually filter out pages with the draft: true frontmatter property instead.
cb95aa5f8 Thanks @bluwy! - Update the rss() default export to return a Response instead of a simple object, which is deprecated in Astro 3.0. If you were directly returning the rss() result from an endpoint before, this breaking change should not affect you.You can also import getRssString() to get the RSS string directly and use it to return your own Response:
// src/pages/rss.xml.js
import { getRssString } from '@astrojs/rss';
export async function get(context) {
const rssString = await getRssString({
title: 'Buzz’s Blog',
...
});
return new Response(rssString, {
headers: {
'Content-Type': 'application/xml',
},
});
}
If you'd like to create draft pages that are visible in dev but not in production, you can migrate to content collections and manually filter out pages with the draft: true frontmatter property instead.
1eae2e3f7 Thanks @Princesseuh! - Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023.51028f85c Thanks @DerTimonius! - Add URL to RSSOptions.site typee17ed0727 Thanks @AkashRajpurohit! - exposes RSSFeedItem type#7066 a37e67b52 Thanks @TheOtterlord! - Fix pubDate schema tranformation
#7104 826e02890 Thanks @bluwy! - Specify "files" field to only publish necessary files
b5482cee2 Thanks @bholmesdev! - Fix: remove accidental stripping of trailing /1/ on canonical URLs4ea716e56 Thanks @philnash! - Added extra elements to the RSS items, including categories and enclosureb1b9b1390 Thanks @aivarsliepa! - Fixes RSSOptions type error when using strictest Typescript tsconfig400ef26c9 Thanks @bholmesdev! - Preserve self-closing tags in customData option#6453 2e362042c Thanks @ematipico! - Added trailingSlash option to control whether or not the emitted URLs should have trailing slashes.
import rss from '@astrojs/rss';
export const get = () =>
rss({
trailingSlash: false,
});
By passing false, the emitted links won't have trailing slashes.
afbbc4d5b Thanks @Princesseuh! - Updated compilation settings to disable downlevelling for Node 14#5851 81dce94f2 Thanks @bholmesdev! - Update RSS config for readability and consistency with Astro 2.0.
import.meta.glob() handlingWe have deprecated items: import.meta.glob(...) handling in favor of a separate pagesGlobToRssItems() helper. This simplifies our items configuration option to accept a single type, without losing existing functionality.
If you rely on our import.meta.glob() handling, we suggest adding the pagesGlobToRssItems() wrapper to your RSS config:
// src/pages/rss.xml.js
import rss, {
+ pagesGlobToRssItems
} from '@astrojs/rss';
export function get(context) {
return rss({
+ items: pagesGlobToRssItems(
import.meta.glob('./blog/*.{md,mdx}'),
+ ),
});
}
rssSchema for content collections@astrojs/rss now exposes an rssSchema for use with content collections. This ensures all RSS feed properties are present in your frontmatter:
import { defineCollection } from 'astro:content';
import { rssSchema } from '@astrojs/rss';
const blog = defineCollection({
schema: rssSchema,
});
export const collections = { blog };
81dce94f2`](https://github.com/withastro/astro/commit/81dce94f2a) Thanks [@bholmesdev](https://github.com/bholmesdev)! - Update RSS config for readability and consistency with Astro 2.0.
- **Migration - `import.meta.glob()` handling**
We have deprecated `items: import.meta.glob(...)` handling in favor of a separate `pagesGlobToRssItems()` helper. This simplifies our `items` configuration option to accept a single type, without losing existing functionality.
If you rely on our `import.meta.glob()` handling, we suggest adding the `pagesGlobToRssItems()` wrapper to your RSS config:
```diff
// src/pages/rss.xml.js
import rss, {
+ pagesGlobToRssItems
} from '@astrojs/rss';
export function get(context) {
return rss({
+ items: pagesGlobToRssItems(
import.meta.glob('./blog/*.{md,mdx}'),
+ ),
});
}
```
- **New `rssSchema` for content collections**
`@astrojs/rss` now exposes an `rssSchema` for use with content collections. This ensures all RSS feed properties are present in your frontmatter:
```ts
import { defineCollection } from 'astro:content';
import { rssSchema } from '@astrojs/rss';
const blog = defineCollection({
schema: rssSchema,
});
export const collections = { blog };
```
c76e1c810 Thanks @mattstein! - Fixes a bug that prevented an item’s customData from being included.081e0a9d2 Thanks @smithbm2316! - Added the ability for users to include the full content of their posts/items in each RSS feed entry
via the new content key on the RSSFeedItem model.4a8a346ca Thanks @MoustaphaDev! - Add support for markdown files with the following extensions:
.markdown.mdown.mkdn.mkd.mdwn#4842 812658ad2 Thanks @bluwy! - Add missing dependencies, support strict dependency installation (e.g. pnpm)
#4842 812658ad2 Thanks @bluwy! - Remove path-browserify dependency
6e1d62fe2 Thanks @bholmesdev! - Fix globs for homepage route04ad44563 - > Astro v1.0 is out! Read the official announcement post.No breaking changes. This package is now officially stable and compatible with astro@1.0.0!
0efaf110 Thanks @bholmesdev! - Change the optional "canonicalUrl" argument to a required "site" argument. This fixes problems with import.meta.env.SITE. If you want to use your project's "site" field for your RSS feeds, set site: import.meta.env.SITE in the rss function options1032e450 Thanks @FredKSchott! - Introduce new @astrojs/rss package for RSS feed generation! This also adds a new global env variable for your project's configured "site": import.meta.env.SITE. This is consumed by the RSS feed helper to generate the correct canonical URL.