@mdast2docx/mermaid
Version:
Enhance Markdown-to-DOCX conversion with Mermaid and mindmap diagram support using this plugin for @m2d/core. Converts code blocks into SVG images with customizable Mermaid config.
5 lines (4 loc) • 1.96 kB
JavaScript
;var R=Object.create;var g=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var A=(e,r)=>{for(var i in r)g(e,i,{get:r[i],enumerable:!0})},M=(e,r,i,d)=>{if(r&&typeof r=="object"||typeof r=="function")for(let m of E(r))!w.call(e,m)&&m!==i&&g(e,m,{get:()=>r[m],enumerable:!(d=x(r,m))||d.enumerable});return e};var v=(e,r,i)=>(i=e!=null?R(I(e)):{},M(r||!e||!e.__esModule?g(i,"default",{value:e,enumerable:!0}):i,e)),b=e=>M(g({},"__esModule",{value:!0}),e);var T={};A(T,{mermaidPlugin:()=>S});module.exports=b(T);var f=v(require("mermaid")),l=require("@m2d/core/cache"),y="mmd",G={fontFamily:"sans-serif",suppressErrorRendering:!0},O={cacheMode:"both",ignoreKeys:["type","lang"],parallel:!0},S=e=>{var h,s;let r={...G,...e==null?void 0:e.mermaidConfig};f.default.initialize(r);let i={cache:(h=e==null?void 0:e.cache)!=null?h:void 0,...O,...e==null?void 0:e.cacheConfig},d=(s=e==null?void 0:e.maxAgeMinutes)!=null?s:30*24*60,m=!1,P=async(a,c)=>{let t=`m${crypto.randomUUID()}`;try{return await f.default.render(t,a)}catch(n){if(console.warn(n),e!=null&&e.fixMermaid)try{return await f.default.render(t,e.fixMermaid(a,n))}catch(u){console.warn(u)}}},C=a=>{var c,t;if((c=a.children)==null||c.forEach(C),a.type==="code"&&/(mindmap|mermaid|mmd)/.test((t=a.lang)!=null?t:"")){let n=a.value;a.lang==="mindmap"&&!n.startsWith("mindmap")&&(n=`mindmap
${n}`),/^mindmap|gantt|gitGraph|timeline/i.test(n)||(n=n.split(`
`).map(o=>o.trim()).join(`
`));let u={type:"svg",value:(0,l.createPersistentCache)(P,y,i)(n,r),data:{mermaid:n}};Object.assign(a,{type:"paragraph",children:[u],data:{alignment:"center"}})}};return{preprocess:C,postprocess:()=>{var a,c;(!((a=e==null?void 0:e.cacheConfig)!=null&&a.cacheMode)||((c=e==null?void 0:e.cacheConfig)==null?void 0:c.cacheMode)!=="memory")&&!m&&(m=!0,(0,l.simpleCleanup)(d,y))}}};0&&(module.exports={mermaidPlugin});