mdast utility to parse and serialize subscript (_{...}) and superscript (^{...})
npm install mdast-util-sub-supmdast utilities for subscript and superscript nodes.
``bash`
npm install mdast-util-sub-sup
`javascript
import { fromMarkdown } from 'mdast-util-from-markdown'
import { toMarkdown } from 'mdast-util-to-markdown'
import { subSup } from 'micromark-extension-sub-sup'
import { subSupFromMarkdown, subSupToMarkdown } from 'mdast-util-sub-sup'
const tree = fromMarkdown('H_{2}O', {
extensions: [subSup()],
mdastExtensions: [subSupFromMarkdown()]
})
const markdown = toMarkdown(tree, {
extensions: [subSupToMarkdown()]
})
`
`typescript`
interface Subscript extends Node {
type: 'subscript'
children: PhrasingContent[]
}
Renders to in HTML.
`typescript`
interface Superscript extends Node {
type: 'superscript'
children: PhrasingContent[]
}
Renders to in HTML.
Extension for mdast-util-from-markdown to parse subscript/superscript.
Extension for mdast-util-to-markdown to serialize subscript/superscript.
When serializing to markdown, balanced braces are preserved:
- _{a{b}c} → _{a{b}c} (balanced, no escaping needed)
Unbalanced braces are escaped:
- Unbalanced } is escaped as \} {
- Unbalanced is escaped as \{\
- before {, }, or \ is passed through as-is
- micromark-extension-sub-sup — tokenizer
- remark-sub-sup` — remark plugin
MIT