diff --git a/app/src/protyle/export/util.ts b/app/src/protyle/export/util.ts index bdc9adefe..54165bc81 100644 --- a/app/src/protyle/export/util.ts +++ b/app/src/protyle/export/util.ts @@ -10,14 +10,7 @@ import {addScript} from "../util/addScript"; import {isMobile} from "../../util/functions"; import {Constants} from "../../constants"; import {highlightRender} from "../markdown/highlightRender"; -import {mathRender} from "../markdown/mathRender"; -import {mermaidRender} from "../markdown/mermaidRender"; -import {flowchartRender} from "../markdown/flowchartRender"; -import {graphvizRender} from "../markdown/graphvizRender"; -import {chartRender} from "../markdown/chartRender"; -import {mindmapRender} from "../markdown/mindmapRender"; -import {abcRender} from "../markdown/abcRender"; -import {plantumlRender} from "../markdown/plantumlRender"; +import {processRender} from "../util/processCode"; declare const html2canvas: (element: Element) => Promise; export const afterExport = (exportPath: string, msgId: string) => { @@ -35,8 +28,8 @@ export const afterExport = (exportPath: string, msgId: string) => { export const exportImage = (id: string) => { const exportDialog = new Dialog({ title: window.siyuan.languages.exportAsImage, - content: `
-
+ content: `
+
${window.siyuan.languages.exportBySiYuan}
@@ -55,16 +48,8 @@ export const exportImage = (id: string) => { }, (response) => { const previewElement = exportDialog.element.querySelector("#preview") previewElement.innerHTML = response.data.content; - + processRender(previewElement); highlightRender(previewElement); - mathRender(previewElement); - mermaidRender(previewElement); - flowchartRender(previewElement); - graphvizRender(previewElement); - chartRender(previewElement); - mindmapRender(previewElement); - abcRender(previewElement); - plantumlRender(previewElement); previewElement.querySelectorAll("table").forEach((item: HTMLElement) => { if (item.clientWidth > item.parentElement.clientWidth) { // @ts-ignore @@ -81,13 +66,15 @@ export const exportImage = (id: string) => { setTimeout(() => { addScript("stage/protyle/js/html2canvas.min.js?v=1.4.1", "protyleHtml2canvas").then(() => { html2canvas(previewElement.parentElement).then((canvas) => { - const link = document.createElement("a"); - link.download = response.data.name + ".png"; - link.href = "data:" + canvas.toDataURL("image/png"); - link.click(); - link.remove(); - hideMessage(msgId); - exportDialog.destroy(); + canvas.toBlob((blob: Blob) => { + const formData = new FormData(); + formData.append("file", blob, response.data.name + ".png"); + formData.append("type", "image/png"); + fetchPost("/api/export/exportAsFile", formData, () => { + hideMessage(msgId); + exportDialog.destroy(); + }); + }); }); }); }, Constants.TIMEOUT_TRANSITION)