This commit is contained in:
Vanessa 2022-11-14 19:00:56 +08:00
parent f749ff5fb5
commit 6e3a826ac6

View file

@ -10,14 +10,7 @@ import {addScript} from "../util/addScript";
import {isMobile} from "../../util/functions"; import {isMobile} from "../../util/functions";
import {Constants} from "../../constants"; import {Constants} from "../../constants";
import {highlightRender} from "../markdown/highlightRender"; import {highlightRender} from "../markdown/highlightRender";
import {mathRender} from "../markdown/mathRender"; import {processRender} from "../util/processCode";
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";
declare const html2canvas: (element: Element) => Promise<any>; declare const html2canvas: (element: Element) => Promise<any>;
export const afterExport = (exportPath: string, msgId: string) => { export const afterExport = (exportPath: string, msgId: string) => {
@ -55,16 +48,8 @@ export const exportImage = (id: string) => {
}, (response) => { }, (response) => {
const previewElement = exportDialog.element.querySelector("#preview") const previewElement = exportDialog.element.querySelector("#preview")
previewElement.innerHTML = response.data.content; previewElement.innerHTML = response.data.content;
processRender(previewElement);
highlightRender(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) => { previewElement.querySelectorAll("table").forEach((item: HTMLElement) => {
if (item.clientWidth > item.parentElement.clientWidth) { if (item.clientWidth > item.parentElement.clientWidth) {
// @ts-ignore // @ts-ignore
@ -81,15 +66,17 @@ export const exportImage = (id: string) => {
setTimeout(() => { setTimeout(() => {
addScript("stage/protyle/js/html2canvas.min.js?v=1.4.1", "protyleHtml2canvas").then(() => { addScript("stage/protyle/js/html2canvas.min.js?v=1.4.1", "protyleHtml2canvas").then(() => {
html2canvas(previewElement.parentElement).then((canvas) => { html2canvas(previewElement.parentElement).then((canvas) => {
const link = document.createElement("a"); canvas.toBlob((blob: Blob) => {
link.download = response.data.name + ".png"; const formData = new FormData();
link.href = "data:" + canvas.toDataURL("image/png"); formData.append("file", blob, response.data.name + ".png");
link.click(); formData.append("type", "image/png");
link.remove(); fetchPost("/api/export/exportAsFile", formData, () => {
hideMessage(msgId); hideMessage(msgId);
exportDialog.destroy(); exportDialog.destroy();
}); });
}); });
});
});
}, Constants.TIMEOUT_TRANSITION) }, Constants.TIMEOUT_TRANSITION)
}); });
}); });