UNPKG

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