micromark
Version:
small commonmark compliant markdown parser with positional info and concrete tokens
85 lines (75 loc) • 1.96 kB
JavaScript
/**
* @import {Extension} from 'micromark-util-types'
*/
import { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';
import { resolver as resolveText } from './initialize/text.js';
/** @satisfies {Extension['document']} */
export const document = {
[]: list,
[]: list,
[]: list,
[]: list,
[]: list,
[]: list,
[]: list,
[]: list,
[]: list,
[]: list,
[]: list,
[]: list,
[]: list,
[]: blockQuote
};
/** @satisfies {Extension['contentInitial']} */
export const contentInitial = {
[]: definition
};
/** @satisfies {Extension['flowInitial']} */
export const flowInitial = {
[-2]: codeIndented,
[-1]: codeIndented,
[]: codeIndented
};
/** @satisfies {Extension['flow']} */
export const flow = {
[]: headingAtx,
[]: thematicBreak,
[]: [setextUnderline, thematicBreak],
[]: htmlFlow,
[]: setextUnderline,
[]: thematicBreak,
[]: codeFenced,
[]: codeFenced
};
/** @satisfies {Extension['string']} */
export const string = {
[]: characterReference,
[]: characterEscape
};
/** @satisfies {Extension['text']} */
export const text = {
[-5]: lineEnding,
[-4]: lineEnding,
[-3]: lineEnding,
[]: labelStartImage,
[]: characterReference,
[]: attention,
[]: [autolink, htmlText],
[]: labelStartLink,
[]: [hardBreakEscape, characterEscape],
[]: labelEnd,
[]: attention,
[]: codeText
};
/** @satisfies {Extension['insideSpan']} */
export const insideSpan = {
null: [attention, resolveText]
};
/** @satisfies {Extension['attentionMarkers']} */
export const attentionMarkers = {
null: [42, 95]
};
/** @satisfies {Extension['disable']} */
export const disable = {
null: []
};