import {abcRender} from "../markdown/abcRender"; import {chartRender} from "../markdown/chartRender"; import {graphvizRender} from "../markdown/graphvizRender"; import {mathRender} from "../markdown/mathRender"; import {mermaidRender} from "../markdown/mermaidRender"; import {mindmapRender} from "../markdown/mindmapRender"; import {flowchartRender} from "../markdown/flowchartRender"; import {plantumlRender} from "../markdown/plantumlRender"; import {Constants} from "../../constants"; export const processPasteCode = (html: string, text: string) => { const tempElement = document.createElement("div"); tempElement.innerHTML = html; let isCode = false; if (tempElement.childElementCount === 1 && (tempElement.lastElementChild as HTMLElement).style.fontFamily.indexOf("monospace") > -1) { // VS Code isCode = true; } const pres = tempElement.querySelectorAll("pre"); if (tempElement.childElementCount === 1 && pres.length === 1 && pres[0].className !== "protyle-sv") { // IDE isCode = true; } if (html.indexOf('\n
') === 0) { // Xcode isCode = true; } if (tempElement.childElementCount === 1 && tempElement.firstElementChild.tagName === "TABLE" && tempElement.querySelector(".line-number") && tempElement.querySelector(".line-content")) { // 网页源码 isCode = true; } if (isCode) { const code = text || html; if (/\n/.test(code) || pres.length === 1) { return `