UNPKG

15.2 kBJavaScriptView Raw
1!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("react")):"function"==typeof define&&define.amd?define(["react"],n):(e||self).MarkdownToJSX=n(e.React)}(this,function(e){function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e);function r(){return(r=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(this,arguments)}var a=/[\'\"]/,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"},c={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:"“"},i=["style","script"],l=/([-A-Z0-9_:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|(?:\{((?:\\.|{[^}]*?}|[^}])*)\})))?/gi,u=/mailto:/i,s=/\n{2,}$/,f=/^( *>[^\n]+(\n[^\n]+)*\n*)+\n{2,}/,p=/^ *> ?/gm,d=/^ {2,}\n/,m=/^(?:( *[-*_]) *){3,}(?:\n *)+\n/,g=/^\s*(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n *)+\n?/,h=/^(?: {4}[^\n]+\n*)+(?:\n *)+\n?/,y=/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,k=/^(?:\n *)*\n/,v=/\r\n?/g,x=/^\[\^([^\]]+)](:.*)\n/,b=/^\[\^([^\]]+)]/,H=/\f/g,A=/^\s*?\[(x|\s)\]/,I=/^ *(#{1,6}) *([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,S=/^([^\n]+)\n *(=|-){3,} *(?:\n *)+\n/,w=/^ *(?!<[a-z][^ >/]* ?\/>)<([a-z][^ >/]*) ?([^>]*)\/{0}>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1)[\s\S])*?)<\/\1>\n*/i,M=/&([a-z]+);/g,O=/^<!--[\s\S]*?(?:-->)/,E=/^(data|aria|x)-[a-z_][a-z\d_.-]*$/,T=/^ *<([a-z][a-z0-9:]*)(?:\s+((?:<.*?>|[^>])*))?\/?>(?!<\/\1>)(\s*\n)?/i,$=/^\{.*\}$/,C=/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,G=/^<([^ >]+@[^ >]+)>/,L=/^<([^ >]+:\/[^ >]+)>/,z=/ *\n+$/,X=/(?:^|\n)( *)$/,j=/-([a-z])?/gi,R=/^(.*\|?.*)\n *(\|? *[-:]+ *\|[-| :]*)\n((?:.*\|.*\n)*)\n?/,W=/^((?:[^\n]|\n(?! *\n))+)(?:\n *)+\n/,_=/^\[([^\]]*)\]:\s*(\S+)\s*("([^"]*)")?/,B=/^!\[([^\]]*)\] ?\[([^\]]*)\]/,N=/^\[([^\]]*)\] ?\[([^\]]*)\]/,U=/(\[|\])/g,D=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s)/,P=/\t/g,Z=/^ *\| */,F=/(^ *\||\| *$)/g,q=/ *$/,V=/^ *:-+: *$/,J=/^ *:-+ *$/,K=/^ *-+: *$/,Q=/^([*_])\1((?:\[.*?\][([].*?[)\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\1\1(?!\1)/,Y=/^([*_])((?:\[.*?\][([].*?[)\]]|<.*?>(?:.*?<.*?>)?|`.*?`|~+.*?~+|.)*?)\1(?!\1|\w)/,ee=/^~~((?:\[.*?\]|<.*?>(?:.*?<.*?>)?|`.*?`|.)*?)~~/,ne=/^\\([^0-9A-Za-z\s])/,te=/^[\s\S]+?(?=[^0-9A-Z\s\u00c0-\uffff&;.()'"]|\d+\.|\n\n| {2,}\n|\w+:\S|$)/i,re=/(^\n+|\n+$|\s+$)/g,ae=/^([ \t]*)/,oe=/\\([^0-9A-Z\s])/gi,ce="( *)((?:[*+-]|\\d+\\.)) +",ie=new RegExp("^"+ce),le=new RegExp(ce+"[^\\n]*(?:\\n(?!\\1(?:[*+-]|\\d+\\.) )[^\\n]*)*(\\n|$)","gm"),ue=new RegExp("^( *)((?:[*+-]|\\d+\\.)) [\\s\\S]+?(?:\\n{2,}(?! )(?!\\1(?:[*+-]|\\d+\\.) (?!(?:[*+-]|\\d+\\.) ))\\n*|\\s*\\n*$)"),se="(?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*",fe="\\s*<?((?:[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['\"]([\\s\\S]*?)['\"])?\\s*",pe=new RegExp("^\\[("+se+")\\]\\("+fe+"\\)"),de=new RegExp("^!\\[("+se+")\\]\\("+fe+"\\)"),me=[f,h,g,I,S,w,O,T,le,ue,R,W];function ge(e){return e.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 he(e){return K.test(e)?"right":V.test(e)?"center":J.test(e)?"left":null}function ye(e,n,t){var r=t.inTable;t.inTable=!0;var a=n(e.trim(),t);t.inTable=r;var o=[[]];return a.forEach(function(e,n){"tableSeparator"===e.type?0!==n&&n!==a.length-1&&o.push([]):("text"!==e.type||null!=a[n+1]&&"tableSeparator"!==a[n+1].type||(e.content=e.content.replace(q,"")),o[o.length-1].push(e))}),o}function ke(e,n,t){t.inline=!0;var r=ye(e[1],n,t),a=e[2].replace(F,"").split("|").map(he),o=function(e,n,t){return e.trim().split("\n").map(function(e){return ye(e,n,t)})}(e[3],n,t);return t.inline=!1,{align:a,cells:o,header:r,type:"table"}}function ve(e,n){return null==e.align[n]?{}:{textAlign:e.align[n]}}function xe(e){return function(n,t){return t.inline?e.exec(n):null}}function be(e){return function(n,t){return t.inline||t.simple?e.exec(n):null}}function He(e){return function(n,t){return t.inline||t.simple?null:e.exec(n)}}function Ae(e){return function(n){return e.exec(n)}}function Ie(e){try{if(decodeURIComponent(e).replace(/[^A-Za-z0-9/:]/g,"").match(/^\s*(javascript|vbscript|data):/i))return null}catch(e){return null}return e}function Se(e){return e.replace(oe,"$1")}function we(e,n,t){var r=t.inline||!1,a=t.simple||!1;t.inline=!0,t.simple=!0;var o=e(n,t);return t.inline=r,t.simple=a,o}function Me(e,n,t){var r=t.inline||!1,a=t.simple||!1;t.inline=!1,t.simple=!0;var o=e(n,t);return t.inline=r,t.simple=a,o}function Oe(e,n,t){return t.inline=!1,e(n+"\n\n",t)}var Ee,Te=function(e,n,t){return{content:we(n,e[1],t)}};function $e(){return{}}function Ce(){return null}function Ge(){return[].slice.call(arguments).filter(Boolean).join(" ")}function Le(e,n,t){for(var r=e,a=n.split(".");a.length&&void 0!==(r=r[a[0]]);)a.shift();return r||t}function ze(e,n){var t=Le(n,e);return t?"function"==typeof t||"object"==typeof t&&"render"in t?t:Le(n,e+".component",e):e}function Xe(e,n){void 0===n&&(n={}),n.overrides=n.overrides||{},n.slugify=n.slugify||ge,n.namedCodesToUnicode=n.namedCodesToUnicode?r({},c,n.namedCodesToUnicode):c;var F=n.createElement||t.default.createElement;function q(e,t){var a=Le(n.overrides,e+".props",{});return F.apply(void 0,[ze(e,n.overrides),r({},t,a,{className:Ge(null==t?void 0:t.className,a.className)||void 0})].concat([].slice.call(arguments,2)))}function V(e){var r=!1;n.forceInline?r=!0:n.forceBlock||(r=!1===D.test(e));var a=he(fe(r?e:e.replace(re,"")+"\n\n",{inline:r}));if(null===n.wrapper)return a;var o,c=n.wrapper||(r?"span":"div");if(a.length>1||n.forceWrapper)o=a;else{if(1===a.length)return"string"==typeof(o=a[0])?q("span",{key:"outer"},o):o;o=null}return t.default.createElement(c,{key:"outer"},o)}function J(e){var n=e.match(l);return n?n.reduce(function(e,n,r){var c=n.indexOf("=");if(-1!==c){var i=function(e){return-1!==e.indexOf("-")&&null===e.match(E)&&(e=e.replace(j,function(e,n){return n.toUpperCase()})),e}(n.slice(0,c)).trim(),l=function(e){return e?(a.test(e.charAt(0))&&(e=e.substr(1)),a.test(e.charAt(e.length-1))&&(e=e.substr(0,e.length-1)),e):""}(n.slice(c+1).trim()),u=o[i]||i,s=e[u]=function(e,n){return"style"===e?n.split(/;\s?/).reduce(function(e,n){var t=n.slice(0,n.indexOf(":"));return e[t.replace(/(-[a-z])/g,function(e){return e[1].toUpperCase()})]=n.slice(t.length+1).trim(),e},{}):"href"===e?Ie(n):(n.match($)&&(n=n.slice(1,n.length-1)),"true"===n||"false"!==n&&n)}(i,l);"string"==typeof s&&(w.test(s)||T.test(s))&&(e[u]=t.default.cloneElement(V(s.trim()),{key:r}))}else"style"!==n&&(e[o[n]||n]=!0);return e},{}):void 0}var K=[],oe={},ce={blockQuote:{match:He(f),order:Ee.HIGH,parse:function(e,n,t){return{content:n(e[0].replace(p,""),t)}},react:function(e,n,t){return q("blockquote",{key:t.key},n(e.content,t))}},breakLine:{match:Ae(d),order:Ee.HIGH,parse:$e,react:function(e,n,t){return q("br",{key:t.key})}},breakThematic:{match:He(m),order:Ee.HIGH,parse:$e,react:function(e,n,t){return q("hr",{key:t.key})}},codeBlock:{match:He(h),order:Ee.MAX,parse:function(e){return{content:e[0].replace(/^ {4}/gm,"").replace(/\n+$/,""),lang:void 0}},react:function(e,n,t){return q("pre",{key:t.key},q("code",{className:e.lang?"lang-"+e.lang:""},e.content))}},codeFenced:{match:He(g),order:Ee.MAX,parse:function(e){return{content:e[3],lang:e[2]||void 0,type:"codeBlock"}}},codeInline:{match:be(y),order:Ee.LOW,parse:function(e){return{content:e[2]}},react:function(e,n,t){return q("code",{key:t.key},e.content)}},footnote:{match:He(x),order:Ee.MAX,parse:function(e){return K.push({footnote:e[2],identifier:e[1]}),{}},react:Ce},footnoteReference:{match:xe(b),order:Ee.HIGH,parse:function(e){return{content:e[1],target:"#"+n.slugify(e[1])}},react:function(e,n,t){return q("a",{key:t.key,href:Ie(e.target)},q("sup",{key:t.key},e.content))}},gfmTask:{match:xe(A),order:Ee.HIGH,parse:function(e){return{completed:"x"===e[1].toLowerCase()}},react:function(e,n,t){return q("input",{checked:e.completed,key:t.key,readOnly:!0,type:"checkbox"})}},heading:{match:He(I),order:Ee.HIGH,parse:function(e,t,r){return{content:we(t,e[2],r),id:n.slugify(e[2]),level:e[1].length}},react:function(e,n,t){return e.tag="h"+e.level,q(e.tag,{id:e.id,key:t.key},n(e.content,t))}},headingSetext:{match:He(S),order:Ee.MAX,parse:function(e,n,t){return{content:we(n,e[1],t),level:"="===e[2]?1:2,type:"heading"}}},htmlComment:{match:Ae(O),order:Ee.HIGH,parse:function(){return{}},react:Ce},image:{match:be(de),order:Ee.HIGH,parse:function(e){return{alt:e[1],target:Se(e[2]),title:e[3]}},react:function(e,n,t){return q("img",{key:t.key,alt:e.alt||void 0,title:e.title||void 0,src:Ie(e.target)})}},link:{match:xe(pe),order:Ee.LOW,parse:function(e,n,t){return{content:Me(n,e[1],t),target:Se(e[2]),title:e[3]}},react:function(e,n,t){return q("a",{key:t.key,href:Ie(e.target),title:e.title},n(e.content,t))}},linkAngleBraceStyleDetector:{match:xe(L),order:Ee.MAX,parse:function(e){return{content:[{content:e[1],type:"text"}],target:e[1],type:"link"}}},linkBareUrlDetector:{match:function(e,n){return n.inAnchor?null:xe(C)(e,n)},order:Ee.MAX,parse:function(e){return{content:[{content:e[1],type:"text"}],target:e[1],title:void 0,type:"link"}}},linkMailtoDetector:{match:xe(G),order:Ee.MAX,parse:function(e){var n=e[1],t=e[1];return u.test(t)||(t="mailto:"+t),{content:[{content:n.replace("mailto:",""),type:"text"}],target:t,type:"link"}}},list:{match:function(e,n,t){var r=X.exec(t);return!r||!n._list&&n.inline?null:ue.exec(e=r[1]+e)},order:Ee.HIGH,parse:function(e,n,t){var r=e[2],a=r.length>1,o=a?+r:void 0,c=e[0].replace(s,"\n").match(le),i=!1;return{items:c.map(function(e,r){var a=ie.exec(e)[0].length,o=new RegExp("^ {1,"+a+"}","gm"),l=e.replace(o,"").replace(ie,""),u=r===c.length-1,s=-1!==l.indexOf("\n\n")||u&&i;i=s;var f,p=t.inline,d=t._list;t._list=!0,s?(t.inline=!1,f=l.replace(z,"\n\n")):(t.inline=!0,f=l.replace(z,""));var m=n(f,t);return t.inline=p,t._list=d,m}),ordered:a,start:o}},react:function(e,n,t){return q(e.ordered?"ol":"ul",{key:t.key,start:e.start},e.items.map(function(e,r){return q("li",{key:r},n(e,t))}))}},newlineCoalescer:{match:He(k),order:Ee.LOW,parse:$e,react:function(){return"\n"}},paragraph:{match:He(W),order:Ee.LOW,parse:Te,react:function(e,n,t){return q("p",{key:t.key},n(e.content,t))}},ref:{match:xe(_),order:Ee.MAX,parse:function(e){return oe[e[1]]={target:e[2],title:e[4]},{}},react:Ce},refImage:{match:be(B),order:Ee.MAX,parse:function(e){return{alt:e[1]||void 0,ref:e[2]}},react:function(e,n,t){return q("img",{key:t.key,alt:e.alt,src:Ie(oe[e.ref].target),title:oe[e.ref].title})}},refLink:{match:xe(N),order:Ee.MAX,parse:function(e,n,t){return{content:n(e[1],t),fallbackContent:n(e[0].replace(U,"\\$1"),t),ref:e[2]}},react:function(e,n,t){return oe[e.ref]?q("a",{key:t.key,href:Ie(oe[e.ref].target),title:oe[e.ref].title},n(e.content,t)):q("span",{key:t.key},n(e.fallbackContent,t))}},table:{match:He(R),order:Ee.HIGH,parse:ke,react:function(e,n,t){return q("table",{key:t.key},q("thead",null,q("tr",null,e.header.map(function(r,a){return q("th",{key:a,style:ve(e,a)},n(r,t))}))),q("tbody",null,e.cells.map(function(r,a){return q("tr",{key:a},r.map(function(r,a){return q("td",{key:a,style:ve(e,a)},n(r,t))}))})))}},tableSeparator:{match:function(e,n){return n.inTable?Z.exec(e):null},order:Ee.HIGH,parse:function(){return{type:"tableSeparator"}},react:function(){return" | "}},text:{match:Ae(te),order:Ee.MIN,parse:function(e){return{content:e[0].replace(M,function(e,t){return n.namedCodesToUnicode[t]?n.namedCodesToUnicode[t]:e})}},react:function(e){return e.content}},textBolded:{match:be(Q),order:Ee.MED,parse:function(e,n,t){return{content:n(e[2],t)}},react:function(e,n,t){return q("strong",{key:t.key},n(e.content,t))}},textEmphasized:{match:be(Y),order:Ee.LOW,parse:function(e,n,t){return{content:n(e[2],t)}},react:function(e,n,t){return q("em",{key:t.key},n(e.content,t))}},textEscaped:{match:be(ne),order:Ee.HIGH,parse:function(e){return{content:e[1],type:"text"}}},textStrikethroughed:{match:be(ee),order:Ee.LOW,parse:Te,react:function(e,n,t){return q("del",{key:t.key},n(e.content,t))}}};!0!==n.disableParsingRawHTML&&(ce.htmlBlock={match:Ae(w),order:Ee.HIGH,parse:function(e,n,t){var r,a=e[3].match(ae),o=new RegExp("^"+a[1],"gm"),c=e[3].replace(o,""),l=(r=c,me.some(function(e){return e.test(r)})?Oe:we),u=e[1].toLowerCase(),s=-1!==i.indexOf(u);t.inAnchor=t.inAnchor||"a"===u;var f=s?e[3]:l(n,c,t);return t.inAnchor=!1,{attrs:J(e[2]),content:f,noInnerParse:s,tag:s?u:e[1]}},react:function(e,n,t){return q(e.tag,Object.assign({key:t.key},e.attrs),e.noInnerParse?e.content:n(e.content,t))}},ce.htmlSelfClosing={match:Ae(T),order:Ee.HIGH,parse:function(e){return{attrs:J(e[2]||""),tag:e[1]}},react:function(e,n,t){return q(e.tag,Object.assign({},e.attrs,{key:t.key}))}});var se,fe=function(e){var n=Object.keys(e);function t(r,a){for(var o=[],c="";r;)for(var i=0;i<n.length;){var l=n[i],u=e[l],s=u.match(r,a,c);if(s){var f=s[0];r=r.substring(f.length);var p=u.parse(s,t,a);null==p.type&&(p.type=l),o.push(p),c=f;break}i++}return o}return n.sort(function(n,t){var r=e[n].order,a=e[t].order;return r!==a?r-a:n<t?-1:1}),function(e,n){return t(function(e){return e.replace(v,"\n").replace(H,"").replace(P," ")}(e),n)}}(ce),he=(se=function(e){return function(n,t,r){return e[n.type].react(n,t,r)}}(ce),function e(n,t){if(void 0===t&&(t={}),Array.isArray(n)){for(var r=t.key,a=[],o=!1,c=0;c<n.length;c++){t.key=c;var i=e(n[c],t),l="string"==typeof i;l&&o?a[a.length-1]+=i:a.push(i),o=l}return t.key=r,a}return se(n,e,t)}),ye=V(e);return K.length&&ye.props.children.push(q("footer",{key:"footer"},K.map(function(e){return q("div",{id:n.slugify(e.identifier),key:e.identifier},e.identifier,he(fe(e.footnote,{inline:!0})))}))),ye}!function(e){e[e.MAX=0]="MAX",e[e.HIGH=1]="HIGH",e[e.MED=2]="MED",e[e.LOW=3]="LOW",e[e.MIN=4]="MIN"}(Ee||(Ee={}));var je=function(e){var n=e.children,r=e.options,a=function(e,n){if(null==e)return{};var t,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n.indexOf(t=o[r])>=0||(a[t]=e[t]);return a}(e,["children","options"]);return t.default.cloneElement(Xe(n,r),a)};return Object.assign(je,{compiler:Xe}),je});
2//# sourceMappingURL=index.umd.js.map