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