This plugin extends one or more Gatsby GraphQL types and adds the following fields:
excerpt
: it returns the excerpt of a given text field in a given type.readingTimeInMinutes
: it returns the reading time in minutes of given a text field in a given type.
This plugin only works with text fields that implement the Portable Text specification.
Example of a Portable Text definition:
{
"style": "h1",
"_type": "block",
"children": [
{
"_type": "span",
"text": "This is a heading"
}
]
}
This blog uses the excerpt and readingTimeInMinutes.
This plugin does not depend on other plugins, but it comes in handy with plugins that implement Portable Text such as gatsby-source-sanity.
npm i gatsby-transform-portable-text --save
// in your gatsby-config.js
module.exports = {
// ...
plugins: [
// ...
{
resolve: `gatsby-transform-portable-text`,
options: {
extendTypes: [{ typeName: `SanityPost`, contentFieldName: "body" }]
}
}
]
// ...
};
Options | Type | Default | Description |
---|---|---|---|
extendTypes | array of { typeName: string, contentFieldName: string } | [required] typeName is the name of the type in the schema to be extended. contentFieldName is the field in the extended type that implements Portable Text |
Useful to display the excerpt or the reading time in minutes of a type that returns Portable Text such as a blog post implemented using Sanity.io.
query Example {
sanityPost(id: { eq: $id }) {
readingTimeInMinutes
excerpt
}
}
Thanks for your interest in contributing to this plugin! Pull Requests welcome for any level of improvement, from a small typo to a new section, help us make the project better.
yarn test
To submit a pull request, follow these steps
- Fork and clone this repo
- Create a branch for your changes
- Install dependencies with
yarn
- Make changes locally
- Make sure tests pass, otherwise update the tests
- Commit your changes
- Push your branch to origin
- Open a pull request in this repository with a clear title and description and link to any relevant issues
- Wait for a maintainer to review your PR