gatsby-plugin-slug-field

5.0.1 • Public • Published

gatsby-plugin-slug-field npm

Create a slug field in nodes using data from their other fields.

Installation

npm install gatsby-plugin-slug-field

Usage

/* gatsby-config.js */

module.exports = {
  plugins: [
    {
      resolve: 'gatsby-plugin-slug-field',
      options: {
        /* gatsby-plugin-slug-field options here */
      }
    }
  ]
}

The nodeType option must be set to enable the plugin. A slug field will be added to node types matching this option, and the slug will be generated using the data from baseField option.

Example

Using the following options:

/* gatsby-config.js */

module.exports = {
  plugins: [
    {
      resolve: 'gatsby-plugin-slug-field',
      options: {
        baseField: ['author', 'title', 'id'],
        fieldName: 'postSlug',
        nodeType: 'PostsYaml',
        urlSlug: {
          separator: '_'
        }
      },
    }
  ],
}

The query:

query {
  allPostsYaml {
    nodes {
      id
      title
      author
      postSlug
    }
  }
}

Will return:

{
  data: {
    allPostsYaml: {
      nodes: {
        id: 1234,
        title: 'Blog Post Title',
        author: undefined,
        postSlug: 'blog_post_title_1234'
      }
    }
  }
}

Options

baseField

Type: string, Array or function.

Defines the fields used to generate the slug. If set to a string or an Array, the matching fields will be used to generate the slug — if a field is null or undefined, it will be included as an empty string. For more complex use cases, a function is also accepted. It will receive the current node as the only parameter (e.g. node => node.field + '-slug') and must return a string — which will be used by url-slug to generate the slug.

fieldName

Type: string. Default: 'slug'.

The field name to store the generated slug. If the source node already has a field with the same name, its value will be passed to url-slug, and the baseField option will be ignored for that node.

nodeType

Type: string, Array or false. Default: false.

Filter which node types will be processed. It can be a single node type (e.g. 'PostsYaml'), or an array of node types (e.g. ['AuthorsYaml', 'PostsYaml']). Set it to false to disable the plugin.

uniqueSlugs

Type: boolean. Default: false.

If this option is set to true, a numerical suffix will be added to duplicated slugs.

Caveat: the numerical suffix can change during development or between production builds.

urlSlug

Type: Object. Default: {}.

url-slug options, more info can be found here.

License

The MIT License

/gatsby-plugin-slug-field/

    Package Sidebar

    Install

    npm i gatsby-plugin-slug-field

    Weekly Downloads

    55

    Version

    5.0.1

    License

    MIT

    Unpacked Size

    7.17 kB

    Total Files

    7

    Last publish

    Collaborators

    • stldo