This plugin will retrieve an image url defined as part of the frontmatter of a MDX or MarkdownRemark
file and create a file node to be used with gatsby-plugin-image
or gatsby-image
Just install as any other gatsby plugin!
$ npm install @matiasfha/gatsby-plugin-frontmatter-featured-image
or
$ yarn add gatsby-plugin-frontmatter-featured-image
then add this to your gatsby-config.js
file as a plugin
{
resolve: `@matiasfha/gatsby-plugin-frontmatter-featured-image,
options: {
image: 'featuredImage'
}
}
This plugin have only one configuration option, that is the image
property. This property is used
to let the plugin know what frontmatter attribute is used to store the image url
This plugin will create a new "entry" when you are querying for your mdx data that will be named the same as the image
property of the configuration, in this case featuredImage
.
query MyQuery {
allMdx {
nodes {
featuredImage {
childImageSharp {
gatsbyImageData
}
}
}
}
}
It works by using the createResolvers
gatsby api to create a new resolver on Mdx
or
MarkdownRemark
files. On each node will create a new file node by using createRemoteFileNode
from gatsby-source-filesystem
this enable you to directly query and get gatsbyImageData
.
This was created out of the need of create nodes that are queryable to be used with gatsby-plugin-image
when using the filesystem route api.
With filesystem route api you have access to the body
of the mdx file and also the frontmatter, but if you use an external image in frontmatter
you cannot used as a dynamic image with gatsby-plugin-image
This plugin solve that by created the required nodes.