@mdit/plugin-dl
Version:
dl plugin for MarkdownIt
2 lines • 1.82 kB
JavaScript
const e=(e,t)=>{let n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];if(n>=r)return-1;let i=e.src.charCodeAt(n++);if(i!==126&&i!==58)return-1;let a=e.skipSpaces(n);return n===a||a>=r?-1:n},t=(e,t)=>{let n=e.level+2;for(let r=t+2,i=e.tokens.length-2;r<i;r++)e.tokens[r].level===n&&e.tokens[r].type===`paragraph_open`&&(e.tokens[r+2].hidden=!0,e.tokens[r].hidden=!0,r+=2)},n=(n,r,i,a)=>{if(a)return n.ddIndent<0?!1:e(n,r)>=0&&n.sCount[r]<n.blkIndent;let o=r+1;if(o>=i)return!1;let s=!1;if(n.isEmpty(o)&&(o++,s=!0,o>=i)||n.sCount[o]<n.blkIndent)return!1;let c=e(n,o);if(c<0)return!1;let l=n.tokens.length,u=n.push(`dl_open`,`dl`,1),d=[r,0];u.map=d;let f=r,p=o,m=!s;OUTER:for(;;){let t=!1,r=n.push(`dt_open`,`dt`,1);r.map=[f,f];let a=n.push(`inline`,``,0);for(a.map=[f,f],a.content=n.getLines(f,f+1,n.blkIndent,!1).trim(),a.children=[],n.push(`dt_close`,`dt`,-1);;){let r=n.push(`dd_open`,`dd`,1),a=[o,0];r.map=a;let s=c,l=n.eMarks[p],u=n.sCount[p]+c-(n.bMarks[p]+n.tShift[p]);for(;s<l;){let e=n.src.charCodeAt(s);if(e===9)u+=4-u%4;else if(e===32)u++;else break;s++}c=s;let d=n.tight,f=n.ddIndent,h=n.blkIndent,g=n.tShift[p],_=n.sCount[p],v=n.parentType;if(n.blkIndent=n.ddIndent=n.sCount[p]+2,n.tShift[p]=c-n.bMarks[p],n.sCount[p]=u,n.tight=!0,n.parentType=`dl`,n.md.block.tokenize(n,p,i,!0),(!n.tight||t)&&(m=!1),t=n.line-p>1&&n.isEmpty(n.line-1),n.tShift[p]=g,n.sCount[p]=_,n.tight=d,n.parentType=v,n.blkIndent=h,n.ddIndent=f,n.push(`dd_close`,`dd`,-1),a[1]=o=n.line,o>=i||n.sCount[o]<n.blkIndent)break OUTER;if(c=e(n,o),c<0)break;p=o}if(f=o,p=f+1,p>=i||(n.isEmpty(p)&&p++,p>=i||n.sCount[p]<n.blkIndent)||(c=e(n,p),c<0))break}return n.push(`dl_close`,`dl`,-1),d[1]=o,n.line=o,m&&t(n,l),!0},r=e=>{e.block.ruler.before(`paragraph`,`dl`,n,{alt:[`paragraph`,`reference`,`blockquote`]})};export{r as dl};
//# sourceMappingURL=index.js.map