@yozora/tokenizer-admonition
@yozora/tokenizer-admonition produces Admonition nodes. See documentation for details.
Install
npm install --save @yozora/tokenizer-admonition
Usage
@yozora/tokenizer-admonition is built into @yozora/parser.
With DefaultParser
A tokenizer must be registered with an IParser before use.
import { DefaultParser } from '@yozora/core-parser'
import ParagraphTokenizer from '@yozora/tokenizer-paragraph'
import TextTokenizer from '@yozora/tokenizer-text'
import AdmonitionTokenizer from '@yozora/tokenizer-admonition'
const parser = new DefaultParser()
.useFallbackTokenizer(new ParagraphTokenizer())
.useFallbackTokenizer(new TextTokenizer())
.useTokenizer(new AdmonitionTokenizer())
parser.parse(`
:::info This is an info admonition
Content
### Nested block content
:::
`)
With @yozora/parser
import YozoraParser from '@yozora/parser'
const parser = new YozoraParser()
parser.parse(`
:::info This is an info admonition
Content
### Nested block content
:::
`)
With @yozora/parser-gfm
import GfmParser from '@yozora/parser-gfm'
import AdmonitionTokenizer from '@yozora/tokenizer-admonition'
const parser = new GfmParser()
parser.useTokenizer(new AdmonitionTokenizer())
parser.parse(`
:::info This is an info admonition
Content
### Nested block content
:::
`)
With @yozora/parser-gfm-ex
import GfmExParser from '@yozora/parser-gfm-ex'
import AdmonitionTokenizer from '@yozora/tokenizer-admonition'
const parser = new GfmExParser()
parser.useTokenizer(new AdmonitionTokenizer())
parser.parse(`
:::info This is an info admonition
Content
### Nested block content
:::
`)
Options
| Name | Type | Required | Default |
|---|---|---|---|
name |
string |
No | "@yozora/tokenizer-admonition" |
priority |
number |
No | TokenizerPriority.FENCED_BLOCK |
name: Unique tokenizer name. Generated tokens retain it so the parser can dispatch later phases to the same tokenizer.priority: Processing priority. Tokenizers with higher values run first. During block matching, a higher-priority tokenizer can interrupt a lower-priority tokenizer.
Node Type
export interface Admonition extends Parent<'admonition'> {
type: 'admonition'
/**
* Keyword of an admonition.
*/
keyword: 'note' | 'important' | 'tip' | 'caution' | 'warning' | string
/**
* Admonition title.
*/
title: Node[]
/**
* Admonition body.
*/
children: Node[]
}
Output Example
positions omitted:
{ "type": "admonition", "keyword": "tip", "title": [ { "type": "text", "value": "pro tip" } ], "children": [ { "type": "paragraph", "children": [ { "type": "text", "value": "admonition is awesome!\n" } ] } ] }