@yozora/parser-gfm-ex
A markdown parser with built-in tokenizers to fully support GFM and GFM extensions.
- See github flavor markdown spec for details.
- See GFM Live Examples for an intuitive impression.
Installโ
- npm
- Yarn
- pnpm
- Bun
npm install --save @yozora/parser-gfm-ex
yarn add @yozora/parser-gfm-ex
pnpm add @yozora/parser-gfm-ex
bun add @yozora/parser-gfm-ex
Usageโ
-
Basic
import GfmExParser from '@yozora/parser-gfm-ex'
const parser = new GfmExParser()
// parse markdown source content.
parser.parse('source markdown content')
// parse markdown source content with custom options.
parser.parse(
'source markdown content', // markdown source contents, `string|Iterable<string>`
{}, // ParseOptions, optional.
)
// parse multiple markdown source content pieces.
parser.parse(['source', 'contents']) -
Use withing generator:
import GfmExParser from '@yozora/parser-gfm-ex'
const parser = new GfmExParser()
/**
* String stream is supported through the iterator API.
*/
function* source () {
yield 'hello',
yield 'world',
}
parser.parse(source())
Optionsโ
-
Constructor Options
Name Type Required Description blockFallbackTokenizerBlockFallbackTokenizerfalseFallback tokenizer on processing block structure phase inlineFallbackTokenizerInlineFallbackTokenizerfalseFallback tokenizer on processing inline structure phase defaultParseOptionsParseOptionsfalseDefault options for parse() -
ParseOptionsName Type Required Description shouldReservePositionbooleanfalseWhether it is necessary to reserve the position in the YastNode produced presetDefinitionsArray<Omit<Definition, 'type'>falsePreset definitions presetFootnoteDefinitionsArray<Omit<FootnoteDefinition, 'type'>falsePreset footnote definition
Overviewโ
-
Built-in tokenizers
Live Examplesโ
Thematic breakโ
See @yozora/tokenizer-thematic-break for details.
ATX headingsโ
See @yozora/tokenizer-heading for details.
Setext headingsโ
See @yozora/tokenizer-setext-heading for details.
Indented code blocksโ
See @yozora/tokenizer-indented-code for details.
Fenced code blocksโ
See @yozora/tokenizer-fenced-code for details.
HTML blocksโ
See @yozora/tokenizer-html-block for details.
Link reference definitionsโ
See @yozora/tokenizer-definition for details.
Paragraphsโ
See @yozora/tokenizer-paragraph for details.
Tables (extension)โ
See @yozora/tokenizer-table for details.
Block quotesโ
See @yozora/tokenizer-blockquote for details.
List itemsโ
See @yozora/tokenizer-list for details.
Task list items (extension)โ
See @yozora/tokenizer-list for details.
Listsโ
See @yozora/tokenizer-list for details.
Code spansโ
See @yozora/tokenizer-inline-code for details.
Emphasis and strong emphasisโ
See @yozora/tokenizer-emphasis for details.
Strikethrough (extension)โ
See @yozora/tokenizer-delete for details.
Linksโ
See @yozora/tokenizer-link for details.
Reference linksโ
See @yozora/tokenizer-link-reference for details.
Imagesโ
See @yozora/tokenizer-image for details.
Reference imagesโ
See @yozora/tokenizer-image-reference for details.
Autolinksโ
See @yozora/tokenizer-autolink for details.
Autolinks (extension)โ
See @yozora/tokenizer-autolink-extension for details.
Raw HTMLโ
See @yozora/tokenizer-html-inline for details.
Hard line breaksโ
See @yozora/tokenizer-break for details.
Soft line breaksโ
See @yozora/tokenizer-break for details.
Textual contentโ
See @yozora/tokenizer-text for details.