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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7b2e5e8 · Dec 17, 2021

History

65 Commits
Dec 17, 2021
Dec 11, 2021
Dec 9, 2021
Dec 10, 2021
Dec 9, 2021
Dec 9, 2021
Dec 9, 2021
Dec 10, 2021
Dec 10, 2021
Dec 17, 2021
Dec 17, 2021
Dec 17, 2021
Dec 9, 2021
Dec 11, 2021
Dec 17, 2021
Dec 17, 2021

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