mdast utility to make sure that there is only one top-level heading in the document by adjusting headings depths accordingly.
Providing multiple top-level headings per single markdown document is confusing for tools that assume that there is only a single top-level heading that contains some meta-information (usually title) about the document.
npm:
npm install mdast-normalize-headings
var u = require('unist-builder')
var normalizeHeadings = require('mdast-normalize-headings')
var tree = u('root', [
u('heading', {depth: 1}, [u('text', 'title')]),
u('heading', {depth: 2}, [u('text', 'description')]),
u('heading', {depth: 1}, [u('text', 'example')])
])
console.log(tree)
normalizeHeadings(tree)
console.log(tree)
Yields:
{ type: 'root',
children:
[ { type: 'heading', depth: 1, children: [Array] },
{ type: 'heading', depth: 2, children: [Array] },
{ type: 'heading', depth: 1, children: [Array] } ] }
{ type: 'root',
children:
[ { type: 'heading', depth: 1, children: [Array] },
{ type: 'heading', depth: 3, children: [Array] },
{ type: 'heading', depth: 2, children: [Array] } ] }
Modifies tree in-place.
Returns tree
.
Use of mdast-normalize-headings
does not involve hast so there are
no openings for cross-site scripting (XSS) attacks.
remark-normalize-headings
— remark plugin wrapper
See contributing.md
in syntax-tree/.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.
MIT © Eugene Sharygin