5 lines
1.0 KiB
JavaScript
5 lines
1.0 KiB
JavaScript
import{dedent as S}from"@mdit/helper";const v=(p,{name:i,open:m,close:b,render:h}={name:"uml",open:"start",close:"end",render:(c,l)=>{const f=c[l],{content:e,info:r,type:u}=f;return`<div class="${u}" title="${r}">${e}</div>`}})=>{const c=`@${m}`,l=`@${b}`,f=(e,r,u,C)=>{let s=e.bMarks[r]+e.tShift[r],a=e.eMarks[r];if(e.src.charCodeAt(s)!==64)return!1;let t;for(t=0;t<c.length;++t)if(c[t]!==e.src[s+t])return!1;const $=e.src.slice(s,s+t),g=e.src.slice(s+t,a);if(C)return!0;let d=!1,n=r;for(;n<u&&(s=e.bMarks[n]+e.tShift[n],a=e.eMarks[n],!(s<a&&e.sCount[n]<e.blkIndent));){if(e.src.charCodeAt(s)===64&&e.sCount[n]<=e.sCount[r]){let k=!0;for(t=0;t<l.length;++t)if(l[t]!==e.src[s+t]){k=!1;break}if(k&&e.skipSpaces(s+t)>=a){d=!0;break}}n++}const M=e.src.split(`
|
|
`).slice(r+1,n).join(`
|
|
`),o=e.push(i,"uml",0);return o.block=!0,o.info=g,o.content=S(M),o.map=[r,n],o.markup=$,e.line=n+(d?1:0),!0};p.block.ruler.before("fence",i,f,{alt:["paragraph","reference","blockquote","list"]}),p.renderer.rules[i]=h};export{v as uml};
|
|
//# sourceMappingURL=index.js.map
|