diff --git a/app/src/protyle/util/insertHTML.ts b/app/src/protyle/util/insertHTML.ts index bf70a7e29..de7367fa7 100644 --- a/app/src/protyle/util/insertHTML.ts +++ b/app/src/protyle/util/insertHTML.ts @@ -18,8 +18,9 @@ export const insertHTML = (html: string, protyle: IProtyle, isBlock = false, } const range = useProtyleRange ? protyle.toolbar.range : getEditorRange(protyle.wysiwyg.element); fixTableRange(range); + let tableInlineHTML; if (hasClosestByAttribute(range.startContainer, "data-type", "NodeTable") && !isBlock) { - html = protyle.lute.BlockDOM2InlineBlockDOM(html); + tableInlineHTML = protyle.lute.BlockDOM2InlineBlockDOM(html); } let blockElement = hasClosestBlock(range.startContainer) as Element; if (!blockElement) { @@ -102,7 +103,8 @@ export const insertHTML = (html: string, protyle: IProtyle, isBlock = false, } const tempElement = document.createElement("template"); // 需要再 spin 一次 https://github.com/siyuan-note/siyuan/issues/7118 - tempElement.innerHTML = protyle.lute.SpinBlockDOM(html) || + tempElement.innerHTML = tableInlineHTML // 在 table 中插入需要使用转换好的行内元素 https://github.com/siyuan-note/siyuan/issues/9358 + || protyle.lute.SpinBlockDOM(html) || html; // 空格会被 Spin 不再,需要使用原文 const editableElement = getContenteditableElement(blockElement); // 使用 lute 方法会添加 p 元素,只有一个 p 元素或者只有一个字符串或者为 b 时的时候只拷贝内部