diff --git a/shared/editor/nodes/CodeFence.ts b/shared/editor/nodes/CodeFence.ts index af0ad1299..2af29fc69 100644 --- a/shared/editor/nodes/CodeFence.ts +++ b/shared/editor/nodes/CodeFence.ts @@ -148,7 +148,8 @@ export default class CodeFence extends Node { { tag: ".code-block", preserveWhitespace: "full", - contentElement: "code", + contentElement: (node: HTMLElement) => + node.querySelector("code") || node, getAttrs: (dom: HTMLDivElement) => ({ language: dom.dataset.language, }), diff --git a/shared/editor/nodes/Heading.ts b/shared/editor/nodes/Heading.ts index 323b229ff..0690ebc6e 100644 --- a/shared/editor/nodes/Heading.ts +++ b/shared/editor/nodes/Heading.ts @@ -48,7 +48,8 @@ export default class Heading extends Node { parseDOM: this.options.levels.map((level: number) => ({ tag: `h${level}`, attrs: { level }, - contentElement: ".heading-content", + contentElement: (node: HTMLHeadingElement) => + node.querySelector(".heading-content") || node, })), toDOM: (node) => { let anchor, fold; diff --git a/shared/editor/nodes/Notice.tsx b/shared/editor/nodes/Notice.tsx index 9b8939fc3..2193d0b02 100644 --- a/shared/editor/nodes/Notice.tsx +++ b/shared/editor/nodes/Notice.tsx @@ -42,7 +42,8 @@ export default class Notice extends Node { { tag: "div.notice-block", preserveWhitespace: "full", - contentElement: "div.content", + contentElement: (node: HTMLDivElement) => + node.querySelector("div.conten") || node, getAttrs: (dom: HTMLDivElement) => ({ style: dom.className.includes("tip") ? "tip"