@lexical/markdown
Type Aliases
ElementTransformer
ElementTransformer =
object
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:60
Properties
dependencies
dependencies:
Klass<LexicalNode>[]
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:61
export
export: (
node,traverseChildren,selection?) =>string|null
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:68
export is called when the $convertToMarkdownString is called to convert the editor state into markdown.
Parameters
node
traverseChildren
(node) => string
selection?
BaseSelection | null
Optional selection to filter exported content. When provided, only selected content should be included.
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:74
replace
replace: (
parentNode,children,match,isImport) =>boolean|void
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:80
replace is called when markdown is imported or typed in the editor
Parameters
parentNode
children
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.
triggerOnEnter?
optionaltriggerOnEnter?:boolean
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:95
When set, registerMarkdownShortcuts may run this transformer from KEY_ENTER_COMMAND
at end-of-line without requiring a trailing space (the update listener still uses the
space after the markdown token). Omit or false to disable Enter-triggered shortcuts.
type
type:
"element"
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:89
MultilineElementTransformer
MultilineElementTransformer =
object
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:98
Properties
dependencies
dependencies:
Klass<LexicalNode>[]
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:112
export?
optionalexport?: (node,traverseChildren,selection?) =>string|null
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:119
export is called when the $convertToMarkdownString is called to convert the editor state into markdown.
Parameters
node
traverseChildren
(node) => string
selection?
BaseSelection | null
Optional selection to filter exported content. When provided, only selected content should be included.
Returns
string | null
return null to cancel the export, even though the regex matched. Lexical will then search for the next transformer.
handleImportAfterStartMatch?
optionalhandleImportAfterStartMatch?: (args) => [boolean,number] |null|undefined
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:105
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
startLineIndex
number
startMatch
RegExpMatchArray
transformer
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?
optionalregExpEnd?:RegExp| {optional?:true;regExp:RegExp; }
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:132
This regex determines when to stop matching. Anything in between regExpStart and regExpEnd will be matched
Union Members
RegExp
Type Literal
{ optional?: true; regExp: RegExp; }
optional?
optionaloptional?: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:128
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:147
replace is called only when markdown is imported in the editor, not when it's typed
Parameters
rootNode
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:166
TextFormatTransformer
TextFormatTransformer =
Readonly<{format: readonlyTextFormatType[];intraword?:boolean;tag:string;type:"text-format"; }>
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:169
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:176
Transformer
Transformer =
ElementTransformer|MultilineElementTransformer|TextFormatTransformer|TextMatchTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:54
Variables
BOLD_ITALIC_STAR
constBOLD_ITALIC_STAR:TextFormatTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:821
BOLD_ITALIC_UNDERSCORE
constBOLD_ITALIC_UNDERSCORE:TextFormatTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:827
BOLD_STAR
constBOLD_STAR:TextFormatTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:834
BOLD_UNDERSCORE
constBOLD_UNDERSCORE:TextFormatTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:840
CHECK_LIST
constCHECK_LIST:ElementTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:764
CODE
constCODE:MultilineElementTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:592
ELEMENT_TRANSFORMERS
constELEMENT_TRANSFORMERS:ElementTransformer[]
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:929
HEADING
constHEADING:ElementTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:535
HIGHLIGHT
constHIGHLIGHT:TextFormatTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:815
INLINE_CODE
constINLINE_CODE:TextFormatTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:790
ITALIC_STAR
constITALIC_STAR:TextFormatTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:853
ITALIC_UNDERSCORE
constITALIC_UNDERSCORE:TextFormatTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:859
LINK
constLINK:TextMatchTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:870
MULTILINE_ELEMENT_TRANSFORMERS
constMULTILINE_ELEMENT_TRANSFORMERS:MultilineElementTransformer[]
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:936
ORDERED_LIST
constORDERED_LIST:ElementTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:777
QUOTE
constQUOTE:ElementTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:553
STRIKETHROUGH
constSTRIKETHROUGH:TextFormatTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:847
TEXT_FORMAT_TRANSFORMERS
constTEXT_FORMAT_TRANSFORMERS:TextFormatTransformer[]
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:944
TEXT_MATCH_TRANSFORMERS
constTEXT_MATCH_TRANSFORMERS:TextMatchTransformer[]
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:956
TRANSFORMERS
constTRANSFORMERS:Transformer[]
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:958
UNORDERED_LIST
constUNORDERED_LIST:ElementTransformer
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:751
Functions
$convertFromMarkdownString()
$convertFromMarkdownString(
markdown,transformers?,node?,shouldPreserveNewLines?,shouldMergeAdjacentLines?):void
Defined in: packages/lexical-markdown/src/index.ts:62
Renders markdown from a string. The selection is moved to the start after the operation.
Parameters
markdown
string
transformers?
Transformer[] = TRANSFORMERS
node?
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
$convertSelectionToMarkdownString()
$convertSelectionToMarkdownString(
transformers?,selection,shouldPreserveNewLines?):string
Defined in: packages/lexical-markdown/src/index.ts:130
Converts the selected content to a markdown string.
Parameters
transformers?
Transformer[] = TRANSFORMERS
selection
BaseSelection | null
shouldPreserveNewLines?
boolean = false
Returns
string
$convertToMarkdownString()
$convertToMarkdownString(
transformers?,node?,shouldPreserveNewLines?):string
Defined in: packages/lexical-markdown/src/index.ts:115
Renders string from markdown. The selection is moved to the start after the operation.
Parameters
transformers?
Transformer[] = TRANSFORMERS
node?
shouldPreserveNewLines?
boolean = false
Returns
string
$generateNodesFromMarkdownString()
$generateNodesFromMarkdownString(
markdown,transformers?,shouldPreserveNewLines?,shouldMergeAdjacentLines?):LexicalNode[]
Defined in: packages/lexical-markdown/src/index.ts:93
Parses a markdown string and returns the resulting nodes as an array,
without modifying the document tree or selection. The returned nodes can be
inserted at an arbitrary position via selection.insertNodes().
Parameters
markdown
string
transformers?
Transformer[] = TRANSFORMERS
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
isTableRowDivider()
isTableRowDivider(
line):boolean
Defined in: packages/lexical-markdown/src/MarkdownTransformers.ts:239
Whether line is a Markdown table delimiter row such as | --- | :--: |.
This is the linear-time equivalent of /^(\| ?:?-*:? ?)+\|\s?$/. That
pattern nests -* inside a (...)+ group, a shape that backtracking regexp
engines (e.g. Safari/JavaScriptCore) may run in super-linear time. A manual
scan is guaranteed O(n).
Parameters
line
string
Returns
boolean
registerMarkdownShortcuts()
registerMarkdownShortcuts(
editor,transformers?): () =>void
Defined in: packages/lexical-markdown/src/MarkdownShortcuts.ts:437
Parameters
editor
transformers?
Transformer[] = TRANSFORMERS
Returns
() => void