Skip to main content

@lexical/markdown

Type Aliases

ElementTransformer

ElementTransformer = object

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:56

Properties

dependencies

dependencies: Klass<LexicalNode>[]

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:57

export()

export: (node, traverseChildren) => string | null

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:63

export is called when the $convertToMarkdownString is called to convert the editor state into markdown.

Parameters
node

LexicalNode

traverseChildren

(node) => string

Returns

string | null

return null to cancel the export, even though the regex matched. Lexical will then search for the next transformer.

regExp

regExp: RegExp

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:68

replace()

replace: (parentNode, children, match, isImport) => boolean | void

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:74

replace is called when markdown is imported or typed in the editor

Parameters
parentNode

ElementNode

children

LexicalNode[]

match

string[]

isImport

boolean

Returns

boolean | void

return false to cancel the transform, even though the regex matched. Lexical will then search for the next transformer.

type

type: "element"

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:83


MultilineElementTransformer

MultilineElementTransformer = object

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:86

Properties

dependencies

dependencies: Klass<LexicalNode>[]

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:100

export()?

optional export: (node, traverseChildren) => string | null

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:106

export is called when the $convertToMarkdownString is called to convert the editor state into markdown.

Parameters
node

LexicalNode

traverseChildren

(node) => string

Returns

string | null

return null to cancel the export, even though the regex matched. Lexical will then search for the next transformer.

handleImportAfterStartMatch()?

optional handleImportAfterStartMatch: (args) => [boolean, number] | null | undefined

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:93

Use this function to manually handle the import process, once the regExpStart has matched successfully. Without providing this function, the default behavior is to match until regExpEnd is found, or until the end of the document if regExpEnd.optional is true.

Parameters
args
lines

string[]

rootNode

ElementNode

startLineIndex

number

startMatch

RegExpMatchArray

transformer

MultilineElementTransformer

Returns

[boolean, number] | null | undefined

a tuple or null. The first element of the returned tuple is a boolean indicating if a multiline element was imported. The second element is the index of the last line that was processed. If null is returned, the next multilineElementTransformer will be tried. If undefined is returned, the default behavior will be used.

regExpEnd?

optional regExpEnd: RegExp | { optional?: true; regExp: RegExp; }

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:118

This regex determines when to stop matching. Anything in between regExpStart and regExpEnd will be matched

Type Declaration

RegExp

{ optional?: true; regExp: RegExp; }

optional?

optional optional: true

Whether the end match is optional. If true, the end match is not required to match for the transformer to be triggered. The entire text from regexpStart to the end of the document will then be matched.

regExp

regExp: RegExp

regExpStart

regExpStart: RegExp

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:114

This regex determines when to start matching

replace()

replace: (rootNode, children, startMatch, endMatch, linesInBetween, isImport) => boolean | void

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:133

replace is called only when markdown is imported in the editor, not when it's typed

Parameters
rootNode

ElementNode

children

LexicalNode[] | null

startMatch

string[]

endMatch

string[] | null

linesInBetween

string[] | null

isImport

boolean

Returns

boolean | void

return false to cancel the transform, even though the regex matched. Lexical will then search for the next transformer.

type

type: "multiline-element"

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:152


TextFormatTransformer

TextFormatTransformer = Readonly<{ format: ReadonlyArray<TextFormatType>; intraword?: boolean; tag: string; type: "text-format"; }>

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:155


TextMatchTransformer

TextMatchTransformer = Readonly<{ dependencies: Klass<LexicalNode>[]; export?: (node, exportChildren, exportFormat) => string | null; getEndIndex?: (node, match) => number | false; importRegExp?: RegExp; regExp: RegExp; replace?: (node, match) => void | TextNode; trigger?: string; type: "text-match"; }>

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:162


Transformer

Transformer = ElementTransformer | MultilineElementTransformer | TextFormatTransformer | TextMatchTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:50

Variables

BOLD_ITALIC_STAR

const BOLD_ITALIC_STAR: TextFormatTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:531


BOLD_ITALIC_UNDERSCORE

const BOLD_ITALIC_UNDERSCORE: TextFormatTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:537


BOLD_STAR

const BOLD_STAR: TextFormatTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:544


BOLD_UNDERSCORE

const BOLD_UNDERSCORE: TextFormatTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:550


CHECK_LIST

const CHECK_LIST: ElementTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:499


CODE

const CODE: MultilineElementTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:406


ELEMENT_TRANSFORMERS

const ELEMENT_TRANSFORMERS: ElementTransformer[]

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:659


HEADING

const HEADING: ElementTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:351


HIGHLIGHT

const HIGHLIGHT: TextFormatTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:525


INDENT

const INDENT: TextMatchTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:628


INLINE_CODE

const INLINE_CODE: TextFormatTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:519


ITALIC_STAR

const ITALIC_STAR: TextFormatTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:563


ITALIC_UNDERSCORE

const ITALIC_UNDERSCORE: TextFormatTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:569


const LINK: TextMatchTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:580


MULTILINE_ELEMENT_TRANSFORMERS

const MULTILINE_ELEMENT_TRANSFORMERS: MultilineElementTransformer[]

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:666


ORDERED_LIST

const ORDERED_LIST: ElementTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:509


QUOTE

const QUOTE: ElementTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:368


STRIKETHROUGH

const STRIKETHROUGH: TextFormatTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:557


TEXT_FORMAT_TRANSFORMERS

const TEXT_FORMAT_TRANSFORMERS: TextFormatTransformer[]

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:673


TEXT_MATCH_TRANSFORMERS

const TEXT_MATCH_TRANSFORMERS: TextMatchTransformer[]

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:685


TRANSFORMERS

const TRANSFORMERS: Transformer[]

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:687


UNORDERED_LIST

const UNORDERED_LIST: ElementTransformer

Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:489

Functions

$convertFromMarkdownString()

$convertFromMarkdownString(markdown, transformers, node?, shouldPreserveNewLines?, shouldMergeAdjacentLines?): void

Defined in: packages/lexical-markdown/src/index.ts:53

Renders markdown from a string. The selection is moved to the start after the operation.

Parameters

markdown

string

transformers

Transformer[] = TRANSFORMERS

node?

ElementNode

shouldPreserveNewLines?

boolean = false

By setting this to true, new lines will be preserved between conversions

shouldMergeAdjacentLines?

boolean = false

By setting this to true, adjacent non empty lines will be merged according to commonmark spec: https://spec.commonmark.org/0.24/#example-177. Not applicable if shouldPreserveNewLines = true.

Returns

void


$convertToMarkdownString()

$convertToMarkdownString(transformers, node?, shouldPreserveNewLines?): string

Defined in: packages/lexical-markdown/src/index.ts:73

Renders string from markdown. The selection is moved to the start after the operation.

Parameters

transformers

Transformer[] = TRANSFORMERS

node?

ElementNode

shouldPreserveNewLines?

boolean = false

Returns

string


registerMarkdownShortcuts()

registerMarkdownShortcuts(editor, transformers): () => void

Defined in: packages/lexical-markdown/src/MarkdownShortcuts.ts:396

Parameters

editor

LexicalEditor

transformers

Transformer[] = TRANSFORMERS

Returns

(): void

Returns

void