Skip to content

Latest commit

 

History

History
124 lines (97 loc) · 3.79 KB

File metadata and controls

124 lines (97 loc) · 3.79 KB
type title description i18nReady
tutorial
Add an RSS feed
Tutorial: Build your first Astro blog — Install Astro's official package for creating a feed that your readers can subscribe to
true

import Box from '/components/tutorial/Box.astro'; import Checklist from '/components/Checklist.astro'; import PreCheck from '/components/tutorial/PreCheck.astro'; import PackageManagerTabs from '/components/tabs/PackageManagerTabs.astro'; import { Steps } from '@astrojs/starlight/components';

- Install an Astro package for creating an RSS feed for your website - Create a feed that can be subscribed to and read by RSS feed readers

Install Astro's RSS package

Astro provides a custom package to quickly add an RSS feed to your website.

This official package generates a non-HTML document with information about all of your blog posts that can be read by feed readers like Feedly, The Old Reader, and more. This document is updated every time your site is rebuilt.

Individuals can subscribe to your feed in a feed reader, and receive a notification when you publish a new blog post on your site, making it a popular blog feature.

1. In your terminal, quit the Astro development server (Ctrl + C) and run the following command to install Astro's RSS package.
<PackageManagerTabs>
  <Fragment slot="npm">
  ```shell
  npm install @astrojs/rss
  ```
  </Fragment>
  <Fragment slot="pnpm">
  ```shell
  pnpm add @astrojs/rss
  ```
  </Fragment>
  <Fragment slot="yarn">
  ```shell
  yarn add @astrojs/rss
  ```
  </Fragment>
</PackageManagerTabs>
  1. Restart the dev server to begin working on your Astro project again.

    ```shell npm run dev ``` ```shell pnpm run dev ``` ```shell yarn run dev ```

Create an .xml feed document

1. Create a new file in `src/pages/` called `rss.xml.js`
  1. Copy the following code into this new document. Customize the title and description properties, and if necessary, specify a different language in customData:

    import rss, { pagesGlobToRssItems } from '@astrojs/rss';
    
    export async function GET(context) {
      return rss({
        title: 'Astro Learner | Blog',
        description: 'My journey learning Astro',
        site: context.site,
        items: await pagesGlobToRssItems(import.meta.glob('./**/*.md')),
        customData: `<language>en-us</language>`,
      });
    }
  2. Add the site property to the Astro config with your site's own unique Netlify URL.

    import { defineConfig } from "astro/config";
    
    export default defineConfig({
      site: "https://example.com"
    });
  3. Visit http://localhost:4321/rss.xml and verify that you can see (unformatted) text on the page with an item for each of your .md files. Each item should contain blog post information such as title, url, and description.

    :::tip[View your RSS feed in a reader] Download a feed reader, or sign up for an online feed reader service and subscribe to your site by adding your own Netlify URL. You can also share this link with others so they can subscribe to your posts, and be notified when a new one is published. :::

Checklist

- [ ] I can install an Astro package using the command line. - [ ] I can create an RSS feed for my website.

Resources