DecoratorNode,
DOMConversion,
DOMConversionMap,
- DOMConversionOutput,
+ DOMConversionOutput, DOMExportOutput,
LexicalEditor, LexicalNode,
SerializedLexicalNode,
Spread
}
static clone(node: CodeBlockNode): CodeBlockNode {
- return new CodeBlockNode(node.__language, node.__code);
+ const newNode = new CodeBlockNode(node.__language, node.__code);
+ newNode.__id = node.__id;
+ return newNode;
}
constructor(language: string = '', code: string = '', key?: string) {
return false;
}
+ exportDOM(editor: LexicalEditor): DOMExportOutput {
+ const dom = this.createDOM(editor._config, editor);
+ return {
+ element: dom.querySelector('pre') as HTMLElement,
+ };
+ }
+
static importDOM(): DOMConversionMap|null {
return {
pre(node: HTMLElement): DOMConversion|null {
|| '';
const code = codeEl ? (codeEl.textContent || '').trim() : (element.textContent || '').trim();
+ const node = $createCodeBlockNode(language, code);
+
+ if (element.id) {
+ node.setId(element.id);
+ }
- return {
- node: $createCodeBlockNode(language, code),
- };
+ return { node };
},
priority: 3,
};