@fec/gatsby-plugin-advanced-feed

3.0.1 • Public • Published

@fec/gatsby-plugin-advanced-feed

Gatsby plugin that generates RSS 2, Atom and JSON feeds for your site.

Unit tests Integration tests

Made by 👨‍💻 Florian Eckerstorfer in 🎡 Vienna, Europe.

Table of Contents

  1. Features
  2. Differences to gatsby-plugin-feed
  3. Installation & Setup
  4. Configuration
  5. Code of Conduct
  6. Change log
  7. License

Features

  • Generates RSS 2.0
  • Generates Atom 1.0
  • Generates JSON Feed 1.0
  • Supports multiple feeds

Differences to gatsby-plugin-feed

  • Supports Atom 1.0 and JSON Feed 1.0 in addition to RSS 2.0
  • More options to customize feed description, copyright, author, etc
  • Does not support serialize and query options (yet)

Installation & Setup

First you need to install the plugin with NPM or Yarn:

npm install @fec/gatsby-plugin-advanced-feed --save
yarn add @fec/gatsby-plugin-advanced-feed

Versions 2.x of this plugin are tested with Gatsby v3, you might need to use @fec/gatsby-plugin-advanced-feed@1 if you are still using Gatsby v2.

Next you need add the plugin to the plugins list in gatsby-config.js:

// ./gatsby-config.js
module.exports = {
  // ...
  plugins: [
    // ...
    '@fec/gatsby-plugin-advanced-feed',
  ],
};

⚠️ Feeds are only generated on gatsby build, when running the local development server (gatsby develop) no feeds will be generated.

Configuration

You can configure @fec/gatsby-plugin-advanced-feed. The following example contains all configuration options and their default value:

// ./gatsby-config.js
module.exports = {
  // ...
  plugins: [
    // ...
    {
    resolve: '@fec/gatsby-plugin-advanced-feed',
    options: {
      feeds: [
        {
          // Configure the feed; smart defaults are choosen if not set
          author: undefined,      // default: site.siteMetadata.author
          copyright: undefined,   // default: "All rights reserved {year}, {site.siteMetadata.author}"
          description: undefined, // default: site.siteMetadata.description
          email: false,           // default: false ➞ no email in feed; undefined ➞ site.siteMetadata.email
          id: undefined,          // default: site.siteMetadata.siteUrl
          link: undefined,        // default: site.siteMetadata.siteUrl
          title: undefined,       // default: site.siteMetadata.title

          // Add <link> tags in <head> to feeds
          createLinkInHead: true, // `true` for all pages or regular expression to match pathnames

          // Number of articles to include in feed
          limit: 10,

          // Include all pages which `fileAbsolutePath` matches this regular expression
          match: '^/blog/',

          // File names of generated feeds
          output: {
            rss2: 'rss.xml',
            atom: 'atom.xml',
            json: 'feed.json',
          },
        }
      ],
    },
  ],
};

Include only in certain pages

@fec/gatsby-plugin-advanced-feed allows you to link the feeds in the <head> or your page. This can be configured on a per-feed basis. If the option createLinkInHead for a feed is true the <link> will be included on all pages. You can include the <link> only for certain pages by specifying a regular expression.

In the following example the <link> tags will only be inserted on all pages which pathname matches the regular expression /^\/blog/:

// ./gatsby-config.js
module.exports = {
  // ...
  plugins: [
    // ...
    {
      resolve: '@fec/gatsby-plugin-advanced-feed',
      options: {
        feeds: [
          createLinkInHead: /^\/blog/,
        ]
      }
    }
  ],
};

Code of Conduct

See CODE_OF_CONDUCT

Change log

See CHANGELOG

License

See LICENSE

Package Sidebar

Install

npm i @fec/gatsby-plugin-advanced-feed

Weekly Downloads

169

Version

3.0.1

License

MIT

Unpacked Size

39 kB

Total Files

25

Last publish

Collaborators

  • florianeckerstorfer