summaryrefslogtreecommitdiff
path: root/packages/astro-rss
diff options
context:
space:
mode:
Diffstat (limited to 'packages/astro-rss')
-rw-r--r--packages/astro-rss/README.md22
-rw-r--r--packages/astro-rss/src/index.ts16
-rw-r--r--packages/astro-rss/src/schema.ts1
-rw-r--r--packages/astro-rss/test/rss.test.js26
4 files changed, 9 insertions, 56 deletions
diff --git a/packages/astro-rss/README.md b/packages/astro-rss/README.md
index 268f58f26..c8485b02e 100644
--- a/packages/astro-rss/README.md
+++ b/packages/astro-rss/README.md
@@ -28,7 +28,7 @@ Start by [adding a `site` to your project's `astro.config` for link generation](
import rss from '@astrojs/rss';
import { getCollection } from 'astro:content';
-export async function get(context) {
+export async function GET(context) {
const posts = await getCollection('blog');
return rss({
title: 'Buzz’s Blog',
@@ -55,7 +55,7 @@ Read **[Astro's RSS docs][astro-rss]** for more on using content collections, an
The `rss` default export offers a number of configuration options. Here's a quick reference:
```js
-export function get(context) {
+export function GET(context) {
return rss({
// `<title>` field in output xml
title: 'Buzz’s Blog',
@@ -98,7 +98,7 @@ The base URL to use when generating RSS item links. We recommend using the [endp
```ts
import rss from '@astrojs/rss';
-export const get = (context) =>
+export const GET = (context) =>
rss({
site: context.site,
// ...
@@ -113,14 +113,6 @@ A list of formatted RSS feed items. See [Astro's RSS items documentation](https:
When providing a formatted RSS item list, see the [`RSSFeedItem` type reference](#rssfeeditem).
-### drafts
-
-Type: `boolean (optional)`
-
-**Deprecated**: Manually filter `items` instead.
-
-Set `drafts: true` to include [draft posts](https://docs.astro.build/en/guides/markdown-content/#draft-pages) in the feed output. By default, this option is `false` and draft posts are not included.
-
### stylesheet
Type: `string (optional)`
@@ -136,7 +128,7 @@ A string of valid XML to be injected between your feed's `<description>` and `<i
```js
import rss from '@astrojs/rss';
-export const get = () => rss({
+export const GET = () => rss({
...
customData: '<language>en-us</language>',
});
@@ -181,7 +173,7 @@ By default, the library will add trailing slashes to the emitted URLs. To preven
```js
import rss from '@astrojs/rss';
-export const get = () =>
+export const GET = () =>
rss({
trailingSlash: false,
});
@@ -361,7 +353,7 @@ This function assumes, but does not verify, you are globbing for items inside `s
// src/pages/rss.xml.js
import rss, { pagesGlobToRssItems } from '@astrojs/rss';
-export async function get(context) {
+export async function GET(context) {
return rss({
title: 'Buzz’s Blog',
description: 'A humble Astronaut’s guide to the stars',
@@ -379,7 +371,7 @@ As `rss()` returns a `Response`, you can also use `getRssString()` to get the RS
// src/pages/rss.xml.js
import { getRssString } from '@astrojs/rss';
-export async function get(context) {
+export async function GET(context) {
const rssString = await getRssString({
title: 'Buzz’s Blog',
...
diff --git a/packages/astro-rss/src/index.ts b/packages/astro-rss/src/index.ts
index a611afc16..48c5defe8 100644
--- a/packages/astro-rss/src/index.ts
+++ b/packages/astro-rss/src/index.ts
@@ -27,11 +27,6 @@ export type RSSOptions = {
stylesheet?: z.infer<typeof rssOptionsValidator>['stylesheet'];
/** Specify custom data in opening of file */
customData?: z.infer<typeof rssOptionsValidator>['customData'];
- /**
- * Whether to include drafts or not
- * @deprecated Deprecated since version 3.0. Use content collections instead.
- */
- drafts?: z.infer<typeof rssOptionsValidator>['drafts'];
trailingSlash?: z.infer<typeof rssOptionsValidator>['trailingSlash'];
};
@@ -48,11 +43,6 @@ export type RSSFeedItem = {
description?: z.infer<typeof rssSchema>['description'];
/** Append some other XML-valid data to this item */
customData?: z.infer<typeof rssSchema>['customData'];
- /**
- * Whether draft or not
- * @deprecated Deprecated since version 3.0. Use content collections instead.
- */
- draft?: z.infer<typeof rssSchema>['draft'];
/** Categories or tags related to the item */
categories?: z.infer<typeof rssSchema>['categories'];
/** The item author's email address */
@@ -92,7 +82,6 @@ const rssOptionsValidator = z.object({
return items;
}),
xmlns: z.record(z.string()).optional(),
- drafts: z.boolean().default(false),
stylesheet: z.union([z.string(), z.boolean()]).optional(),
customData: z.string().optional(),
trailingSlash: z.boolean().default(true),
@@ -159,10 +148,7 @@ export function pagesGlobToRssItems(items: GlobResult): Promise<ValidatedRSSFeed
/** Generate RSS 2.0 feed */
async function generateRSS(rssOptions: ValidatedRSSOptions): Promise<string> {
- const { site } = rssOptions;
- const items = rssOptions.drafts
- ? rssOptions.items
- : rssOptions.items.filter((item) => !item.draft);
+ const { items, site } = rssOptions;
const xmlOptions = {
ignoreAttributes: false,
diff --git a/packages/astro-rss/src/schema.ts b/packages/astro-rss/src/schema.ts
index eb15ecd58..98aa35f81 100644
--- a/packages/astro-rss/src/schema.ts
+++ b/packages/astro-rss/src/schema.ts
@@ -8,7 +8,6 @@ export const rssSchema = z.object({
.refine((value) => !isNaN(value.getTime())),
description: z.string().optional(),
customData: z.string().optional(),
- draft: z.boolean().optional(),
categories: z.array(z.string()).optional(),
author: z.string().optional(),
commentsUrl: z.string().optional(),
diff --git a/packages/astro-rss/test/rss.test.js b/packages/astro-rss/test/rss.test.js
index 5dfb48b32..cc7bff82b 100644
--- a/packages/astro-rss/test/rss.test.js
+++ b/packages/astro-rss/test/rss.test.js
@@ -156,36 +156,12 @@ describe('getRssString', () => {
chai.expect(str).to.contain(customData);
});
- it('should filter out entries marked as `draft`', async () => {
- const str = await getRssString({
- title,
- description,
- items: [phpFeedItem, { ...web1FeedItem, draft: true }],
- site,
- });
-
- chai.expect(str).xml.to.equal(validXmlWithoutWeb1FeedResult);
- });
-
- it('should respect drafts option', async () => {
- const str = await getRssString({
- title,
- description,
- items: [phpFeedItem, { ...web1FeedItem, draft: true }],
- site,
- drafts: true,
- });
-
- chai.expect(str).xml.to.equal(validXmlResult);
- });
-
it('should not append trailing slash to URLs with the given option', async () => {
const str = await getRssString({
title,
description,
- items: [phpFeedItem, { ...web1FeedItem, draft: true }],
+ items: [phpFeedItem],
site,
- drafts: true,
trailingSlash: false,
});