UNPKG

@bpmn-io/snarkdown

Version:
3 lines (2 loc) 2.03 kB
const e={"":["<em>","</em>"],_:["<strong>","</strong>"],"*":["<strong>","</strong>"],"~":["<s>","</s>"],"\n":["<br />"]," ":["<br />"],"-":["<hr />"]};function n(e){return e.replace(RegExp("^"+(e.match(/^(\t| )+/)||"")[0],"gm"),"")}function t(e){return(e+"").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}export default function r(a,o){let c,l,s,g,p,u=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)|<([^>]+)>|\\([_*~])/gm,$=[],h="",m=o||{},i=0;function d(n){let t=e[n[1]||""],r=$[$.length-1]==n;return t?t[1]?(r?$.pop():$.push(n),t[0|r]):t[0]:n}function f(){let e="";for(;$.length;)e+=d($[$.length-1]);return e}for(a=a.replace(/^\[(.+?)\]:\s*(.+)$/gm,(e,n,t)=>(m[n.toLowerCase()]=t,"")).replace(/^\n+|\n+$/g,"");s=u.exec(a);)l=a.substring(i,s.index),i=u.lastIndex,c=s[0],l.match(/[^\\](\\\\)*\\$/)||((p=s[3]||s[4])?c='<pre class="code '+(s[4]?"poetry":s[2].toLowerCase())+'"><code'+(s[2]?` class="language-${s[2].toLowerCase()}"`:"")+">"+n(t(p).replace(/^\n+|\n+$/g,""))+"</code></pre>":(p=s[6])?(p.match(/\./)&&(s[5]=s[5].replace(/^\d+/gm,"")),g=r(n(s[5].replace(/^\s*[>*+.-]/gm,""))),">"==p?p="blockquote":(p=p.match(/\./)?"ol":"ul",g=g.replace(/^(.*)(\n|$)/gm,"<li>$1</li>")),c="<"+p+">"+g+"</"+p+">"):s[8]?c=`<img src="${t(s[8])}" alt="${t(s[7])}">`:s[10]?(h=h.replace("<a>",`<a href="${t(s[11]||m[l.toLowerCase()])}">`),c=f()+"</a>"):s[18]&&/^(https?|mailto):/.test(s[18])?c=`<a href="${t(s[18])}">${t(s[18])}</a>`:s[9]?c="<a>":s[12]||s[14]?(p="h"+(s[14]?s[14].length:s[13]>"="?1:2),c="<"+p+">"+r(s[12]||s[15],m)+"</"+p+">"):s[16]?c="<code>"+t(s[16])+"</code>":s[17]||s[1]?c=d(s[17]||"--"):s[19]&&(c=s[19])),h+=l,h+=c;return(h+a.substring(i)+f()).replace(/^\n+|\n+$/g,"")} //# sourceMappingURL=snarkdown.modern.js.map