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.