rans>Skip to main content
Community Plugin
View plugin on GitHub
See starters using this

A plugin that lets you mark posts and drafts and automatically exclude them from production.

How it works

This plugin add a new field called released to markdown and mdx nodes. If your build happens before date of your post the released value will set to false.

How to use

Add plugin to gatsby-node.js

module.exports = {
  plugins: [
    /*
        ...
    */
    'gatsby-plugin-released'
  ]
};

Update your GraphQL queries

You may want to exclude drafts from a build step in file gatsby-node.js and respect the released value from blog pages such as index.js.

In both cases the query will look something like this. Pay attention to a filter property.

const query = graphql(
  `
    {
      allMarkdownRemark(
        sort: { fields: [frontmatter___date], order: DESC }
        filter: { fields: { released: { eq: true } } }
      ) {
        edges {
          node {
            id
          }
        }
      }
    }
  `
);

Update your component code

This step is totally up to yours component tree. The key point is to request necessary fields via GraphQL query.

const query = graphql`
  query {
    allMarkdownRemark(
      sort: { fields: [frontmatter___date], order: DESC }
      filter: { fields: { released: { eq: true } } }
    ) {
      edges {
        node {
          id
          fields {
            slug
            released
            releasedNotForced
          }
        }
      }
    }
  }

Options

module.exports = {
  plugins: [
    {
      resolve: 'gatsby-plugin-released',
      options: {
        fieldName: 'released',
        fieldNameNotForced: 'releasedNotForced',
        timezone: 'UTC',
        force: process.env.NODE_ENV === development
      }
    }
  ]
};

fieldName and fieldNameNotForced

Use to overried the default field name.

force

In case you want to display posts in development mode you can use force option.

timezone

Set another timezone that will be respected at build time to calculate released value.

Docs
Tutorials
Plugins
Blog
Showcase