Skip to content

Commit

Permalink
🐛 fix #1270
Browse files Browse the repository at this point in the history
  • Loading branch information
Vanessa219 committed Aug 4, 2022
1 parent f799408 commit 27012f5
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 8 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Expand Up @@ -105,6 +105,8 @@

### v3.8.16 / 2022-08

* [1270](https://github.com/Vanessa219/vditor/issues/1270) 切换编辑模式 SV 脚注缩进丢失 `修复缺陷`
* [1274](https://github.com/Vanessa219/vditor/issues/1274) XSS 安全漏洞 `修复缺陷`
* [1269](https://github.com/Vanessa219/vditor/issues/1269) 代码块自动补全会包含链接引用和脚注 `修复缺陷`
* [1263](https://github.com/Vanessa219/vditor/issues/1263) 所见即所得和即使渲染只有空格输入时,不会触发 input 事件 `修复缺陷`
* [1264](https://github.com/Vanessa219/vditor/issues/1264) 链接中,会强制将&reg解析为 ® 字符 `修复缺陷`
Expand Down
28 changes: 20 additions & 8 deletions src/ts/sv/process.ts
Expand Up @@ -16,13 +16,19 @@ export const processPaste = (vditor: IVditor, text: string) => {
if (!blockElement) {
blockElement = vditor.sv.element;
}
const html = "<div data-block='0'>" +
vditor.lute.Md2VditorSVDOM(blockElement.textContent).replace(/<span data-type="newline"><br \/><span style="display: none">\n<\/span><\/span><span data-type="newline"><br \/><span style="display: none">\n<\/span><\/span></g, '<span data-type="newline"><br /><span style="display: none">\n</span></span><span data-type="newline"><br /><span style="display: none">\n</span></span></div><div data-block="0"><') +
"</div>";
let spinHTML = vditor.lute.SpinVditorSVDOM(blockElement.textContent)
if (spinHTML.indexOf('data-type="footnotes-link"') > -1 ||
spinHTML.indexOf('data-type="link-ref-defs-block"') > -1) {
spinHTML = "<div data-block='0'>" + spinHTML + "</div>";
} else {
spinHTML = "<div data-block='0'>" +
spinHTML.replace(/<span data-type="newline"><br \/><span style="display: none">\n<\/span><\/span><span data-type="newline"><br \/><span style="display: none">\n<\/span><\/span></g, '<span data-type="newline"><br /><span style="display: none">\n</span></span><span data-type="newline"><br /><span style="display: none">\n</span></span></div><div data-block="0"><') +
"</div>";
}
if (blockElement.isEqualNode(vditor.sv.element)) {
blockElement.innerHTML = html;
blockElement.innerHTML = spinHTML;
} else {
blockElement.outerHTML = html;
blockElement.outerHTML = spinHTML;
}
setRangeByWbr(vditor.sv.element, range);

Expand All @@ -49,9 +55,15 @@ export const getSideByType = (spanNode: Node, type: string, isPrevious = true) =

export const processSpinVditorSVDOM = (html: string, vditor: IVditor) => {
log("SpinVditorSVDOM", html, "argument", vditor.options.debugger);
html = "<div data-block='0'>" +
vditor.lute.SpinVditorSVDOM(html).replace(/<span data-type="newline"><br \/><span style="display: none">\n<\/span><\/span><span data-type="newline"><br \/><span style="display: none">\n<\/span><\/span></g, '<span data-type="newline"><br /><span style="display: none">\n</span></span><span data-type="newline"><br /><span style="display: none">\n</span></span></div><div data-block="0"><') +
"</div>";
const spinHTML = vditor.lute.SpinVditorSVDOM(html)
if (spinHTML.indexOf('data-type="footnotes-link"') > -1 ||
spinHTML.indexOf('data-type="link-ref-defs-block"') > -1) {
html = "<div data-block='0'>" + spinHTML + "</div>";
} else {
html = "<div data-block='0'>" +
spinHTML.replace(/<span data-type="newline"><br \/><span style="display: none">\n<\/span><\/span><span data-type="newline"><br \/><span style="display: none">\n<\/span><\/span></g, '<span data-type="newline"><br /><span style="display: none">\n</span></span><span data-type="newline"><br /><span style="display: none">\n</span></span></div><div data-block="0"><') +
"</div>";
}
log("SpinVditorSVDOM", html, "result", vditor.options.debugger);
return html;
};
Expand Down

0 comments on commit 27012f5

Please sign in to comment.