Skip to main content

@lexical/markdown

Type Aliases

ElementTransformer

ElementTransformer = object

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

Properties

dependencies

dependencies: Klass<LexicalNode>[]

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

export()

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

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

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

replace()

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

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

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


MultilineElementTransformer

MultilineElementTransformer = object

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

Properties

dependencies

dependencies: Klass<LexicalNode>[]

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

export()?

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

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

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

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

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

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

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


TextFormatTransformer

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

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


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


Transformer

Transformer = ElementTransformer | MultilineElementTransformer | TextFormatTransformer | TextMatchTransformer

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

Variables

BOLD_ITALIC_STAR

const BOLD_ITALIC_STAR: TextFormatTransformer

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


BOLD_ITALIC_UNDERSCORE

const BOLD_ITALIC_UNDERSCORE: TextFormatTransformer

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


BOLD_STAR

const BOLD_STAR: TextFormatTransformer

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


BOLD_UNDERSCORE

const BOLD_UNDERSCORE: TextFormatTransformer

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


CHECK_LIST

const CHECK_LIST: ElementTransformer

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


CODE

const CODE: MultilineElementTransformer

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


ELEMENT_TRANSFORMERS

const ELEMENT_TRANSFORMERS: ElementTransformer[]

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


HEADING

const HEADING: ElementTransformer

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


HIGHLIGHT

const HIGHLIGHT: TextFormatTransformer

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


INLINE_CODE

const INLINE_CODE: TextFormatTransformer

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


ITALIC_STAR

const ITALIC_STAR: TextFormatTransformer

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


ITALIC_UNDERSCORE

const ITALIC_UNDERSCORE: TextFormatTransformer

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


const LINK: TextMatchTransformer

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


MULTILINE_ELEMENT_TRANSFORMERS

const MULTILINE_ELEMENT_TRANSFORMERS: MultilineElementTransformer[]

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


ORDERED_LIST

const ORDERED_LIST: ElementTransformer

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


QUOTE

const QUOTE: ElementTransformer

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


STRIKETHROUGH

const STRIKETHROUGH: TextFormatTransformer

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


TEXT_FORMAT_TRANSFORMERS

const TEXT_FORMAT_TRANSFORMERS: TextFormatTransformer[]

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


TEXT_MATCH_TRANSFORMERS

const TEXT_MATCH_TRANSFORMERS: TextMatchTransformer[]

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


TRANSFORMERS

const TRANSFORMERS: Transformer[]

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


UNORDERED_LIST

const UNORDERED_LIST: ElementTransformer

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

Functions

$convertFromMarkdownString()

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

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

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

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