remark-normalize-headings
!Buildbuild-badgebuild
!Coveragecoverage-badgecoverage
!Downloadsdownloads-badgedownloads
!Sizesize-badgesize
!Sponsorssponsors-badgecollective
!Backersbackers-badgecollective
!Chatchat-badgechatremark plugin to make sure there is a single top level heading in a document by adjusting heading ranks accordingly.
Contents
* [`unified().use(remarkNormalizeHeadings)`](#unifieduseremarknormalizeheadings)
What is this?
This package is a unified (remark) plugin to ensure there is one top level heading in a document.When should I use this?
This project is useful if you’re dealing with user generated content and want to ensure that there is a single primary heading (usually the title of the document) which everything else falls under.Install
This package is ESM onlyesm. In Node.js (version 16+), install with npm:npm install remark-normalize-headings
In Deno with
esm.sh
esmsh:import remarkNormalizeHeadings from 'https://esm.sh/remark-normalize-headings@4'
In browsers with
esm.sh
esmsh:<script type="module">
import remarkNormalizeHeadings from 'https://esm.sh/remark-normalize-headings@4?bundle'
</script>
Use
Say we have the following fileexample.md
:# Pluto
# History
## Discovery
## Name and symbol
## Planet X disproved
# Orbit
…and a module
example.js
:import {remark} from 'remark'
import remarkNormalizeHeadings from 'remark-normalize-headings'
import {read} from 'to-vfile'
const file = await remark()
.use(remarkNormalizeHeadings)
.process(await read('example.md'))
console.log(String(file))
…then running
node example.js
yields:# Pluto
## History
### Discovery
### Name and symbol
### Planet X disproved
## Orbit
API
This package exports no identifiers. The default export isremarkNormalizeHeadings
api-remark-normalize-headings.unified().use(remarkNormalizeHeadings)
Make sure there is a single top level heading in a document by adjusting
heading ranks accordingly.Parameters
There are no parameters.Returns
Transform (Transformer
unified-transformer).Types
This package is fully typed with TypeScript. It exports no additional types.Compatibility
Projects maintained by the unified collective are compatible with maintained versions of Node.js.When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line,
remark-normalize-headings@^4
, compatible with Node.js 16.This plugin works with
unified
version 2+ and remark
version 3+.Security
Use ofremark-normalize-headings
does not involve rehype
(hast) or user content so there are no openings for
cross-site scripting (XSS)wiki-xss attacks.Related
— mdast utility with similar functionality
Contribute
Seecontributing.md
contributing in remarkjs/.github
health for ways
to get started.
See support.md
support for ways to get help.This project has a code of conductcoc. By interacting with this repository, organization, or community you agree to abide by its terms.