@mkljczk/lexical-remark
Version:
This package contains Markdown helpers and functionality for Lexical using remark-parse.
24 lines (20 loc) • 748 B
text/typescript
import { LexicalNode, RootNode } from 'lexical';
import { Root } from 'mdast';
import { DummyRootNode } from '../../extensions/collapsible/dummyRoot/node.js';
import { Handler } from '../parser.js';
export const root: Handler<Root> = (node, parser) => {
const lexicalNode = new RootNode();
parser.push(lexicalNode);
node.children.forEach((child) => parser.parse(child));
parser.pop(lexicalNode);
return lexicalNode;
};
export const dummyRoot: Handler<Root> = (node, parser) => {
const lexicalNode = new DummyRootNode();
parser.push(lexicalNode);
node.children.forEach((child) => parser.parse(child));
if (parser.stack.length > 1) {
lexicalNode.setStack(parser.stack.slice(1) as LexicalNode[]);
}
return lexicalNode;
};