diff --git a/app/src/protyle/toolbar/index.ts b/app/src/protyle/toolbar/index.ts index a1ca5efdd..0cf788500 100644 --- a/app/src/protyle/toolbar/index.ts +++ b/app/src/protyle/toolbar/index.ts @@ -1037,18 +1037,18 @@ export class Toolbar {
${html}
-
+
`; const listElement = this.subElement.querySelector(".b3-list"); const previewElement = this.subElement.firstElementChild.lastElementChild; - previewTemplate(listElement.firstElementChild.getAttribute("data-value"), previewElement) + previewTemplate(listElement.firstElementChild.getAttribute("data-value"), previewElement, protyle.block.parentID) listElement.addEventListener("mouseover", (event) => { const target = event.target as HTMLElement; const hoverItemElement = hasClosestByClassName(target, "b3-list-item"); if (!hoverItemElement) { return; } - previewTemplate(hoverItemElement.getAttribute("data-value"), previewElement) + previewTemplate(hoverItemElement.getAttribute("data-value"), previewElement, protyle.block.parentID) }); const inputElement = this.subElement.querySelector("input"); inputElement.addEventListener("keydown", (event: KeyboardEvent) => { @@ -1060,7 +1060,7 @@ export class Toolbar { if (!isEmpty) { const currentElement = upDownHint(listElement, event); if (currentElement) { - previewTemplate(currentElement.getAttribute("data-value"), previewElement) + previewTemplate(currentElement.getAttribute("data-value"), previewElement, protyle.block.parentID) } } if (event.key === "Enter") { @@ -1086,7 +1086,7 @@ export class Toolbar { searchHTML += `
${item.content}
`; }); listElement.innerHTML = searchHTML || `
  • ${window.siyuan.languages.emptyContent}
  • `; - previewTemplate(response.data.blocks[0].path, previewElement); + previewTemplate(response.data.blocks[0]?.path, previewElement, protyle.block.parentID); }); }); this.subElement.lastElementChild.addEventListener("click", (event) => { diff --git a/app/src/protyle/toolbar/util.ts b/app/src/protyle/toolbar/util.ts index ce936debc..15b02ca1a 100644 --- a/app/src/protyle/toolbar/util.ts +++ b/app/src/protyle/toolbar/util.ts @@ -1,7 +1,14 @@ import {fetchPost} from "../../util/fetch"; -export const previewTemplate = (pathString: string, element: Element) => { - fetchPost("/api/file/getFile", {path: pathString.replace(window.siyuan.config.system.dataDir.substring(0, window.siyuan.config.system.dataDir.length - 4), "")}, (response) => { - element.innerHTML = `
    ${response.data}
    `; +export const previewTemplate = (pathString: string, element: Element, parentId: string) => { + if (!pathString) { + element.innerHTML = "" + return; + } + fetchPost("/api/template/render", { + id: parentId, + path: pathString + }, (response) => { + element.innerHTML = `
    ${response.data.content.replace(/contenteditable="true"/g, "")}
    `; }) }