@yozora/tokenizer-inline-math

Tokenizer for processing inline math (formulas)

Usage no npm install needed!

<script type="module">
  import yozoraTokenizerInlineMath from 'https://cdn.skypack.dev/@yozora/tokenizer-inline-math';
</script>

README

@yozora/tokenizer-inline-math


@yozora/tokenizer-inline-math produce InlineMath type nodes. See documentation for details.

Install

  • npm

    npm install --save @yozora/tokenizer-inline-math
    
  • yarn

    yarn add @yozora/tokenizer-inline-math
    

Usage

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

Basic Usage

@yozora/tokenizer-inline-math 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 InlineMathTokenizer from '@yozora/tokenizer-inline-math'

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

// parse source markdown content
parser.parse("`$x^2 + y^2 = z^2, x < 0

	
		
		
		
		
		
		
		
	npm:@yozora/tokenizer-inline-math | Skypack
	
		
		
		
		")

Use within @yozora/parser

import YozoraParser from '@yozora/parser'

const parser = new YozoraParser()

// parse source markdown content
parser.parse("`$x^2 + y^2 = z^2, x < 0

	
		
		
		
		
		
		
		
	npm:@yozora/tokenizer-inline-math | Skypack
	
		
		
		
		")

Use with @yozora/parser-gfm

import GfmParser from '@yozora/parser-gfm'
import InlineMathTokenizer from '@yozora/tokenizer-inline-math'

const parser = new GfmParser()
parser.useTokenizer(new InlineMathTokenizer())

// parse source markdown content
parser.parse("`$x^2 + y^2 = z^2, x < 0

	
		
		
		
		
		
		
		
	npm:@yozora/tokenizer-inline-math | Skypack
	
		
		
		
		")

Use within @yozora/parser-gfm-ex

import GfmExParser from '@yozora/parser-gfm-ex'
import InlineMathTokenizer from '@yozora/tokenizer-inline-math'

const parser = new GfmExParser()
parser.useTokenizer(new InlineMathTokenizer())

// parse source markdown content
parser.parse("`$x^2 + y^2 = z^2, x < 0

	
		
		
		
		
		
		
		
	npm:@yozora/tokenizer-inline-math | Skypack
	
		
		
		
		")

Options

Name Type Required Default
name string false "@yozora/tokenizer-inline-math"
priority number false TokenizerPriority.ATOMIC
delimiterGroup string false <this.name>
backtickRequired boolean false true
  • 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.

    Exception: Delimiters of type full are always processed before other type delimiters.

  • delimiterGroup: Delimiter group identity. All delimiters with a same delimiterGroup can be cleaned up at the same time in a certain invalidateOldDelimiters() call.

    Designed to handle situations such as link and link-reference both cannot contain other links.

    See https://github.github.com/gfm/#example-526.

  • backtickRequired: Whether if the backtick mark wrapping necessary.

Related