Skip to main content

@lexical/markdown

Type Aliases

ElementTransformer

ElementTransformer = object

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

Properties

dependencies

dependencies: Klass<LexicalNode>[]

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

export()

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

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

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:69

replace()

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

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

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:84


MultilineElementTransformer

MultilineElementTransformer = object

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

Properties

dependencies

dependencies: Klass<LexicalNode>[]

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

export()?

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

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

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:94

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:119

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:115

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:134

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:153


TextFormatTransformer

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

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


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:163


Transformer

Transformer = ElementTransformer | MultilineElementTransformer | TextFormatTransformer | TextMatchTransformer

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

Variables

BOLD_ITALIC_STAR

const BOLD_ITALIC_STAR: TextFormatTransformer

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


BOLD_ITALIC_UNDERSCORE

const BOLD_ITALIC_UNDERSCORE: TextFormatTransformer

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


BOLD_STAR

const BOLD_STAR: TextFormatTransformer

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


BOLD_UNDERSCORE

const BOLD_UNDERSCORE: TextFormatTransformer

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


CHECK_LIST

const CHECK_LIST: ElementTransformer

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


CODE

const CODE: MultilineElementTransformer

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


ELEMENT_TRANSFORMERS

const ELEMENT_TRANSFORMERS: ElementTransformer[]

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


HEADING

const HEADING: ElementTransformer

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


HIGHLIGHT

const HIGHLIGHT: TextFormatTransformer

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


INLINE_CODE

const INLINE_CODE: TextFormatTransformer

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


ITALIC_STAR

const ITALIC_STAR: TextFormatTransformer

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


ITALIC_UNDERSCORE

const ITALIC_UNDERSCORE: TextFormatTransformer

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


const LINK: TextMatchTransformer

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


MULTILINE_ELEMENT_TRANSFORMERS

const MULTILINE_ELEMENT_TRANSFORMERS: MultilineElementTransformer[]

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


ORDERED_LIST

const ORDERED_LIST: ElementTransformer

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


QUOTE

const QUOTE: ElementTransformer

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


STRIKETHROUGH

const STRIKETHROUGH: TextFormatTransformer

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


TEXT_FORMAT_TRANSFORMERS

const TEXT_FORMAT_TRANSFORMERS: TextFormatTransformer[]

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


TEXT_MATCH_TRANSFORMERS

const TEXT_MATCH_TRANSFORMERS: TextMatchTransformer[]

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


TRANSFORMERS

const TRANSFORMERS: Transformer[]

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


UNORDERED_LIST

const UNORDERED_LIST: ElementTransformer

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

Functions

$convertFromMarkdownString()

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

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

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:72

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:407

Parameters

editor

LexicalEditor

transformers

Transformer[] = TRANSFORMERS

Returns

(): void

Returns

void