diff options
Diffstat (limited to 'packages/astro-rss')
-rw-r--r-- | packages/astro-rss/CHANGELOG.md | 6 | ||||
-rw-r--r-- | packages/astro-rss/README.md | 22 | ||||
-rw-r--r-- | packages/astro-rss/package.json | 8 | ||||
-rw-r--r-- | packages/astro-rss/src/index.ts | 16 | ||||
-rw-r--r-- | packages/astro-rss/src/schema.ts | 1 | ||||
-rw-r--r-- | packages/astro-rss/test/rss.test.js | 26 |
6 files changed, 19 insertions, 60 deletions
diff --git a/packages/astro-rss/CHANGELOG.md b/packages/astro-rss/CHANGELOG.md index 26e9c95d7..60327a088 100644 --- a/packages/astro-rss/CHANGELOG.md +++ b/packages/astro-rss/CHANGELOG.md @@ -1,5 +1,11 @@ # @astrojs/rss +## 4.0.0-beta.0 + +### Major Changes + +- [#9168](https://github.com/withastro/astro/pull/9168) [`153a5abb9`](https://github.com/withastro/astro/commit/153a5abb905042ac68b712514dc9ec387d3e6b17) Thanks [@bluwy](https://github.com/bluwy)! - Removes the `drafts` option as the feature is deprecated in Astro 3.0 + ## 3.0.0 ### Major Changes 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/package.json b/packages/astro-rss/package.json index c200e6c59..86df612b7 100644 --- a/packages/astro-rss/package.json +++ b/packages/astro-rss/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/rss", "description": "Add RSS feeds to your Astro projects", - "version": "3.0.0", + "version": "4.0.0-beta.0", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", @@ -27,9 +27,9 @@ "test": "mocha --exit --timeout 20000" }, "devDependencies": { - "@types/chai": "^4.3.5", - "@types/chai-as-promised": "^7.1.5", - "@types/mocha": "^10.0.1", + "@types/chai": "^4.3.10", + "@types/chai-as-promised": "^7.1.8", + "@types/mocha": "^10.0.4", "astro": "workspace:*", "astro-scripts": "workspace:*", "chai": "^4.3.7", 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, }); |