UNPKG

markdown-it-multimd-table-ext

Version:

Multimarkdown table syntax plugin for markdown-it markdown parser

3 lines (2 loc) 7.96 kB
/*! markdown-it-multimd-table-ext 4.2.35 https://github.com/jppellet/markdown-it-multimd-table-ext @license MIT */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).markdownitMultimdTableExt=e()}(this,(function(){"use strict";function t(){this.__highest_alphabet__=0,this.__match_alphabets__={},this.__initial_state__=0,this.__accept_states__={},this.__transitions__={},this.__actions__={}}t.prototype.set_highest_alphabet=function(t){this.__highest_alphabet__=t},t.prototype.set_match_alphabets=function(t){this.__match_alphabets__=t},t.prototype.set_initial_state=function(t){this.__initial_state__=t},t.prototype.set_accept_states=function(t){for(var e=0;e<t.length;e++)this.__accept_states__[t[e]]=!0},t.prototype.set_transitions=function(t){this.__transitions__=t},t.prototype.set_actions=function(t){this.__actions__=t},t.prototype.update_transition=function(t,e){this.__transitions__[t]=Object.assign(this.__transitions__[t]||Object(),e)},t.prototype.execute=function(t,e){var a,s,n;for(a=this.__initial_state__,s=t;a&&s<e;s++){for(n=this.__highest_alphabet__;n>0&&!(a&n&&this.__match_alphabets__[n].call(this,s,a,n));n>>=4);if(this.__actions__(s,a,n),0===n)break;a=this.__transitions__[a][n]||0}return!!this.__accept_states__[a]};var e=t;return function(t,a){function s(t,e){var a,s,n,i=t.bMarks[e]+t.sCount[e],l=t.bMarks[e]+t.blkIndent,r=t.skipSpacesBack(t.eMarks[e],l),p=[],o=[],c=!1,h=!1,u=0;for(s=i;s<r;s++)switch(a=t.src.charCodeAt(s)){case 92:c=!0;break;case 96:(n=t.skipChars(s,96)-1)>s?(h||(0===u?u=n-s:u===n-s&&(u=0)),s=n):(h||!c&&!u)&&(h=!h),c=!1;break;case 124:case 8214:h||c||(p.push(s),o.push(8214===a)),c=!1;break;default:c=!1}return 0===p.length?[p,p]:(p[0]>l&&(p.unshift(l-1),o.unshift(!1)),p[p.length-1]<r-1&&(p.push(r),o.push(!1)),[p,o])}function n(t,e,s){var n={text:null,label:null},i=t.bMarks[s]+t.sCount[s],l=t.eMarks[s],r=t.src.slice(i,l).match(/^\[(.+?)\](\[([^\[\]]+)\])?\s*$/);return!!r&&(!!e||(n.text=r[1],a.autolabel||r[2]?(n.label=r[2]||r[1],n.label=n.label.toLowerCase().replace(/\W+/g,""),n):n))}function i(t,e,n){var i,l,r,p,o={bounds:null,multiline:null,vlines:null},c=s(t,n);return!((i=c[0]).length<2)&&(!!e||(o.bounds=i,o.vlines=c[1],a.multiline&&(l=t.bMarks[n]+t.sCount[n],r=t.eMarks[n]-1,o.multiline=92===t.src.charCodeAt(r),o.multiline&&(p=t.eMarks[n],t.eMarks[n]=t.skipSpacesBack(r,l),o.bounds=s(t,n),o.vlines=o.bounds[1],o.bounds=o.bounds[0],t.eMarks[n]=p)),o))}function l(t,e,a){var n,i,l,r,p,o=s(t,a),c=o[0],h={aligns:[],valigns:[],wraps:[],wrapscompact:[],vlines:o[1]},u=/^:?(\^|v)?(-+|=+):?\+?-?$/;if(t.sCount[a]-t.blkIndent>=4)return!1;if(0===c.length)return!1;for(n=0;n<c.length-1;n++){if(i=t.src.slice(c[n]+1,c[n+1]).trim(),!u.test(i))return!1;switch(p=43===i.charCodeAt(i.length-1)||i.length>=2&&43===i.charCodeAt(i.length-2),h.wraps.push(p),h.wrapscompact.push(p&&45===i.charCodeAt(i.length-1)),r=i.charCodeAt(0),l=Number(58===r)<<4|Number(58===i.charCodeAt(i.length-1-h.wraps[n]))){case 0:h.aligns.push("");break;case 1:h.aligns.push("right");break;case 16:h.aligns.push("left");break;case 17:h.aligns.push("center")}94===(l=i.charCodeAt(58===r?1:0))?h.valigns.push("top"):118===l?h.valigns.push("bottom"):h.valigns.push("")}return!!e||h}function r(t,e,a){return t.isEmpty(a)}function p(t,e,a){var s=t.src.slice(t.bMarks[a],t.eMarks[a]).trim();return/^[-=\|\u2016]? ?[-=]+[ -=\|\u2016]*$/.test(s)}a=t.utils.assign({},{multiline:!1,rowspan:!1,headerless:!1,multibody:!0,autolabel:!0},a||{}),t.block.ruler.at("table",(function(t,s,o,c){var h,u,m,_,b,d,f,g,k,v,w,y,x,M,C,A,T,j,S,B,$,O=new e,E=16,G=-1,I=/^\[(:-|<|-:|>|-|<>|:-:|><)?[ ,]?(v|\^|=)?\] ?(.*)$/,N=[];if(s+2>o)return!1;if((m=new t.Token("table_open","table",1)).meta={sep:null,cap:null,tr:[]},O.set_highest_alphabet(1048576),O.set_initial_state(1052672),O.set_accept_states([1048592,1048848,1048849,0]),O.set_match_alphabets({1048576:n.bind(this,t,!0),65536:l.bind(this,t,!0),4096:i.bind(this,t,!0),256:p.bind(this,t,!0),16:i.bind(this,t,!0),1:r.bind(this,t,!0)}),O.set_transitions({1052672:{1048576:4096,4096:69632},4096:{4096:69632},69632:{65536:1048592,4096:69632},1048592:{1048576:0,16:1048849},1048849:{1048576:0,16:1048849,256:1048592,1:1048592}}),a.headerless&&(O.set_initial_state(1118208),O.update_transition(1118208,{1048576:69632,65536:1048592,4096:69632}),(_=new t.Token("tr_placeholder","tr",0)).meta=Object()),a.multibody||(O.update_transition(1048592,{1048576:0,16:1048848}),O.update_transition(1048848,{1048576:0,16:1048848,256:1048592})),O.set_actions((function(e,r,p){switch(p){case 1048576:if(m.meta.cap)break;m.meta.cap=n(t,!1,e),m.meta.cap.map=[e,e+1],m.meta.cap.first=e===s;break;case 65536:m.meta.sep=l(t,!1,e),m.meta.sep.map=[e,e+1],_.meta.grp|=1,E=16;break;case 4096:case 16:(_=new t.Token("tr_open","tr",1)).map=[e,e+1],_.meta=i(t,!1,e),_.meta.type=p,_.meta.grp=E,E=0,m.meta.tr.push(_),a.multiline&&(_.meta.multiline&&G<0?G=m.meta.tr.length-1:!_.meta.multiline&&G>=0&&((u=m.meta.tr[G]).meta.mbounds=m.meta.tr.slice(G).map((function(t){return t.meta.bounds})),u.map[1]=_.map[1],m.meta.tr=m.meta.tr.slice(0,G+1),G=-1));break;case 256:_.meta.lineBelow=!0,_.meta.grp|=1,E=16;break;case 1:_.meta.grp|=1,E=16}})),!1===O.execute(s,o))return!1;if(!m.meta.tr.length)return!1;if(c)return!0;if(m.meta.tr[m.meta.tr.length-1].meta.grp|=1,m.map=g=[s,0],m.block=!0,m.level=t.level++,t.tokens.push(m),m.meta.cap){(u=t.push("caption_open","caption",1)).map=m.meta.cap.map;var R=[],z=m.meta.cap.first?"top":"bottom";null!==m.meta.cap.label&&R.push(["id",m.meta.cap.label]),"top"!==z&&R.push(["style","caption-side: "+z]),u.attrs=R,(u=t.push("inline","",0)).content=m.meta.cap.text,u.map=m.meta.cap.map,u.children=[],u=t.push("caption_close","caption",-1)}for(M=0;M<m.meta.tr.length;M++){for(d=new t.Token("td_th_placeholder","",0),16&(_=m.meta.tr[M]).meta.grp&&(v=4096===_.meta.type?"thead":"tbody",(u=t.push(v+"_open",v,1)).map=k=[_.map[0],0],N=[]),_.block=!0,_.level=t.level++,t.tokens.push(_),C=0;C<_.meta.bounds.length-1;C++)if(x=[_.meta.bounds[C]+1,_.meta.bounds[C+1]],""!==(w=t.src.slice.apply(t.src,x)))if(y=w.trim(),a.rowspan&&N[C]&&"^^"===y)f=N[C].attrGet("rowspan"),N[C].attrSet("rowspan",null===f?2:f+1),d=new t.Token("td_th_placeholder","",0);else{if(v=4096===_.meta.type?"th":"td",(u=t.push(v+"_open",v,1)).map=_.map,u.attrs=[],j=m.meta.sep.aligns[C],S=m.meta.sep.valigns[C],h=I.exec(y)){if(h[1])switch(h[1]){case":-":case"<":j="left";break;case"-:":case">":j="right";break;case":-:":case"><":j="center";break;default:j=""}if(h[2])switch(h[2]){case"^":S="top";break;case"v":S="bottom";break;default:S="middle"}w=h[3]}if(B=[],j&&B.push("text-align:"+j),S&&B.push("vertical-align:"+S),u.meta={halign:j,valign:S},m.meta.sep.vlines[C]&&B.push("border-left:1px solid"),m.meta.sep.vlines[C+1]&&B.push("border-right:1px solid"),_.meta.lineBelow&&B.push("border-bottom:1px solid"),B.length&&u.attrs.push(["style",B.join(";")]),m.meta.sep.wraps[C]&&u.attrs.push(["class","extend"]),d=N[C]=u,a.multiline&&_.meta.multiline&&_.meta.mbounds){for(w=new Array(_.map[0]).fill("").concat([w.trimRight()]),A=1;A<_.meta.mbounds.length;A++)C>_.meta.mbounds[A].length-2||(x=[_.meta.mbounds[A][C]+1,_.meta.mbounds[A][C+1]],w.push(t.src.slice.apply(t.src,x).trimRight()));for(($=new t.md.block.State(w.join("\n"),t.md,t.env,[])).level=_.level+1,t.md.block.tokenize($,_.map[0],$.lineMax),T=0;T<$.tokens.length;T++)t.tokens.push($.tokens[T])}else(u=t.push("inline","",0)).content=w.trim(),u.map=_.map,u.level=_.level+1,u.children=[];u=t.push(v+"_close",v,-1)}else b=d.attrGet("colspan"),d.attrSet("colspan",null===b?2:b+1);t.push("tr_close","tr",-1),1&_.meta.grp&&(v=4096===_.meta.type?"thead":"tbody",u=t.push(v+"_close",v,-1),k[1]=_.map[1])}return g[1]=Math.max(k[1],m.meta.sep.map[1],m.meta.cap?m.meta.cap.map[1]:-1),u=t.push("table_close","table",-1),t.line=g[1],!0}),{alt:["paragraph","reference"]})}}));