Skip to main content
Version: 3.x.x 🚧

@yozora/core-parser

Npm VersionNpm DownloadNpm LicenseModule formats: cjs, esmNode.js VersionCode Style: prettier

@yozora/core-parser provides a plug-in system that can load tokenizer for collaborative processing in the lifecycles.

Install

npm install --save @yozora/core-parser

Usage

@yozora/core-parser provides a default Parser implementation DefaultParser.

import { DefaultParser } from '@yozora/core-parser'import EmphasisTokenizer from '@yozora/tokenizer-emphasis'import ParagraphTokenizer from '@yozora/tokenizer-paragraph'import TextTokenizer from '@yozora/tokenizer-text'const parser = new DefaultParser({ shouldReservePosition: true })  .useFallbackTokenizer(new ParagraphTokenizer())  .useFallbackTokenizer(new TextTokenizer())  // add custom tokenizers through `useTokenizer()`  .useTokenizer(new EmphasisTokenizer())// Parse literal stringparser.parse('source content such as **emphasis**')// Parse literal string listsparser.parse(['source content', 'additional *content*'])// Parse iterable string// The Parser will processing at every time a line is read.function* genContents () {  yield 'source content1\n'  yield 'source content2\n'  return 'source content3\n'}parser.parse(genContents())// Reserve the positionsparser.parse('source content', { shouldReservePosition: true })

DefaultParser Options

  • Constructor Options

    NameRequiredDefaultType
    blockFallbackTokenizerfalsenullBlockFallbackTokenizer | null
    inlineFallbackTokenizerfalsenullInlineFallbackTokenizer | null
    defaultParseOptionsfalseSee belowParse Options
    • blockFallbackTokenizer: Fallback tokenizer on processing block structure phase.

    • inlineFallbackTokenizer: Fallback tokenizer on processing inline structure phase.

    • defaultParseOptions: Default options for parse(). Default:

      {  presetDefinitions: [],  presetFootnoteDefinitions: [],  shouldReservePosition: false}
  • Parse Options

    NameRequiredDefaultType
    presetDefinitionsfalsedefaultParserOptions.presetDefinitions[Association][src-Association] list.
    presetFootnoteDefinitionsfalsedefaultParserOptions.presetFootnoteDefinitionsboolean
    shouldReservePositionfalsedefaultParserOptions.shouldReservePositionboolean
    • presetDefinitions: Preset definition meta data list.
    • presetFootnoteDefinitions: Preset footnote definition meta data list.
    • shouldReservePosition: Whether it is necessary to reserve the position of the Node parsed.

Lifecycle

math-block

parse-block

match-inline

parse-inline