basb-cli
Version:
Blog as Second Brain!
40 lines (37 loc) • 1.22 kB
HTML
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sequence Chart Renderer</title>
</head>
<body>
<div id="render-target"></div>
<script type="module">
import { SequenceDiagram } from "../../../frontend/libs/sequence-diagram/sequence-diagram-web.mjs"
window.SequenceDiagram = SequenceDiagram
</script>
<script>
const { ipcRenderer } = require("electron")
const { writeFileSync } = require("node:fs")
ipcRenderer.once("chart-content", (_, {
chartContent,
_renderOptions,
savePath,
}) => {
const targetEl = document.querySelector("#render-target")
let diagram
try {
diagram = new SequenceDiagram(chartContent)
} catch(err) {
ipcRenderer.send("render-error", err.message)
return
}
targetEl.appendChild(diagram.dom())
const SVGContent = targetEl.innerHTML
writeFileSync(savePath, SVGContent)
ipcRenderer.send("render-ended")
})
</script>
</body>
</html>