Skip to content

A Metalsmith plugin to extract an excerpt from HTML files.

License

Notifications You must be signed in to change notification settings

metalsmith/excerpts

Repository files navigation

@metalsmith/excerpts

A Metalsmith plugin to extract an excerpt from HTML files.

metalsmith: core plugin npm: version ci: build code coverage license: MIT

Installation

NPM:

npm install @metalsmith/excerpts

Yarn:

yarn add @metalsmith/excerpts

Usage

The excerpt is scraped from the first paragraph (<p> tag) of the rendered HTML contents of a file and added to its metadata excerpt key.

const excerpts = require('@metalsmith/excerpts')

metalsmith.use(excerpts()) // default -> file.excerpt
metalsmith.use(excerpts({ multipleFormats: true })) // -> file.excerpt.html & file.excerpt.text

Custom excerpts

You can define a custom excerpt in the front-matter of specific files:

---
excerpt: This will be the excerpt
---

This would be the excerpt if none was specified in the front-matter

Excerpts with tags stripped

Sometimes you may need access to the text content of the excerpt without HTML tags. Pass the multipleFormats: true option to store an excerpt object with both HTML and text excerpts { html: '...', text: '...' }:

metalsmith.use(excerpts({ multipleFormats: true }))

CLI usage

Add the @metalsmith/excerpts key to your metalsmith.json plugins key:

{
  "plugins": [{ "@metalsmith/excerpts": { "multipleFormats": false } }]
}

License

MIT