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, "")}
`;
})
}