mdast-util-heading-style
!Buildbuild-badgebuild
!Coveragecoverage-badgecoverage
!Downloadsdownloads-badgedownloads
!Sizesize-badgesize
!Sponsorssponsors-badgecollective
!Backersbackers-badgecollective
!Chatchat-badgechatmdast utility to get the style of a heading.
Contents
* [`headingStyle(node[, relative])`](#headingstylenode-relative)
* [`Style`](#style)
What is this?
This package is a tiny utility to figure out if a heading was written as ATX or as setext.## ATX uses hashes
Setext uses an underline
------------------------
When should I use this?
Probably not a lot! It’s used inremark-lint
remark-lint.Install
This package is ESM onlyesm. In Node.js (version 16+), install with npm:npm install mdast-util-heading-style
In Deno with
esm.sh
esmsh:import {headingStyle} from 'https://esm.sh/mdast-util-heading-style@3'
In browsers with
esm.sh
esmsh:<script type="module">
import {headingStyle} from 'https://esm.sh/mdast-util-heading-style@3?bundle'
</script>
Use
import {unified} from 'unified'
import {fromMarkdown} from 'mdast-util-from-markdown'
import {headingStyle} from 'mdast-util-heading-style'
headingStyle(fromMarkdown('# ATX').children[0]) // => 'atx'
headingStyle(fromMarkdown('# ATX #\n').children[0]) // => 'atx-closed'
headingStyle(fromMarkdown('ATX\n===').children[0]) // => 'setext'
headingStyle(fromMarkdown('### ATX').children[0]) // => undefined
headingStyle(fromMarkdown('### ATX').children[0], 'setext') // => 'setext'
API
This package exports the identifierheadingStyle
api-headingstyle.
There is no default export.headingStyle(node[, relative])
Get the heading style of a heading, optionally relative
to a preferred
style.This is because ATX headings with a depth of three or more could be considered setext.
Parameters
— heading node to check
— relative style
Returns
Style (Style
api-style) if it can be inferred, undefined
otherwise.Style
Style of heading (TypeScript type).Type
type Style = 'atx' | 'atx-closed' | 'setext'
Types
This package is fully typed with TypeScript. It exports the additional typeStyle
api-style.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,
mdast-util-heading-style@^3
, compatible with Node.js 16.Security
Use ofmdast-util-heading-style
does not involve hast so there are
no openings for cross-site scripting (XSS)xss attacks.Related
— make sure there is no more than a single top-level heading
— use headings as ranges
Contribute
Seecontributing.md
contributing in syntax-tree/.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.