@yozora/tokenizer-footnote-definition
TypeScript icon, indicating that this package has built-in type declarations

2.3.1 • Public • Published

@yozora/tokenizer-footnote-definition


@yozora/tokenizer-footnote-definition produce FootnoteDefinition type nodes. See documentation for details.

Install

  • npm

    npm install --save @yozora/tokenizer-footnote-definition
  • yarn

    yarn add @yozora/tokenizer-footnote-definition

Usage

@yozora/tokenizer-footnote-definition has been integrated into @yozora/parser, so you can use YozoraParser directly.

Basic Usage

@yozora/tokenizer-footnote-definition cannot be used alone, it needs to be registered in YastParser as a plugin-in before it can be used.

import { DefaultParser } from '@yozora/core-parser'
import ParagraphTokenizer from '@yozora/tokenizer-paragraph'
import TextTokenizer from '@yozora/tokenizer-text'
import FootnoteDefinitionTokenizer from '@yozora/tokenizer-footnote-definition'

const parser = new DefaultParser()
  .useFallbackTokenizer(new ParagraphTokenizer())
  .useFallbackTokenizer(new TextTokenizer())
  .useTokenizer(new FootnoteDefinitionTokenizer())

// parse source markdown content
parser.parse(`
Here is a footnote reference,[^1]
another,[^long note],

[^big footnote]: Here's one with multiple paragraphs and code.

    Indent paragraphs to include them in the footnote.

    \`\`\`
    Fenced coding
    \`\`\`

    ## heading

    Add as many paragraphs as you like.
`)

Use within @yozora/parser

import YozoraParser from '@yozora/parser'

const parser = new YozoraParser()

// parse source markdown content
parser.parse(`
Here is a footnote reference,[^1]
another,[^long note],

[^big footnote]: Here's one with multiple paragraphs and code.

    Indent paragraphs to include them in the footnote.

    \`\`\`
    Fenced coding
    \`\`\`

    ## heading

    Add as many paragraphs as you like.
`)

Use with @yozora/parser-gfm

FootnoteDefinitionTokenizer should take precedence over DefinitionTokenizer.

import GfmParser from '@yozora/parser-gfm'
import { DefinitionTokenizerName } from '@yozora/tokenizer-definition'
import FootnoteDefinitionTokenizer from '@yozora/tokenizer-footnote-definition'

const parser = new GfmParser()
parser.useTokenizer(new FootnoteDefinitionTokenizer(), DefinitionTokenizerName)

// parse source markdown content
parser.parse(`
Here is a footnote reference,[^1]
another,[^long note],

[^big footnote]: Here's one with multiple paragraphs and code.

    Indent paragraphs to include them in the footnote.

    \`\`\`
    Fenced coding
    \`\`\`

    ## heading

    Add as many paragraphs as you like.
`)

Use within @yozora/parser-gfm-ex

import GfmExParser from '@yozora/parser-gfm-ex'
import { DefinitionTokenizerName } from '@yozora/tokenizer-definition'
import FootnoteDefinitionTokenizer from '@yozora/tokenizer-footnote-definition'

const parser = new GfmExParser()
parser.useTokenizer(new FootnoteDefinitionTokenizer(), DefinitionTokenizerName)

// parse source markdown content
parser.parse(`
Here is a footnote reference,[^1]
another,[^long note],

[^big footnote]: Here's one with multiple paragraphs and code.

    Indent paragraphs to include them in the footnote.

    \`\`\`
    Fenced coding
    \`\`\`

    ## heading

    Add as many paragraphs as you like.
`)

Options

Name Type Required Default
name string false "@yozora/tokenizer-footnote-definition"
priority number false TokenizerPriority.ATOMIC
  • name: The unique name of the tokenizer, used to bind the token it generates, to determine the tokenizer that should be called in each life cycle of the token in the entire matching / parsing phase.

  • priority: Priority of the tokenizer, determine the order of processing, high priority priority execution. interruptable. In addition, in the match-block stage, a high-priority tokenizer can interrupt the matching process of a low-priority tokenizer.

Related

Readme

Keywords

none

Package Sidebar

Install

npm i @yozora/tokenizer-footnote-definition

Weekly Downloads

4

Version

2.3.1

License

MIT

Unpacked Size

55.2 kB

Total Files

8

Last publish

Collaborators

  • lemonclown