unified

Project: rehypejs/rehype-infer-title-meta

Package: rehype-infer-title-meta@1.0.0

  1. Dependents: 0
  2. rehype plugin to infer file metadata from the main title of a document
  1. unified 174
  2. plugin 137
  3. html 121
  4. rehype 85
  5. hast 72
  6. rehype-plugin 60
  7. file 34
  8. meta 9
  9. title 4

rehype-infer-title-meta

Build Coverage Downloads Size Sponsors Backers Chat

rehype plugin to infer file metadata from the main title of a document. This plugin sets file.data.meta.title. This is mostly useful with rehype-meta.

Contents

Install

This package is ESM only: Node 12+ is needed to use it and it must be imported instead of required.

npm:

npm install rehype-infer-title-meta

Use

Say example.js looks as follows:

import {unified} from 'unified'
import remarkParse from 'remark-parse'
import remarkRehype from 'remark-rehype'
import rehypeInferTitleMeta from 'rehype-infer-title-meta'
import rehypeDocument from 'rehype-document'
import rehypeMeta from 'rehype-meta'
import rehypeFormat from 'rehype-format'
import rehypeStringify from 'rehype-stringify'

main()

async function main() {
  const file = await unified()
    .use(remarkParse)
    .use(remarkRehype)
    .use(rehypeDocument)
    .use(rehypeInferTitleMeta)
    .use(rehypeMeta)
    .use(rehypeFormat)
    .use(rehypeStringify)
    .process('# Hello, world!')

  console.log(file.data)
  console.log(String(file))
}

Now, running node example yields:

{meta: {title: 'Hello, world!'}}
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Hello, world!</title>
  </head>
  <body>
    <h1>Hello, world!</h1>
  </body>
</html>

API

This package exports no identifiers. The default export is rehypeInferTitleMeta.

unified().use(rehypeInferTitleMeta, options?)

Plugin to infer file metadata of the document’s title.

options.selector

CSS selector to the title (string, default: 'h1'). Can be a selector list ('title, h1, .main-heading'), in which case the first element in the tree that matches is used.

Security

Use of rehype-infer-title-meta is safe.

Contribute

See contributing.md in rehypejs/.github for ways to get started. See support.md for ways to get help.

This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.

License

MIT © Titus Wormer