@yozora/parser
v2.4.0
Published
A markdown parser with rich built-in tokenizers
Maintainers
Readme
A Markdown parser with rich built-in tokenizers.
See @yozora/parser documentation for details.
Install
npm install --save @yozora/parserUsage
Basic
import YozoraParser from '@yozora/parser'
const parser = new YozoraParser()
parser.parse('source Markdown content')
parser.parse('source Markdown content', {
shouldReservePosition: true,
})
// Iterable source chunks are concatenated during parsing.
parser.parse(['source ', 'chunks'])Generator input
import YozoraParser from '@yozora/parser'
const parser = new YozoraParser()
function* source() {
yield 'hello '
yield 'world'
}
parser.parse(source())Constructor options
| Name | Type | Required | Default | Description |
| :------------------------ | :------------------------- | :------- | :------------------- | :--------------------------------------- |
| blockFallbackTokenizer | IBlockFallbackTokenizer | No | ParagraphTokenizer | Fallback for unmatched block content |
| inlineFallbackTokenizer | IInlineFallbackTokenizer | No | TextTokenizer | Fallback for unmatched inline content |
| defaultParseOptions | IParseOptions | No | See below | Default options for every parse() call |
IParseOptions
| Name | Type | Required | Default | Description |
| :-------------------------- | :------------------------ | :------- | :---------------------- | :--------------------------------------------- |
| shouldReservePosition | boolean | No | false | Include source positions in generated nodes |
| presetDefinitions | Association[] | No | [] | Preset link-reference identifiers |
| presetFootnoteDefinitions | Association[] | No | [] | Preset footnote-reference identifiers |
| formatUrl | (url: string) => string | No | encodeLinkDestination | Format URLs stored in generated resource nodes |
Overview
Built-in tokenizers
GFM tokenizers:
| Tokenizer | Description | | :--------------------------------------- | :----------------------------------------------------------------------------------------------------------------- | | @yozora/tokenizer-autolink | Resolve GFM Autolinks | | @yozora/tokenizer-autolink-extension | Resolve GFM Autolinks (extension) | | @yozora/tokenizer-blockquote | Resolve GFM blockquotes | | @yozora/tokenizer-break | Resolve GFM hard line breaks and GFM soft line breaks | | @yozora/tokenizer-definition | Resolve GFM link reference definitions | | @yozora/tokenizer-delete | Resolve GFM strikethrough (extension) | | @yozora/tokenizer-emphasis | Resolve GFM emphasis and strong emphasis | | @yozora/tokenizer-fenced-code | Resolve GFM fenced code blocks | | @yozora/tokenizer-heading | Resolve GFM ATX headings | | @yozora/tokenizer-html-block | Resolve GFM HTML blocks | | @yozora/tokenizer-html-inline | Resolve GFM raw HTML | | @yozora/tokenizer-image | Resolve GFM images | | @yozora/tokenizer-image-reference | Resolve GFM reference images | | @yozora/tokenizer-indented-code | Resolve GFM indented code blocks | | @yozora/tokenizer-inline-code | Resolve GFM code spans | | @yozora/tokenizer-link | Resolve GFM links | | @yozora/tokenizer-link-reference | Resolve GFM reference links | | @yozora/tokenizer-list | Resolve GFM lists (with GFM list items and GFM task list items) | | @yozora/tokenizer-paragraph | Resolve GFM paragraphs | | @yozora/tokenizer-setext-heading | Resolve GFM setext headings | | @yozora/tokenizer-table | Resolve GFM tables | | @yozora/tokenizer-text | Resolve GFM textual contents | | @yozora/tokenizer-thematic-break | Resolve GFM thematic breaks |
Additional tokenizers
| Tokenizer | Description | | :---------------------------------------- | :--------------------------- | | @yozora/tokenizer-admonition | Resolve admonitions | | @yozora/tokenizer-ecma-import | Resolve ECMAScript imports | | @yozora/tokenizer-footnote | Resolve footnotes | | @yozora/tokenizer-footnote-definition | Resolve footnote definitions | | @yozora/tokenizer-footnote-reference | Resolve footnote references | | @yozora/tokenizer-inline-math | Resolve inline formulas | | @yozora/tokenizer-math | Resolve block formulas |
