108 lines
1.9 KiB
TypeScript
108 lines
1.9 KiB
TypeScript
|
import type {Data, Literal} from 'mdast'
|
|||
|
|
|||
|
export {mathFromMarkdown, mathToMarkdown} from './lib/index.js'
|
|||
|
|
|||
|
export type {ToOptions} from './lib/index.js'
|
|||
|
|
|||
|
/**
|
|||
|
* Math (flow).
|
|||
|
*/
|
|||
|
export interface Math extends Literal {
|
|||
|
/**
|
|||
|
* Node type of math (flow).
|
|||
|
*/
|
|||
|
type: 'math'
|
|||
|
|
|||
|
/**
|
|||
|
* Custom information relating to the node.
|
|||
|
*/
|
|||
|
meta?: string | null | undefined
|
|||
|
|
|||
|
/**
|
|||
|
* Data associated with the mdast math (flow).
|
|||
|
*/
|
|||
|
data?: MathData | undefined
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Info associated with mdast math (flow) nodes by the ecosystem.
|
|||
|
*/
|
|||
|
export interface MathData extends Data {}
|
|||
|
|
|||
|
/**
|
|||
|
* Math (text).
|
|||
|
*/
|
|||
|
export interface InlineMath extends Literal {
|
|||
|
/**
|
|||
|
* Node type of math (text).
|
|||
|
*/
|
|||
|
type: 'inlineMath'
|
|||
|
|
|||
|
/**
|
|||
|
* Data associated with the mdast math (text).
|
|||
|
*/
|
|||
|
data?: InlineMathData | undefined
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Info associated with mdast math (text) nodes by the ecosystem.
|
|||
|
*/
|
|||
|
export interface InlineMathData extends Data {}
|
|||
|
|
|||
|
// Add custom data tracked to turn markdown into a tree.
|
|||
|
declare module 'mdast-util-from-markdown' {
|
|||
|
interface CompileData {
|
|||
|
/**
|
|||
|
* Whether we’re in math (flow).
|
|||
|
*/
|
|||
|
mathFlowInside?: boolean | undefined
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// Add custom data tracked to turn a tree into markdown.
|
|||
|
declare module 'mdast-util-to-markdown' {
|
|||
|
interface ConstructNameMap {
|
|||
|
/**
|
|||
|
* Math (flow).
|
|||
|
*
|
|||
|
* ```markdown
|
|||
|
* > | $$
|
|||
|
* ^^
|
|||
|
* > | a
|
|||
|
* ^
|
|||
|
* > | $$
|
|||
|
* ^^
|
|||
|
* ```
|
|||
|
*/
|
|||
|
mathFlow: 'mathFlow'
|
|||
|
|
|||
|
/**
|
|||
|
* Math (flow) meta flag.
|
|||
|
*
|
|||
|
* ```markdown
|
|||
|
* > | $$a
|
|||
|
* ^
|
|||
|
* | b
|
|||
|
* | $$
|
|||
|
* ```
|
|||
|
*/
|
|||
|
mathFlowMeta: 'mathFlowMeta'
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// Add nodes to tree.
|
|||
|
declare module 'mdast' {
|
|||
|
interface BlockContentMap {
|
|||
|
math: Math
|
|||
|
}
|
|||
|
|
|||
|
interface PhrasingContentMap {
|
|||
|
inlineMath: InlineMath
|
|||
|
}
|
|||
|
|
|||
|
interface RootContentMap {
|
|||
|
inlineMath: InlineMath
|
|||
|
math: Math
|
|||
|
}
|
|||
|
}
|