UNPKG

myst-parser

Version:
61 lines 2.31 kB
import type MarkdownIt from 'markdown-it'; import type Token from 'markdown-it/lib/token.js'; import type { DirectiveSpec, GenericNode, RoleSpec } from 'myst-common'; import type { Text } from 'myst-spec'; import type { VFile } from 'vfile'; import type { MathExtensionOptions } from './math.js'; export type MdastOptions = { handlers?: Record<string, TokenHandlerSpec>; hoistSingleImagesOutofParagraphs?: boolean; nestBlocks?: boolean; }; export type TokenHandlerSpec = { type: string; getAttrs?: (token: Token, tokens: Token[], index: number, state: MarkdownParseState) => Record<string, any>; attrs?: Record<string, any>; noCloseToken?: boolean; isText?: boolean; isLeaf?: boolean; }; export type AllOptions = { vfile: VFile; markdownit: MarkdownIt.Options; extensions: { smartquotes?: boolean; colonFences?: boolean; frontmatter?: boolean; math?: boolean | MathExtensionOptions; footnotes?: boolean; citations?: boolean; deflist?: boolean; tasklist?: boolean; tables?: boolean; blocks?: boolean; strikethrough?: boolean; }; mdast: MdastOptions; directives: DirectiveSpec[]; roles: RoleSpec[]; }; export declare function withoutTrailingNewline(str: string): string; /** MarkdownParseState tracks the context of a running token stream. * * Loosely based on prosemirror-markdown */ export declare class MarkdownParseState { src: string; stack: GenericNode[]; handlers: Record<string, TokenHandler>; constructor(src: string, handlers: Record<string, TokenHandlerSpec>); top(): GenericNode; addNode(node?: GenericNode): GenericNode | undefined; addText(text: string, token: Token, type?: string, attrs?: Record<string, any>): GenericNode<Record<string, any>> | Text | undefined; openNode(type: string, token: Token, attrs: Record<string, any>, isLeaf?: boolean): void; closeNode(): GenericNode | undefined; parseTokens(tokens?: Token[] | null): void; _lastPosition: GenericNode['position']; addPositionsToNode(node: GenericNode, token: Token): void; } type TokenHandler = (state: MarkdownParseState, token: Token, tokens: Token[], index: number) => void; export {}; //# sourceMappingURL=fromMarkdown.d.ts.map