avatar
忘机山人
随手记
GitHub
公告
欢迎来到我的小站,这里是我的第二大脑和生活日常。
友链
`],{type:"text/html;charset=utf-8"});let e=URL.createObjectURL(i);window.open(e,"_blank","noopener"),setTimeout(()=>URL.revokeObjectURL(e),3e4)}},o=i=>{let e=i.querySelector(".mermaid-open-btn");e||((e=document.createElement("button")).type="button",e.className="mermaid-open-btn",i.appendChild(e)),e.innerHTML='',e.__mermaidViewerBound||(e.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation();var t,e=i.__mermaidOriginalSvg||i.querySelector("svg");e&&(t=i.__mermaidInitViewBox,n({source:e,initViewBox:t}))}),e.__mermaidViewerBound=!0)},u=(e,t,i,r)=>{var n=e[2]*t;return[i-(i-e[0])*t,r-(r-e[1])*t,n,e[3]*t]},d=d=>{let s=d.querySelector("svg");if(s){var e=l(s);if(d.__mermaidInitViewBox=e,d.__mermaidCurViewBox=e.slice(),i(s,e),!d.__mermaidGestureBound){d.__mermaidGestureBound=!0;let n=(e,t)=>{var i=s.getBoundingClientRect(),r=d.__mermaidCurViewBox||l(s);return{x:r[0]+(e-i.left)*(r[2]/i.width),y:r[1]+r[3]/i.height*(t-i.top),rect:i,vb:r}},a={pointers:new Map,startVb:null,startDist:0,startCenter:null},t=e=>{var t=d.__mermaidInitViewBox||e,i=.1*t[2],r=10*t[2],n=.1*t[3],t=10*t[3];return e[2]=m(e[2],i,r),e[3]=m(e[3],n,t),e},o=e=>{e=t(e),d.__mermaidCurViewBox=e,i(s,e)};e=e=>{a.pointers.delete(e.pointerId),0===a.pointers.size?(a.startVb=null,a.startDist=0,a.startCenter=null,d.__mermaidLastSinglePointer=null):1===a.pointers.size&&(d.__mermaidLastSinglePointer=[...a.pointers.values()][0])};s.addEventListener("pointerdown",e=>{var t,i;"mouse"===e.pointerType&&0!==e.button||(s.setPointerCapture(e.pointerId),a.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),1===a.pointers.size?a.startVb=(d.__mermaidCurViewBox||l(s)).slice():2===a.pointers.size&&(t=(e=[...a.pointers.values()])[0].x-e[1].x,i=e[0].y-e[1].y,a.startDist=Math.hypot(t,i),a.startVb=(d.__mermaidCurViewBox||l(s)).slice(),a.startCenter={x:(e[0].x+e[1].x)/2,y:(e[0].y+e[1].y)/2}))}),s.addEventListener("pointermove",e=>{var t,i,r;a.pointers.has(e.pointerId)&&(a.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY}),1===a.pointers.size&&a.startVb?(i=[...a.pointers.values()][0],e.clientX,e=d.__mermaidLastSinglePointer||i,r=i.x-e.x,e=i.y-e.y,i=(d.__mermaidLastSinglePointer=i,n(i.x,i.y)).rect,t=r*((r=(d.__mermaidCurViewBox||l(s)).slice())[2]/i.width),e=e*(r[3]/i.height),o([r[0]-t,r[1]-e,r[2],r[3]])):2===a.pointers.size&&a.startVb&&0{e.preventDefault();var t=0{var e=d.__mermaidInitViewBox;e&&(d.__mermaidCurViewBox=e.slice(),i(s,e))})}}};var e=()=>{var e;let t=document.querySelectorAll("#article-container .mermaid-wrap");0!==t.length&&(e=()=>(e=>{window.loadMermaid=!0;let a="dark"===document.documentElement.getAttribute("data-theme")?"dark":"default";e.forEach((t,e)=>{let i=t.firstElementChild;var r=t.querySelector("svg"),r=(r&&r.remove(),t.__mermaidGestureBound=!1,i.dataset.config?JSON.parse(i.dataset.config):{}),r=(r.theme||(r.theme=a),`%%{init: ${JSON.stringify(r)}}%% `),r=r+i.textContent,e=mermaid.render("mermaid-"+e,r);let n=e=>{i.insertAdjacentHTML("afterend",e),d(t),t.__mermaidOriginalSvg=e,o(t)};"string"==typeof e?n(e):e.then(({svg:e})=>n(e))})})(t),btf.addGlobalFn("themeChange",e,"mermaid"),window.loadMermaid?e():btf.getScript("https://cdn.jsdelivr.net/npm/mermaid@11.12.2/dist/mermaid.min.js").then(e))};btf.addGlobalFn("encrypt",e,"mermaid"),window.pjax?e():document.addEventListener("DOMContentLoaded",e)})()