diff --git a/app/src/protyle/preview/index.ts b/app/src/protyle/preview/index.ts index db3f72142..cc219db33 100644 --- a/app/src/protyle/preview/index.ts +++ b/app/src/protyle/preview/index.ts @@ -34,7 +34,9 @@ export class Preview { if (protyle.options.classes.preview) { previewElement.classList.add(protyle.options.classes.preview); } - previewElement.style.padding = protyle.wysiwyg.element.style.padding; + if (protyle.wysiwyg.element.style.padding) { + previewElement.style.padding = protyle.wysiwyg.element.style.padding; + } const actions = protyle.options.preview.actions; const actionElement = document.createElement("div"); @@ -48,7 +50,7 @@ export class Preview { } switch (action) { case "desktop": - actionHtml.push(''); + actionHtml.push(``); break; case "tablet": actionHtml.push(''); @@ -138,11 +140,12 @@ export class Preview { previewElement.style.width = "360px"; previewElement.style.padding = "8px"; } - this.render(protyle); - actionElement.querySelectorAll("button").forEach((item) => { - item.classList.remove("protyle-preview__action--current"); - }); - target.classList.add("protyle-preview__action--current"); + if (type !== "mp-wechat" && type !== "zhihu" && type !== "yuque") { + actionElement.querySelectorAll("button").forEach((item) => { + item.classList.remove("protyle-preview__action--current"); + }); + target.classList.add("protyle-preview__action--current"); + } } target = target.parentElement; } @@ -224,7 +227,8 @@ export class Preview { } else if (type === "zhihu") { this.link2online(copyElement); copyElement.querySelectorAll('[data-subtype="math"]').forEach((item: HTMLElement) => { - item.outerHTML = `${item.getAttribute(`; + // https://github.com/siyuan-note/siyuan/issues/10015 + item.outerHTML = `${item.getAttribute(`; }); copyElement.querySelectorAll("blockquote").forEach((item) => { const elements: HTMLElement[] = []; @@ -251,7 +255,10 @@ export class Preview { item.style.backgroundImage = "none"; }); this.element.append(copyElement); - const cloneRange = getSelection().getRangeAt(0).cloneRange(); + let cloneRange; + if (getSelection().rangeCount > 0) { + cloneRange = getSelection().getRangeAt(0).cloneRange(); + } const range = copyElement.ownerDocument.createRange(); range.selectNodeContents(copyElement); focusByRange(range);