@vuux/editor
Version:
Vue Nuxt 富文本编辑器
6 lines (5 loc) • 1.5 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./markdown/marked.cjs"),o=l=>{const a=[];l=l.replace(/```[\s\S]*?```/g,t=>(a.push(t),`@@CODE_BLOCK_${a.length-1}@@`));let e=l;return e=e.replace(/:::details\s+(.+?)\n([\s\S]+?)\n:::/g,(t,r,n)=>{const s=i.marked.parse(n);return`<details><summary>${r}</summary><div class="details-content">${s}</div></details>`}),e=e.replace(/:::align\s+(left|center|right)\n([\s\S]+?)\n:::/g,(t,r,n)=>{const s=i.marked.parse(n);return`<div style="text-align:${r}">${s}</div>`}),e=e.replace(/:::panel\s+(primary|warning|danger|success)\s+(.+?)\n([\s\S]+?)\n:::/g,(t,r,n,s)=>{const c=i.marked.parse(s);return`<div class="app-panel is-${r}"><div class="panel-title">${n}</div><div class="panel-body">${c}</div></div>`}),e=e.replace(/!u([\s\S]+?)!/g,(t,r)=>`<u>${r}</u>`),e=e.replace(/\{(.+?)\s*\|\s*(.+?)\}/g,(t,r,n)=>`<ruby>${r}<rt>${n}</rt></ruby>`),e=e.replace(/==(.+?)==\{color:([^}]+)\}/g,(t,r,n)=>`<span style="color:${n}">${r}</span>`),e=e.replace(/==(.+?)==\{size:([^}]+)\}/g,(t,r,n)=>`<span style="font-size:${n}">${r}</span>`),e=e.replace(/@@CODE_BLOCK_(\d+)@@/g,(t,r)=>a[+r]),e},p=(l,a)=>{if(l<=0||a<=0)return"";const e=Array.from({length:a},(n,s)=>`表头${s+1}`).join(" | "),t=Array.from({length:a},()=>"-----").join(" | "),r=Array.from({length:l},()=>Array.from({length:a},(n,s)=>`单元格${s+1}`).join(" | ")).join(`
`);return`${e}
${t}
${r}
`};exports.generateTable=p;exports.parseCustomDirectives=o;