UNPKG

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) 13.5 kB
import t from"react";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}var n=/[\'\"]/;const r=["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"],s=/([-A-Z0-9_:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|(?:\{((?:\\.|{[^}]*?}|[^}])*)\})))?/gi,i=/mailto:/i,l=/\n{2,}$/,u=/^( *>[^\n]+(\n[^\n]+)*\n*)+\n{2,}/,_=/^ *> ?/gm,f=/^ {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,k=/^\[\^([^\]]+)](:.*)\n/,x=/^\[\^([^\]]+)]/,b=/\f/g,v=/^\s*?\[(x|\s)\]/,$=/^ *(#{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,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=/^~~((?:\[.*?\]|<.*?>(?:.*?<.*?>)?|`.*?`|.)*?)~~/,tt=/^\\([^0-9A-Za-z\s])/,et=/^[\s\S]+?(?=[^0-9A-Z\s\u00c0-\uffff&;.()'"]|\d+\.|\n\n| {2,}\n|\w+:\S|$)/i,nt=/(^\n+|\n+$|\s+$)/g,rt=/^([ \t]*)/,ot=/\\([^0-9A-Z\s])/gi,at=new RegExp("^( *)((?:[*+-]|\\d+\\.)) +"),ct=new RegExp("( *)((?:[*+-]|\\d+\\.)) +[^\\n]*(?:\\n(?!\\1(?:[*+-]|\\d+\\.) )[^\\n]*)*(\\n|$)","gm"),st=new RegExp("^( *)((?:[*+-]|\\d+\\.)) [\\s\\S]+?(?:\\n{2,}(?! )(?!\\1(?:[*+-]|\\d+\\.) (?!(?:[*+-]|\\d+\\.) ))\\n*|\\s*\\n*$)"),it="(?:\\[[^\\]]*\\]|[^\\[\\]]|\\](?=[^\\[]*\\]))*",lt=new RegExp("^\\[("+it+")\\]\\(\\s*<?((?:[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['\"]([\\s\\S]*?)['\"])?\\s*\\)"),ut=new RegExp("^!\\[("+it+")\\]\\(\\s*<?((?:[^\\s\\\\]|\\\\.)*?)>?(?:\\s+['\"]([\\s\\S]*?)['\"])?\\s*\\)"),_t=[u,m,p,$,S,w,E,R,ct,st,C,D];function ft(t){return t.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 dt(t){return Q.test(t)?"right":W.test(t)?"center":K.test(t)?"left":null}function pt(t,e,n){const r=n.t;n.t=!0;const o=e(t.trim(),n);n.t=r;let a=[[]];return o.forEach(function(t,e){"tableSeparator"===t.type?0!==e&&e!==o.length-1&&a.push([]):("text"!==t.type||null!=o[e+1]&&"tableSeparator"!==o[e+1].type||(t.content=t.content.replace(V,"")),a[a.length-1].push(t))}),a}function mt(t,e,n){n.o=!0;const r=pt(t[1],e,n),o=t[2].replace(U,"").split("|").map(dt),a=function(t,e,n){return t.trim().split("\n").map(function(t){return pt(t,e,n)})}(t[3],e,n);return n.o=!1,{align:o,cells:a,header:r,type:"table"}}function gt(t,e){return null==t.align[e]?{}:{textAlign:t.align[e]}}function yt(t){return function(e,n){return n.o?t.exec(e):null}}function ht(t){return function(e,n){return n.o||n.i?t.exec(e):null}}function kt(t){return function(e,n){return n.o||n.i?null:t.exec(e)}}function xt(t){return function(e){return t.exec(e)}}function bt(t){try{if(decodeURIComponent(t).replace(/[^A-Za-z0-9/:]/g,"").match(/^\s*(javascript|vbscript|data):/i))return null}catch(t){return null}return t}function vt(t){return t.replace(ot,"$1")}function $t(t,e,n){const r=n.o||!1,o=n.i||!1;n.o=!0,n.i=!0;const a=t(e,n);return n.o=r,n.i=o,a}function St(t,e,n){const r=n.o||!1,o=n.i||!1;n.o=!1,n.i=!0;const a=t(e,n);return n.o=r,n.i=o,a}function wt(t,e,n){return n.o=!1,t(e+"\n\n",n)}const zt=(t,e,n)=>({content:$t(e,t[1],n)});function Et(){return{}}function At(){return null}function Rt(...t){return t.filter(Boolean).join(" ")}function It(t,e,n){let r=t;const o=e.split(".");for(;o.length&&(r=r[o[0]],void 0!==r);)o.shift();return r||n}var Mt;function Ot(r,U={}){U.overrides=U.overrides||{},U.slugify=U.slugify||ft,U.namedCodesToUnicode=U.namedCodesToUnicode?e({},a,U.namedCodesToUnicode):a;const V=U.createElement||t.createElement;function W(t,n,...r){const o=It(U.overrides,`${t}.props`,{});return V(function(t,e){const n=It(e,t);return n?"function"==typeof n||"object"==typeof n&&"render"in n?n:It(e,`${t}.component`,t):t}(t,U.overrides),e({},n,o,{className:Rt(null==n?void 0:n.className,o.className)||void 0}),...r)}function K(e){let n=!1;U.forceInline?n=!0:U.forceBlock||(n=!1===G.test(e));const r=Ot(pt(n?e:`${e.replace(nt,"")}\n\n`,{o:n}));if(null===U.wrapper)return r;const o=U.wrapper||(n?"span":"div");let a;if(r.length>1||U.forceWrapper)a=r;else{if(1===r.length)return a=r[0],"string"==typeof a?W("span",{key:"outer"},a):a;a=null}return t.createElement(o,{key:"outer"},a)}function Q(e){const r=e.match(s);return r?r.reduce(function(e,r,a){const c=r.indexOf("=");if(-1!==c){const s=function(t){return-1!==t.indexOf("-")&&null===t.match(A)&&(t=t.replace(j,function(t,e){return e.toUpperCase()})),t}(r.slice(0,c)).trim(),i=function(t){return t?(n.test(t.charAt(0))&&(t=t.substr(1)),n.test(t.charAt(t.length-1))&&(t=t.substr(0,t.length-1)),t):""}(r.slice(c+1).trim()),l=o[s]||s,u=e[l]=function(t,e){return"style"===t?e.split(/;\s?/).reduce(function(t,e){const n=e.slice(0,e.indexOf(":"));return t[n.replace(/(-[a-z])/g,t=>t[1].toUpperCase())]=e.slice(n.length+1).trim(),t},{}):"href"===t?bt(e):(e.match(I)&&(e=e.slice(1,e.length-1)),"true"===e||"false"!==e&&e)}(s,i);"string"==typeof u&&(w.test(u)||R.test(u))&&(e[l]=t.cloneElement(K(u.trim()),{key:a}))}else"style"!==r&&(e[o[r]||r]=!0);return e},{}):void 0}const ot=[],it={},dt={blockQuote:{l:kt(u),u:Mt.HIGH,_:(t,e,n)=>({content:e(t[0].replace(_,""),n)}),p:(t,e,n)=>W("blockquote",{key:n.m},e(t.content,n))},breakLine:{l:xt(f),u:Mt.HIGH,_:Et,p:(t,e,n)=>W("br",{key:n.m})},breakThematic:{l:kt(d),u:Mt.HIGH,_:Et,p:(t,e,n)=>W("hr",{key:n.m})},codeBlock:{l:kt(m),u:Mt.MAX,_:t=>({content:t[0].replace(/^ {4}/gm,"").replace(/\n+$/,""),lang:void 0}),p:(t,e,n)=>W("pre",{key:n.m},W("code",{className:t.lang?`lang-${t.lang}`:""},t.content))},codeFenced:{l:kt(p),u:Mt.MAX,_:t=>({content:t[3],lang:t[2]||void 0,type:"codeBlock"})},codeInline:{l:ht(g),u:Mt.LOW,_:t=>({content:t[2]}),p:(t,e,n)=>W("code",{key:n.m},t.content)},footnote:{l:kt(k),u:Mt.MAX,_:t=>(ot.push({footnote:t[2],identifier:t[1]}),{}),p:At},footnoteReference:{l:yt(x),u:Mt.HIGH,_:t=>({content:t[1],target:`#${U.slugify(t[1])}`}),p:(t,e,n)=>W("a",{key:n.m,href:bt(t.target)},W("sup",{key:n.m},t.content))},gfmTask:{l:yt(v),u:Mt.HIGH,_:t=>({completed:"x"===t[1].toLowerCase()}),p:(t,e,n)=>W("input",{checked:t.completed,key:n.m,readOnly:!0,type:"checkbox"})},heading:{l:kt($),u:Mt.HIGH,_:(t,e,n)=>({content:$t(e,t[2],n),id:U.slugify(t[2]),level:t[1].length}),p:(t,e,n)=>(t.tag=`h${t.level}`,W(t.tag,{id:t.id,key:n.m},e(t.content,n)))},headingSetext:{l:kt(S),u:Mt.MAX,_:(t,e,n)=>({content:$t(e,t[1],n),level:"="===t[2]?1:2,type:"heading"})},htmlComment:{l:xt(E),u:Mt.HIGH,_:()=>({}),p:At},image:{l:ht(ut),u:Mt.HIGH,_:t=>({alt:t[1],target:vt(t[2]),title:t[3]}),p:(t,e,n)=>W("img",{key:n.m,alt:t.alt||void 0,title:t.title||void 0,src:bt(t.target)})},link:{l:yt(lt),u:Mt.LOW,_:(t,e,n)=>({content:St(e,t[1],n),target:vt(t[2]),title:t[3]}),p:(t,e,n)=>W("a",{key:n.m,href:bt(t.target),title:t.title},e(t.content,n))},linkAngleBraceStyleDetector:{l:yt(B),u:Mt.MAX,_:t=>({content:[{content:t[1],type:"text"}],target:t[1],type:"link"})},linkBareUrlDetector:{l:(t,e)=>e.g?null:yt(M)(t,e),u:Mt.MAX,_:t=>({content:[{content:t[1],type:"text"}],target:t[1],title:void 0,type:"link"})},linkMailtoDetector:{l:yt(O),u:Mt.MAX,_(t){let e=t[1],n=t[1];return i.test(n)||(n="mailto:"+n),{content:[{content:e.replace("mailto:",""),type:"text"}],target:n,type:"link"}}},list:{l(t,e,n){const r=T.exec(n);return!r||!e.h&&e.o?null:st.exec(t=r[1]+t)},u:Mt.HIGH,_(t,e,n){const r=t[2],o=r.length>1,a=o?+r:void 0,c=t[0].replace(l,"\n").match(ct);let s=!1;return{items:c.map(function(t,r){const o=at.exec(t)[0].length,a=new RegExp("^ {1,"+o+"}","gm"),i=t.replace(a,"").replace(at,""),l=r===c.length-1,u=-1!==i.indexOf("\n\n")||l&&s;s=u;const _=n.o,f=n.h;let d;n.h=!0,u?(n.o=!1,d=i.replace(L,"\n\n")):(n.o=!0,d=i.replace(L,""));const p=e(d,n);return n.o=_,n.h=f,p}),ordered:o,start:a}},p:(t,e,n)=>W(t.ordered?"ol":"ul",{key:n.m,start:t.start},t.items.map(function(t,r){return W("li",{key:r},e(t,n))}))},newlineCoalescer:{l:kt(y),u:Mt.LOW,_:Et,p:()=>"\n"},paragraph:{l:kt(D),u:Mt.LOW,_:zt,p:(t,e,n)=>W("p",{key:n.m},e(t.content,n))},ref:{l:yt(N),u:Mt.MAX,_:t=>(it[t[1]]={target:t[2],title:t[4]},{}),p:At},refImage:{l:ht(Z),u:Mt.MAX,_:t=>({alt:t[1]||void 0,ref:t[2]}),p:(t,e,n)=>W("img",{key:n.m,alt:t.alt,src:bt(it[t.ref].target),title:it[t.ref].title})},refLink:{l:yt(F),u:Mt.MAX,_:(t,e,n)=>({content:e(t[1],n),fallbackContent:e(t[0].replace(P,"\\$1"),n),ref:t[2]}),p:(t,e,n)=>it[t.ref]?W("a",{key:n.m,href:bt(it[t.ref].target),title:it[t.ref].title},e(t.content,n)):W("span",{key:n.m},e(t.fallbackContent,n))},table:{l:kt(C),u:Mt.HIGH,_:mt,p:(t,e,n)=>W("table",{key:n.m},W("thead",null,W("tr",null,t.header.map(function(r,o){return W("th",{key:o,style:gt(t,o)},e(r,n))}))),W("tbody",null,t.cells.map(function(r,o){return W("tr",{key:o},r.map(function(r,o){return W("td",{key:o,style:gt(t,o)},e(r,n))}))})))},tableSeparator:{l:function(t,e){return e.t?q.exec(t):null},u:Mt.HIGH,_:function(){return{type:"tableSeparator"}},p:()=>" | "},text:{l:xt(et),u:Mt.MIN,_:t=>({content:t[0].replace(z,(t,e)=>U.namedCodesToUnicode[e]?U.namedCodesToUnicode[e]:t)}),p:t=>t.content},textBolded:{l:ht(X),u:Mt.MED,_:(t,e,n)=>({content:e(t[2],n)}),p:(t,e,n)=>W("strong",{key:n.m},e(t.content,n))},textEmphasized:{l:ht(J),u:Mt.LOW,_:(t,e,n)=>({content:e(t[2],n)}),p:(t,e,n)=>W("em",{key:n.m},e(t.content,n))},textEscaped:{l:ht(tt),u:Mt.HIGH,_:t=>({content:t[1],type:"text"})},textStrikethroughed:{l:ht(Y),u:Mt.LOW,_:zt,p:(t,e,n)=>W("del",{key:n.m},e(t.content,n))}};!0!==U.disableParsingRawHTML&&(dt.htmlBlock={l:xt(w),u:Mt.HIGH,_(t,e,n){const[,r]=t[3].match(rt),o=new RegExp(`^${r}`,"gm"),a=t[3].replace(o,""),s=(i=a,_t.some(t=>t.test(i))?wt:$t);var i;const l=t[1].toLowerCase(),u=-1!==c.indexOf(l);n.g=n.g||"a"===l;const _=u?t[3]:s(e,a,n);return n.g=!1,{attrs:Q(t[2]),content:_,noInnerParse:u,tag:u?l:t[1]}},p:(t,n,r)=>W(t.tag,e({key:r.m},t.attrs),t.noInnerParse?t.content:n(t.content,r))},dt.htmlSelfClosing={l:xt(R),u:Mt.HIGH,_:t=>({attrs:Q(t[2]||""),tag:t[1]}),p:(t,n,r)=>W(t.tag,e({},t.attrs,{key:r.m}))});const pt=function(t){let e=Object.keys(t);function n(r,o){let a=[],c="";for(;r;){let s=0;for(;s<e.length;){const i=e[s],l=t[i],u=l.l(r,o,c);if(u){const t=u[0];r=r.substring(t.length);const e=l._(u,n,o);null==e.type&&(e.type=i),a.push(e),c=t;break}s++}}return a}return e.sort(function(e,n){let r=t[e].u,o=t[n].u;return r!==o?r-o:e<n?-1:1}),function(t,e){return n(function(t){return t.replace(h,"\n").replace(b,"").replace(H," ")}(t),e)}}(dt),Ot=(Bt=function(t){return function(e,n,r){return t[e.type].p(e,n,r)}}(dt),function t(e,n={}){if(Array.isArray(e)){const r=n.m,o=[];let a=!1;for(let r=0;r<e.length;r++){n.m=r;const c=t(e[r],n),s="string"==typeof c;s&&a?o[o.length-1]+=c:o.push(c),a=s}return n.m=r,o}return Bt(e,t,n)});var Bt;const Lt=K(r);return ot.length&&Lt.props.children.push(W("footer",{key:"footer"},ot.map(function(t){return W("div",{id:U.slugify(t.identifier),key:t.identifier},t.identifier,Ot(pt(t.footnote,{o:!0})))}))),Lt}!function(t){t[t.MAX=0]="MAX",t[t.HIGH=1]="HIGH",t[t.MED=2]="MED",t[t.LOW=3]="LOW",t[t.MIN=4]="MIN"}(Mt||(Mt={}));export default e=>{let{children:n,options:o}=e,a=function(t,e){if(null==t)return{};var n,r,o={},a=Object.keys(t);for(r=0;r<a.length;r++)e.indexOf(n=a[r])>=0||(o[n]=t[n]);return o}(e,r);return t.cloneElement(Ot(n,o),a)};export{Ot as compiler}; //# sourceMappingURL=index.modern.js.map