gatsby-plugin-released
v0.3.0
Published
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`.
Downloads
22
Readme
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.