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.2 kB
JavaScript
import n from"react";function t(){return(t=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 r=/[\'\"]/,e=["children","options"],o={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"},a={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:"“"},c=["style","script"],u=/([-A-Z0-9_:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|(?:\{((?:\\.|{[^}]*?}|[^}])*)\})))?/gi,i=/mailto:/i,f=/\n{2,}$/,l=/^( *>[^\n]+(\n[^\n]+)*\n*)+\n{2,}/,s=/^ *> ?/gm,_=/^ {2,}\n/,d=/^(?:( *[-*_]) *){3,}(?:\n *)+\n/,p=/^\s*(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n *)+\n?/,m=/^(?: {4}[^\n]+\n*)+(?:\n *)+\n?/,g=/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,y=/^(?:\n *)*\n/,h=/\r\n?/g,v=/^\[\^([^\]]+)](:.*)\n/,k=/^\[\^([^\]]+)]/,x=/\f/g,b=/^\s*?\[(x|\s)\]/,S=/^ *(#{1,6}) *([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,$=/^([^\n]+)\n *(=|-){3,} *(?:\n *)+\n/,w=/^ *(?!<[a-z][^ >/]* ?\/>)<([a-z][^ >/]*) ?([^>]*)\/{0}>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1)[\s\S])*?)<\/\1>\n*/i,z=/&([a-z]+);/g,E=/^<!--[\s\S]*?(?:-->)/,A=/^(data|aria|x)-[a-z_][a-z\d_.-]*$/,R=/^ *<([a-z][a-z0-9:]*)(?:\s+((?:<.*?>|[^>])*))?\/?>(?!<\/\1>)(\s*\n)?/i,I=/^\{.*\}$/,M=/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,O=/^<([^ >]+@[^ >]+)>/,B=/^<([^ >]+:\/[^ >]+)>/,L=/ *\n+$/,T=/(?:^|\n)( *)$/,j=/-([a-z])?/gi,C=/^(.*\|?.*)\n *(\|? *[-:]+ *\|[-| :]*)\n((?:.*\|.*\n)*)\n?/,D=/^((?:[^\n]|\n(?! *\n))+)(?:\n *)+\n/,N=/^\[([^\]]*)\]:\s*(\S+)\s*("([^"]*)")?/,Z=/^!\[([^\]]*)\] ?\[([^\]]*)\]/,F=/^\[([^\]]*)\] ?\[([^\]]*)\]/,P=/(\[|\])/g,G=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s)/,H=/\t/g,q=/^ *\| */,U=/(^ *\||\| *$)/g,V=/ *$/,W=/^ *:-+: *$/,K=/^ *:-+ *$/,Q=/^ *-+: *$/,X=/^([*_])\1((?:\[.*?\][([].*?[)\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\1\1(?!\1)/,J=/^([*_])((?:\[.*?\][([].*?[)\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\1(?!\1|\w)/,Y=/^~~((?:\[.*?\]|<.*?>(?:.*?<.*?>)?|`.*?`|.)*?)~~/,nn=/^\\([^0-9A-Za-z\s])/,tn=/^[\s\S]+?(?=[^0-9A-Z\s\u00c0-\uffff&;.()'"]|\d+\.|\n\n| {2,}\n|\w+:\S|$)/i,rn=/(^\n+|\n+$|\s+$)/g,en=/^([ \t]*)/,on=/\\([^0-9A-Z\s])/gi,an=new RegExp("^( *)((?:[*+-]|\\d+\\.)) +"),cn=new RegExp("( *)((?:[*+-]|\\d+\\.)) +[^\\n]*(?:\\n(?!\\1(?:[*+-]|\\d+\\.) )[^\\n]*)*(\\n|$)","gm"),un=new RegExp("^( *)((?:[*+-]|\\d+\\.)) [\\s\\S]+?(?:\\n{2,}(?! )(?!\\1(?:[*+-]|\\d+\\.) (?!(?:[*+-]|\\d+\\.) ))\\n*|\\s*\\n*$)"),fn="(?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*",ln=new RegExp("^\\[("+fn+")\\]\\(\\s*<?((?:[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['\"]([\\s\\S]*?)['\"])?\\s*\\)"),sn=new RegExp("^!\\[("+fn+")\\]\\(\\s*<?((?:[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['\"]([\\s\\S]*?)['\"])?\\s*\\)"),_n=[l,m,p,S,$,w,E,R,cn,un,C,D];function dn(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 pn(n){return Q.test(n)?"right":W.test(n)?"center":K.test(n)?"left":null}function mn(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(V,"")),a[a.length-1].push(n))}),a}function gn(n,t,r){r.o=!0;var e=mn(n[1],t,r),o=n[2].replace(U,"").split("|").map(pn),a=function(n,t,r){return n.trim().split("\n").map(function(n){return mn(n,t,r)})}(n[3],t,r);return r.o=!1,{align:o,cells:a,header:e,type:"table"}}function yn(n,t){return null==n.align[t]?{}:{textAlign:n.align[t]}}function hn(n){return function(t,r){return r.o?n.exec(t):null}}function vn(n){return function(t,r){return r.o||r.u?n.exec(t):null}}function kn(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 bn(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 Sn(n){return n.replace(on,"$1")}function $n(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 wn(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 zn(n,t,r){return r.o=!1,n(t+"\n\n",r)}var En,An=function(n,t,r){return{content:$n(t,n[1],r)}};function Rn(){return{}}function In(){return null}function Mn(){return[].slice.call(arguments).filter(Boolean).join(" ")}function On(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=On(t,n);return r?"function"==typeof r||"object"==typeof r&&"render"in r?r:On(t,n+".component",n):n}function Ln(e,U){void 0===U&&(U={}),U.overrides=U.overrides||{},U.slugify=U.slugify||dn,U.namedCodesToUnicode=U.namedCodesToUnicode?t({},a,U.namedCodesToUnicode):a;var V=U.createElement||n.createElement;function W(n,r){var e=On(U.overrides,n+".props",{});return V.apply(void 0,[Bn(n,U.overrides),t({},r,e,{className:Mn(null==r?void 0:r.className,e.className)||void 0})].concat([].slice.call(arguments,2)))}function K(t){var r=!1;U.forceInline?r=!0:U.forceBlock||(r=!1===G.test(t));var e=Tn(Ln(r?t:t.replace(rn,"")+"\n\n",{o:r}));if(null===U.wrapper)return e;var o,a=U.wrapper||(r?"span":"div");if(e.length>1||U.forceWrapper)o=e;else{if(1===e.length)return"string"==typeof(o=e[0])?W("span",{key:"outer"},o):o;o=null}return n.createElement(a,{key:"outer"},o)}function Q(t){var e=t.match(u);return e?e.reduce(function(t,e,a){var c=e.indexOf("=");if(-1!==c){var u=function(n){return-1!==n.indexOf("-")&&null===n.match(A)&&(n=n.replace(j,function(n,t){return t.toUpperCase()})),n}(e.slice(0,c)).trim(),i=function(n){return n?(r.test(n.charAt(0))&&(n=n.substr(1)),r.test(n.charAt(n.length-1))&&(n=n.substr(0,n.length-1)),n):""}(e.slice(c+1).trim()),f=o[u]||u,l=t[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?bn(t):(t.match(I)&&(t=t.slice(1,t.length-1)),"true"===t||"false"!==t&&t)}(u,i);"string"==typeof l&&(w.test(l)||R.test(l))&&(t[f]=n.cloneElement(K(l.trim()),{key:a}))}else"style"!==e&&(t[o[e]||e]=!0);return t},{}):void 0}var on=[],fn={},pn={blockQuote:{i:kn(l),l:En.HIGH,_:function(n,t,r){return{content:t(n[0].replace(s,""),r)}},p:function(n,t,r){return W("blockquote",{key:r.m},t(n.content,r))}},breakLine:{i:xn(_),l:En.HIGH,_:Rn,p:function(n,t,r){return W("br",{key:r.m})}},breakThematic:{i:kn(d),l:En.HIGH,_:Rn,p:function(n,t,r){return W("hr",{key:r.m})}},codeBlock:{i:kn(m),l:En.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:kn(p),l:En.MAX,_:function(n){return{content:n[3],lang:n[2]||void 0,type:"codeBlock"}}},codeInline:{i:vn(g),l:En.LOW,_:function(n){return{content:n[2]}},p:function(n,t,r){return W("code",{key:r.m},n.content)}},footnote:{i:kn(v),l:En.MAX,_:function(n){return on.push({footnote:n[2],identifier:n[1]}),{}},p:In},footnoteReference:{i:hn(k),l:En.HIGH,_:function(n){return{content:n[1],target:"#"+U.slugify(n[1])}},p:function(n,t,r){return W("a",{key:r.m,href:bn(n.target)},W("sup",{key:r.m},n.content))}},gfmTask:{i:hn(b),l:En.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:kn(S),l:En.HIGH,_:function(n,t,r){return{content:$n(t,n[2],r),id:U.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:kn($),l:En.MAX,_:function(n,t,r){return{content:$n(t,n[1],r),level:"="===n[2]?1:2,type:"heading"}}},htmlComment:{i:xn(E),l:En.HIGH,_:function(){return{}},p:In},image:{i:vn(sn),l:En.HIGH,_:function(n){return{alt:n[1],target:Sn(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:bn(n.target)})}},link:{i:hn(ln),l:En.LOW,_:function(n,t,r){return{content:wn(t,n[1],r),target:Sn(n[2]),title:n[3]}},p:function(n,t,r){return W("a",{key:r.m,href:bn(n.target),title:n.title},t(n.content,r))}},linkAngleBraceStyleDetector:{i:hn(B),l:En.MAX,_:function(n){return{content:[{content:n[1],type:"text"}],target:n[1],type:"link"}}},linkBareUrlDetector:{i:function(n,t){return t.g?null:hn(M)(n,t)},l:En.MAX,_:function(n){return{content:[{content:n[1],type:"text"}],target:n[1],title:void 0,type:"link"}}},linkMailtoDetector:{i:hn(O),l:En.MAX,_:function(n){var t=n[1],r=n[1];return i.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:un.exec(n=e[1]+n)},l:En.HIGH,_:function(n,t,r){var e=n[2],o=e.length>1,a=o?+e:void 0,c=n[0].replace(f,"\n").match(cn),u=!1;return{items:c.map(function(n,e){var o=an.exec(n)[0].length,a=new RegExp("^ {1,"+o+"}","gm"),i=n.replace(a,"").replace(an,""),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:kn(y),l:En.LOW,_:Rn,p:function(){return"\n"}},paragraph:{i:kn(D),l:En.LOW,_:An,p:function(n,t,r){return W("p",{key:r.m},t(n.content,r))}},ref:{i:hn(N),l:En.MAX,_:function(n){return fn[n[1]]={target:n[2],title:n[4]},{}},p:In},refImage:{i:vn(Z),l:En.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:bn(fn[n.ref].target),title:fn[n.ref].title})}},refLink:{i:hn(F),l:En.MAX,_:function(n,t,r){return{content:t(n[1],r),fallbackContent:t(n[0].replace(P,"\\$1"),r),ref:n[2]}},p:function(n,t,r){return fn[n.ref]?W("a",{key:r.m,href:bn(fn[n.ref].target),title:fn[n.ref].title},t(n.content,r)):W("span",{key:r.m},t(n.fallbackContent,r))}},table:{i:kn(C),l:En.HIGH,_:gn,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:yn(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:yn(n,o)},t(e,r))}))})))}},tableSeparator:{i:function(n,t){return t.t?q.exec(n):null},l:En.HIGH,_:function(){return{type:"tableSeparator"}},p:function(){return" | "}},text:{i:xn(tn),l:En.MIN,_:function(n){return{content:n[0].replace(z,function(n,t){return U.namedCodesToUnicode[t]?U.namedCodesToUnicode[t]:n})}},p:function(n){return n.content}},textBolded:{i:vn(X),l:En.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:vn(J),l:En.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:vn(nn),l:En.HIGH,_:function(n){return{content:n[1],type:"text"}}},textStrikethroughed:{i:vn(Y),l:En.LOW,_:An,p:function(n,t,r){return W("del",{key:r.m},t(n.content,r))}}};!0!==U.disableParsingRawHTML&&(pn.htmlBlock={i:xn(w),l:En.HIGH,_:function(n,t,r){var e,o=n[3].match(en),a=new RegExp("^"+o[1],"gm"),u=n[3].replace(a,""),i=(e=u,_n.some(function(n){return n.test(e)})?zn:$n),f=n[1].toLowerCase(),l=-1!==c.indexOf(f);r.g=r.g||"a"===f;var s=l?n[3]:i(t,u,r);return r.g=!1,{attrs:Q(n[2]),content:s,noInnerParse:l,tag:l?f:n[1]}},p:function(n,r,e){return W(n.tag,t({key:e.m},n.attrs),n.noInnerParse?n.content:r(n.content,e))}},pn.htmlSelfClosing={i:xn(R),l:En.HIGH,_:function(n){return{attrs:Q(n[2]||""),tag:n[1]}},p:function(n,r,e){return W(n.tag,t({},n.attrs,{key:e.m}))}});var mn,Ln=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(h,"\n").replace(x,"").replace(H," ")}(n),t)}}(pn),Tn=(mn=function(n){return function(t,r,e){return n[t.type].p(t,r,e)}}(pn),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)}),jn=K(e);return on.length&&jn.props.children.push(W("footer",{key:"footer"},on.map(function(n){return W("div",{id:U.slugify(n.identifier),key:n.identifier},n.identifier,Tn(Ln(n.footnote,{o:!0})))}))),jn}!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"}(En||(En={}));export default function(t){var r=t.children,o=t.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}(t,e);return n.cloneElement(Ln(r,o),a)}export{Ln as compiler};
//# sourceMappingURL=index.module.js.map