Create a remark plugin which adds a reading time property to the frontmatter of your Markdown or MDX files. Use this property to display the reading time for each page.
Install Helper Packages
Install these two helper packages:
reading-time
to calculate minutes readmdast-util-to-string
to extract all text from your markdownCreate a remark plugin.
This plugin uses the mdast-util-to-string
package to get the Markdown file’s text. This text is then passed to the reading-time
package to calculate the reading time in minutes.
Add the plugin to your config:
Now all Markdown documents will have a calculated minutesRead
property in their frontmatter.
Display Reading Time
If your blog posts are stored in a content collection, access the remarkPluginFrontmatter
from the entry.render()
function. Then, render minutesRead
in your template wherever you would like it to appear.
If you’re using a Markdown layout, use the minutesRead
frontmatter property from Astro.props
in your layout template.
Learn how to share state across framework components with Nano Stores.
Add an RSS feed to your Astro site to let users subscribe to your content.
Learn how you can import YAML data by adding a Rollup plugin to your project.
Learn how to use JavaScript to send form submissions to an API Route
Learn how to build HTML forms and handle submissions in your frontmatter
Learn how to use Bun with your Astro site.
Learn how to call endpoints from the server in Astro.
Learn how to create an API route and fetch it from the client.
Learn how to build your Astro site using Docker.
Learn how to install a rehype plugin to add icons to external links in your Markdown files
Use dynamic routing and content collections to add internationalization support to your Astro site.
Build a remark plugin to add reading time to your Markdown or MDX files.
Learn how to share state across Astro components with Nano Stores.
© 2021 Fred K. Schott
Licensed under the MIT License.
https://docs.astro.build/en/recipes/reading-time/