UNPKG

@mdxeditor/editor

Version:

React component for rich text markdown editing

22 lines (21 loc) 1.03 kB
import { $createLineBreakNode, $createParagraphNode } from "lexical"; const lexicalTypesThatShouldSkipParagraphs = ["listitem", "admonition"]; const MdastParagraphVisitor = { testNode: "paragraph", visitNode: function({ mdastNode, mdastParent, lexicalParent, actions }) { const parentType = lexicalParent.getType(); if (lexicalTypesThatShouldSkipParagraphs.includes(parentType)) { const mdastNodeIndex = (mdastParent == null ? void 0 : mdastParent.children.indexOf(mdastNode)) ?? -1; const previousMdastSibling = mdastNodeIndex > 0 ? mdastParent == null ? void 0 : mdastParent.children.at(mdastNodeIndex - 1) : void 0; if (parentType === "listitem" && (previousMdastSibling == null ? void 0 : previousMdastSibling.type) === "paragraph") { lexicalParent.append($createLineBreakNode(), $createLineBreakNode()); } actions.visitChildren(mdastNode, lexicalParent); } else { actions.addAndStepInto($createParagraphNode()); } } }; export { MdastParagraphVisitor };