markdown-to-jsx
Version:
Convert markdown to JSX with ease for React and React-like projects. Super lightweight and highly configurable.
3 lines (2 loc) • 14.3 kB
JavaScript
function n(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var t=n(require("react"));function r(){return(r=Object.assign||function(n){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(n[e]=r[e])}return n}).apply(this,arguments)}var e=/[\'\"]/,o=["children","options"],a={accesskey:"accessKey",allowfullscreen:"allowFullScreen",allowtransparency:"allowTransparency",autocomplete:"autoComplete",autofocus:"autoFocus",autoplay:"autoPlay",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",class:"className",classid:"classId",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",crossorigin:"crossOrigin",enctype:"encType",for:"htmlFor",formaction:"formAction",formenctype:"formEncType",formmethod:"formMethod",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",inputmode:"inputMode",keyparams:"keyParams",keytype:"keyType",marginheight:"marginHeight",marginwidth:"marginWidth",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",novalidate:"noValidate",radiogroup:"radioGroup",readonly:"readOnly",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",usemap:"useMap"},c={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:"“"},u=["style","script"],i=/([-A-Z0-9_:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|(?:\{((?:\\.|{[^}]*?}|[^}])*)\})))?/gi,f=/mailto:/i,l=/\n{2,}$/,s=/^( *>[^\n]+(\n[^\n]+)*\n*)+\n{2,}/,_=/^ *> ?/gm,d=/^ {2,}\n/,p=/^(?:( *[-*_]) *){3,}(?:\n *)+\n/,m=/^\s*(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n *)+\n?/,g=/^(?: {4}[^\n]+\n*)+(?:\n *)+\n?/,y=/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,h=/^(?:\n *)*\n/,v=/\r\n?/g,k=/^\[\^([^\]]+)](:.*)\n/,b=/^\[\^([^\]]+)]/,x=/\f/g,S=/^\s*?\[(x|\s)\]/,$=/^ *(#{1,6}) *([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,w=/^([^\n]+)\n *(=|-){3,} *(?:\n *)+\n/,z=/^ *(?!<[a-z][^ >/]* ?\/>)<([a-z][^ >/]*) ?([^>]*)\/{0}>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1)[\s\S])*?)<\/\1>\n*/i,E=/&([a-z]+);/g,A=/^<!--[\s\S]*?(?:-->)/,O=/^(data|aria|x)-[a-z_][a-z\d_.-]*$/,R=/^ *<([a-z][a-z0-9:]*)(?:\s+((?:<.*?>|[^>])*))?\/?>(?!<\/\1>)(\s*\n)?/i,j=/^\{.*\}$/,I=/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,M=/^<([^ >]+@[^ >]+)>/,B=/^<([^ >]+:\/[^ >]+)>/,L=/ *\n+$/,T=/(?:^|\n)( *)$/,C=/-([a-z])?/gi,D=/^(.*\|?.*)\n *(\|? *[-:]+ *\|[-| :]*)\n((?:.*\|.*\n)*)\n?/,N=/^((?:[^\n]|\n(?! *\n))+)(?:\n *)+\n/,Z=/^\[([^\]]*)\]:\s*(\S+)\s*("([^"]*)")?/,F=/^!\[([^\]]*)\] ?\[([^\]]*)\]/,P=/^\[([^\]]*)\] ?\[([^\]]*)\]/,q=/(\[|\])/g,G=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s)/,H=/\t/g,U=/^ *\| */,V=/(^ *\||\| *$)/g,W=/ *$/,K=/^ *:-+: *$/,Q=/^ *:-+ *$/,X=/^ *-+: *$/,J=/^([*_])\1((?:\[.*?\][([].*?[)\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\1\1(?!\1)/,Y=/^([*_])((?:\[.*?\][([].*?[)\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\1(?!\1|\w)/,nn=/^~~((?:\[.*?\]|<.*?>(?:.*?<.*?>)?|`.*?`|.)*?)~~/,tn=/^\\([^0-9A-Za-z\s])/,rn=/^[\s\S]+?(?=[^0-9A-Z\s\u00c0-\uffff&;.()'"]|\d+\.|\n\n| {2,}\n|\w+:\S|$)/i,en=/(^\n+|\n+$|\s+$)/g,on=/^([ \t]*)/,an=/\\([^0-9A-Z\s])/gi,cn=new RegExp("^( *)((?:[*+-]|\\d+\\.)) +"),un=new RegExp("( *)((?:[*+-]|\\d+\\.)) +[^\\n]*(?:\\n(?!\\1(?:[*+-]|\\d+\\.) )[^\\n]*)*(\\n|$)","gm"),fn=new RegExp("^( *)((?:[*+-]|\\d+\\.)) [\\s\\S]+?(?:\\n{2,}(?! )(?!\\1(?:[*+-]|\\d+\\.) (?!(?:[*+-]|\\d+\\.) ))\\n*|\\s*\\n*$)"),ln="(?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*",sn=new RegExp("^\\[("+ln+")\\]\\(\\s*<?((?:[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['\"]([\\s\\S]*?)['\"])?\\s*\\)"),_n=new RegExp("^!\\[("+ln+")\\]\\(\\s*<?((?:[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['\"]([\\s\\S]*?)['\"])?\\s*\\)"),dn=[s,g,m,$,w,z,A,R,un,fn,D,N];function pn(n){return n.replace(/[ÀÁÂÃÄÅàáâãä忯]/g,"a").replace(/[çÇ]/g,"c").replace(/[ðÐ]/g,"d").replace(/[ÈÉÊËéèêë]/g,"e").replace(/[ÏïÎîÍíÌì]/g,"i").replace(/[Ññ]/g,"n").replace(/[øØœŒÕõÔôÓóÒò]/g,"o").replace(/[ÜüÛûÚúÙù]/g,"u").replace(/[ŸÿÝý]/g,"y").replace(/[^a-z0-9- ]/gi,"").replace(/ /gi,"-").toLowerCase()}function mn(n){return X.test(n)?"right":K.test(n)?"center":Q.test(n)?"left":null}function gn(n,t,r){var e=r.t;r.t=!0;var o=t(n.trim(),r);r.t=e;var a=[[]];return o.forEach(function(n,t){"tableSeparator"===n.type?0!==t&&t!==o.length-1&&a.push([]):("text"!==n.type||null!=o[t+1]&&"tableSeparator"!==o[t+1].type||(n.content=n.content.replace(W,"")),a[a.length-1].push(n))}),a}function yn(n,t,r){r.o=!0;var e=gn(n[1],t,r),o=n[2].replace(V,"").split("|").map(mn),a=function(n,t,r){return n.trim().split("\n").map(function(n){return gn(n,t,r)})}(n[3],t,r);return r.o=!1,{align:o,cells:a,header:e,type:"table"}}function hn(n,t){return null==n.align[t]?{}:{textAlign:n.align[t]}}function vn(n){return function(t,r){return r.o?n.exec(t):null}}function kn(n){return function(t,r){return r.o||r.u?n.exec(t):null}}function bn(n){return function(t,r){return r.o||r.u?null:n.exec(t)}}function xn(n){return function(t){return n.exec(t)}}function Sn(n){try{if(decodeURIComponent(n).replace(/[^A-Za-z0-9/:]/g,"").match(/^\s*(javascript|vbscript|data):/i))return null}catch(n){return null}return n}function $n(n){return n.replace(an,"$1")}function wn(n,t,r){var e=r.o||!1,o=r.u||!1;r.o=!0,r.u=!0;var a=n(t,r);return r.o=e,r.u=o,a}function zn(n,t,r){var e=r.o||!1,o=r.u||!1;r.o=!1,r.u=!0;var a=n(t,r);return r.o=e,r.u=o,a}function En(n,t,r){return r.o=!1,n(t+"\n\n",r)}var An,On=function(n,t,r){return{content:wn(t,n[1],r)}};function Rn(){return{}}function jn(){return null}function In(){return[].slice.call(arguments).filter(Boolean).join(" ")}function Mn(n,t,r){for(var e=n,o=t.split(".");o.length&&void 0!==(e=e[o[0]]);)o.shift();return e||r}function Bn(n,t){var r=Mn(t,n);return r?"function"==typeof r||"object"==typeof r&&"render"in r?r:Mn(t,n+".component",n):n}function Ln(n,o){void 0===o&&(o={}),o.overrides=o.overrides||{},o.slugify=o.slugify||pn,o.namedCodesToUnicode=o.namedCodesToUnicode?r({},c,o.namedCodesToUnicode):c;var V=o.createElement||t.default.createElement;function W(n,t){var e=Mn(o.overrides,n+".props",{});return V.apply(void 0,[Bn(n,o.overrides),r({},t,e,{className:In(null==t?void 0:t.className,e.className)||void 0})].concat([].slice.call(arguments,2)))}function K(n){var r=!1;o.forceInline?r=!0:o.forceBlock||(r=!1===G.test(n));var e=Ln(gn(r?n:n.replace(en,"")+"\n\n",{o:r}));if(null===o.wrapper)return e;var a,c=o.wrapper||(r?"span":"div");if(e.length>1||o.forceWrapper)a=e;else{if(1===e.length)return"string"==typeof(a=e[0])?W("span",{key:"outer"},a):a;a=null}return t.default.createElement(c,{key:"outer"},a)}function Q(n){var r=n.match(i);return r?r.reduce(function(n,r,o){var c=r.indexOf("=");if(-1!==c){var u=function(n){return-1!==n.indexOf("-")&&null===n.match(O)&&(n=n.replace(C,function(n,t){return t.toUpperCase()})),n}(r.slice(0,c)).trim(),i=function(n){return n?(e.test(n.charAt(0))&&(n=n.substr(1)),e.test(n.charAt(n.length-1))&&(n=n.substr(0,n.length-1)),n):""}(r.slice(c+1).trim()),f=a[u]||u,l=n[f]=function(n,t){return"style"===n?t.split(/;\s?/).reduce(function(n,t){var r=t.slice(0,t.indexOf(":"));return n[r.replace(/(-[a-z])/g,function(n){return n[1].toUpperCase()})]=t.slice(r.length+1).trim(),n},{}):"href"===n?Sn(t):(t.match(j)&&(t=t.slice(1,t.length-1)),"true"===t||"false"!==t&&t)}(u,i);"string"==typeof l&&(z.test(l)||R.test(l))&&(n[f]=t.default.cloneElement(K(l.trim()),{key:o}))}else"style"!==r&&(n[a[r]||r]=!0);return n},{}):void 0}var X=[],an={},ln={blockQuote:{i:bn(s),l:An.HIGH,_:function(n,t,r){return{content:t(n[0].replace(_,""),r)}},p:function(n,t,r){return W("blockquote",{key:r.m},t(n.content,r))}},breakLine:{i:xn(d),l:An.HIGH,_:Rn,p:function(n,t,r){return W("br",{key:r.m})}},breakThematic:{i:bn(p),l:An.HIGH,_:Rn,p:function(n,t,r){return W("hr",{key:r.m})}},codeBlock:{i:bn(g),l:An.MAX,_:function(n){return{content:n[0].replace(/^ {4}/gm,"").replace(/\n+$/,""),lang:void 0}},p:function(n,t,r){return W("pre",{key:r.m},W("code",{className:n.lang?"lang-"+n.lang:""},n.content))}},codeFenced:{i:bn(m),l:An.MAX,_:function(n){return{content:n[3],lang:n[2]||void 0,type:"codeBlock"}}},codeInline:{i:kn(y),l:An.LOW,_:function(n){return{content:n[2]}},p:function(n,t,r){return W("code",{key:r.m},n.content)}},footnote:{i:bn(k),l:An.MAX,_:function(n){return X.push({footnote:n[2],identifier:n[1]}),{}},p:jn},footnoteReference:{i:vn(b),l:An.HIGH,_:function(n){return{content:n[1],target:"#"+o.slugify(n[1])}},p:function(n,t,r){return W("a",{key:r.m,href:Sn(n.target)},W("sup",{key:r.m},n.content))}},gfmTask:{i:vn(S),l:An.HIGH,_:function(n){return{completed:"x"===n[1].toLowerCase()}},p:function(n,t,r){return W("input",{checked:n.completed,key:r.m,readOnly:!0,type:"checkbox"})}},heading:{i:bn($),l:An.HIGH,_:function(n,t,r){return{content:wn(t,n[2],r),id:o.slugify(n[2]),level:n[1].length}},p:function(n,t,r){return n.tag="h"+n.level,W(n.tag,{id:n.id,key:r.m},t(n.content,r))}},headingSetext:{i:bn(w),l:An.MAX,_:function(n,t,r){return{content:wn(t,n[1],r),level:"="===n[2]?1:2,type:"heading"}}},htmlComment:{i:xn(A),l:An.HIGH,_:function(){return{}},p:jn},image:{i:kn(_n),l:An.HIGH,_:function(n){return{alt:n[1],target:$n(n[2]),title:n[3]}},p:function(n,t,r){return W("img",{key:r.m,alt:n.alt||void 0,title:n.title||void 0,src:Sn(n.target)})}},link:{i:vn(sn),l:An.LOW,_:function(n,t,r){return{content:zn(t,n[1],r),target:$n(n[2]),title:n[3]}},p:function(n,t,r){return W("a",{key:r.m,href:Sn(n.target),title:n.title},t(n.content,r))}},linkAngleBraceStyleDetector:{i:vn(B),l:An.MAX,_:function(n){return{content:[{content:n[1],type:"text"}],target:n[1],type:"link"}}},linkBareUrlDetector:{i:function(n,t){return t.g?null:vn(I)(n,t)},l:An.MAX,_:function(n){return{content:[{content:n[1],type:"text"}],target:n[1],title:void 0,type:"link"}}},linkMailtoDetector:{i:vn(M),l:An.MAX,_:function(n){var t=n[1],r=n[1];return f.test(r)||(r="mailto:"+r),{content:[{content:t.replace("mailto:",""),type:"text"}],target:r,type:"link"}}},list:{i:function(n,t,r){var e=T.exec(r);return!e||!t.h&&t.o?null:fn.exec(n=e[1]+n)},l:An.HIGH,_:function(n,t,r){var e=n[2],o=e.length>1,a=o?+e:void 0,c=n[0].replace(l,"\n").match(un),u=!1;return{items:c.map(function(n,e){var o=cn.exec(n)[0].length,a=new RegExp("^ {1,"+o+"}","gm"),i=n.replace(a,"").replace(cn,""),f=e===c.length-1,l=-1!==i.indexOf("\n\n")||f&&u;u=l;var s,_=r.o,d=r.h;r.h=!0,l?(r.o=!1,s=i.replace(L,"\n\n")):(r.o=!0,s=i.replace(L,""));var p=t(s,r);return r.o=_,r.h=d,p}),ordered:o,start:a}},p:function(n,t,r){return W(n.ordered?"ol":"ul",{key:r.m,start:n.start},n.items.map(function(n,e){return W("li",{key:e},t(n,r))}))}},newlineCoalescer:{i:bn(h),l:An.LOW,_:Rn,p:function(){return"\n"}},paragraph:{i:bn(N),l:An.LOW,_:On,p:function(n,t,r){return W("p",{key:r.m},t(n.content,r))}},ref:{i:vn(Z),l:An.MAX,_:function(n){return an[n[1]]={target:n[2],title:n[4]},{}},p:jn},refImage:{i:kn(F),l:An.MAX,_:function(n){return{alt:n[1]||void 0,ref:n[2]}},p:function(n,t,r){return W("img",{key:r.m,alt:n.alt,src:Sn(an[n.ref].target),title:an[n.ref].title})}},refLink:{i:vn(P),l:An.MAX,_:function(n,t,r){return{content:t(n[1],r),fallbackContent:t(n[0].replace(q,"\\$1"),r),ref:n[2]}},p:function(n,t,r){return an[n.ref]?W("a",{key:r.m,href:Sn(an[n.ref].target),title:an[n.ref].title},t(n.content,r)):W("span",{key:r.m},t(n.fallbackContent,r))}},table:{i:bn(D),l:An.HIGH,_:yn,p:function(n,t,r){return W("table",{key:r.m},W("thead",null,W("tr",null,n.header.map(function(e,o){return W("th",{key:o,style:hn(n,o)},t(e,r))}))),W("tbody",null,n.cells.map(function(e,o){return W("tr",{key:o},e.map(function(e,o){return W("td",{key:o,style:hn(n,o)},t(e,r))}))})))}},tableSeparator:{i:function(n,t){return t.t?U.exec(n):null},l:An.HIGH,_:function(){return{type:"tableSeparator"}},p:function(){return" | "}},text:{i:xn(rn),l:An.MIN,_:function(n){return{content:n[0].replace(E,function(n,t){return o.namedCodesToUnicode[t]?o.namedCodesToUnicode[t]:n})}},p:function(n){return n.content}},textBolded:{i:kn(J),l:An.MED,_:function(n,t,r){return{content:t(n[2],r)}},p:function(n,t,r){return W("strong",{key:r.m},t(n.content,r))}},textEmphasized:{i:kn(Y),l:An.LOW,_:function(n,t,r){return{content:t(n[2],r)}},p:function(n,t,r){return W("em",{key:r.m},t(n.content,r))}},textEscaped:{i:kn(tn),l:An.HIGH,_:function(n){return{content:n[1],type:"text"}}},textStrikethroughed:{i:kn(nn),l:An.LOW,_:On,p:function(n,t,r){return W("del",{key:r.m},t(n.content,r))}}};!0!==o.disableParsingRawHTML&&(ln.htmlBlock={i:xn(z),l:An.HIGH,_:function(n,t,r){var e,o=n[3].match(on),a=new RegExp("^"+o[1],"gm"),c=n[3].replace(a,""),i=(e=c,dn.some(function(n){return n.test(e)})?En:wn),f=n[1].toLowerCase(),l=-1!==u.indexOf(f);r.g=r.g||"a"===f;var s=l?n[3]:i(t,c,r);return r.g=!1,{attrs:Q(n[2]),content:s,noInnerParse:l,tag:l?f:n[1]}},p:function(n,t,e){return W(n.tag,r({key:e.m},n.attrs),n.noInnerParse?n.content:t(n.content,e))}},ln.htmlSelfClosing={i:xn(R),l:An.HIGH,_:function(n){return{attrs:Q(n[2]||""),tag:n[1]}},p:function(n,t,e){return W(n.tag,r({},n.attrs,{key:e.m}))}});var mn,gn=function(n){var t=Object.keys(n);function r(e,o){for(var a=[],c="";e;)for(var u=0;u<t.length;){var i=t[u],f=n[i],l=f.i(e,o,c);if(l){var s=l[0];e=e.substring(s.length);var _=f._(l,r,o);null==_.type&&(_.type=i),a.push(_),c=s;break}u++}return a}return t.sort(function(t,r){var e=n[t].l,o=n[r].l;return e!==o?e-o:t<r?-1:1}),function(n,t){return r(function(n){return n.replace(v,"\n").replace(x,"").replace(H," ")}(n),t)}}(ln),Ln=(mn=function(n){return function(t,r,e){return n[t.type].p(t,r,e)}}(ln),function n(t,r){if(void 0===r&&(r={}),Array.isArray(t)){for(var e=r.m,o=[],a=!1,c=0;c<t.length;c++){r.m=c;var u=n(t[c],r),i="string"==typeof u;i&&a?o[o.length-1]+=u:o.push(u),a=i}return r.m=e,o}return mn(t,n,r)}),Tn=K(n);return X.length&&Tn.props.children.push(W("footer",{key:"footer"},X.map(function(n){return W("div",{id:o.slugify(n.identifier),key:n.identifier},n.identifier,Ln(gn(n.footnote,{o:!0})))}))),Tn}!function(n){n[n.MAX=0]="MAX",n[n.HIGH=1]="HIGH",n[n.MED=2]="MED",n[n.LOW=3]="LOW",n[n.MIN=4]="MIN"}(An||(An={}));var Tn=function(n){var r=n.children,e=n.options,a=function(n,t){if(null==n)return{};var r,e,o={},a=Object.keys(n);for(e=0;e<a.length;e++)t.indexOf(r=a[e])>=0||(o[r]=n[r]);return o}(n,o);return t.default.cloneElement(Ln(r,e),a)};Object.assign(Tn,{compiler:Ln}),module.exports=Tn;
//# sourceMappingURL=index.js.map