markuno_lib 1.2.82 → 1.2.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/marked.js CHANGED
@@ -1,21 +1 @@
1
- function escape(html,encode){return html.replace(encode?/&/g:/&(?!#?\w+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function replace(regex,opt){return regex=regex.source,opt=opt||"",function self(name,val){return name?(val=(val=val.source||val).replace(/(^|[^[])\^/g,"$1"),regex=regex.replace(name,val),self):new RegExp(regex,opt)}}function noop(){}function merge(obj){let target,key,i=1;for(;i<arguments.length;i++)for(key in target=arguments[i],target)Object.prototype.hasOwnProperty.call(target,key)&&(obj[key]=target[key]);return obj}noop.exec=noop;const block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/,bullet:/(?:[*+-])/,item:/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/};block.item=replace(block.item,"gm")(/bull/g,block.bullet)(),block.list=replace(block.list)(/bull/g,block.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+block.def.source+")")(),block.blockquote=replace(block.blockquote)("def",block.def)(),block._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",block.html=replace(block.html)("comment",/<!--[\s\S]*?-->/)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,block._tag)(),block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)(),
2
- /**
3
- * Normal Block Grammar
4
- */
5
- block.normal=merge({},block),
6
- /**
7
- * GFM Block Grammar
8
- */
9
- block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,})[ .]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/,formula:/^ *(\${2,})([\s\S]*?)\s*\1 *(?:\n+|$)/}),block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1","\\2")+"|"+block.list.source.replace("\\1","\\3")+"|")(),
10
- /**
11
- * GFM + Tables Block Grammar
12
- */
13
- block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :0123456789]*)\n((?: *\|.*(?:\n|$))*)\n*/});const inline={escape:/^\\([\\`*{}[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,ico:/^::([\s\S]+?)::/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,colorbase:noop,coloralt:noop,text:/^[\s\S]+?(?=[\\<![_*:`]| {2,}\n|$)/,_inside:/(?:\[[^\]]*\]|[^[\]]|\](?=[^[]*\]))*/,_href:/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/};inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)(),inline.reflink=replace(inline.reflink)("inside",inline._inside)(),inline.normal=merge({},inline),inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),
14
- /**
15
- * GFM Inline Grammar
16
- */
17
- inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~~(?=\S)([\s\S]*?\S)~~~/,colorbase:/^~(?=\S)([\s\S]*?\S)~/,coloralt:/^~~(?=\S)([\s\S]*?\S)~~/,formula:/^\$(?=\S)([\s\S]*?\S)\$/,text:replace(inline.text)("]|","~$]|")("|","|https?://|")()}),
18
- /**
19
- * GFM + Line Breaks Inline Grammar
20
- */
21
- inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});const basealias={s:"subtitle",k:"keywords",g:"gruppo",e:"editore",y:"datapub",d:"datapub",p:"priority",a:"autore",u:"base",t:"title",l:"link",i:"img","#":"title"};const aliasInfo=new class AliasInfo{constructor(){this.alias=JSON.parse(JSON.stringify(basealias)),this.check()}check(){let rr=new Set,checkr=x=>{x&&x.length>2&&!rr.has(x)&&rr.add(x)};for(let x in this.alias)this.alias[x]?(checkr(x),checkr(this.alias[x])):delete this.alias[x];this.retoalias=function retroalias(alias){let retro={};for(let x in alias)alias[x]&&(retro[alias[x]]=x);return retro}(this.alias),rr=[...rr],rr=`^\\s*\\:(${rr.join("|")}|\\w{1,2})\\:(.*)$`,this.regex=rr}add(sigla,valore){return sigla&&(this.alias[sigla]=valore,this.check()),this}removeAll(){return this.alias={},this.check(),this}setmappa(mappa){this.alias={};for(let x in mappa)this.alias[x]=mappa[x];this.alias["#"]||(this.alias["#"]="title"),this.check()}parse(data,info,mappa){mappa&&this.setmappa();let xx=data,res={};info&&(res=Object.assign(res,info),res.info=!0);let rr=/^\s*#\s+(.*?)\s*$/im.exec(xx);rr&&(res[this.alias["#"]]=rr[1].toLowerCase());for(let i=0;i<20;i++){let rr=/:::(.*)([^]+?):::/im.exec(xx);if(!rr)break;{let id=rr[1];id||(id=i+""),res.comments||(res.comments=[]),res.comments.push({k:id,v:rr[2]}),xx=xx.substr(rr.index+rr[0].length)}}xx=data;let regex=new RegExp(this.regex,"im");for(let i=0;i<50;i++){let rr=regex.exec(xx);if(!(rr&&rr.length>=2))break;{xx=xx.substr(rr.index+rr[0].length),res.info=!0;let rr2=(rr[2]||"").trim(),oname=this.alias[rr[1].toLowerCase()];oname||(oname=rr[1].toLowerCase()),"l"==oname||"link"==oname?(res[oname]||(res[oname]=[]),res[oname].push(rr2)):res[oname]=rr2}}return res}};var tokenize=(src,easylen,noheader=!1)=>{function _parsetable(tokens,src){let v2,tb={type:"table",headers:[],align:[],cells:[],cols:0},vv=src.split("\n"),fl=!1;function checkcols(cols){if(tb.cols<cols){for(let i=tb.cols;i<cols;i++){tb.align[i]="left",tb.headers[i]=[];for(let r of tb.cells)r[i]=[]}tb.cols=cols}}for(let v1 of vv)if(v1=v1.trim(),v1.length)if(v1.length>2&&v1.startsWith("|")&&v1.endsWith("|")&&(v1=v1.slice(1,-1)),v2=v1.split("|"),checkcols(v2.length),0==fl&&/^[- :]+\|[- :|]*$/im.test(v1)){for(let i=0;i<v2.length;i++){let v=v2[i],x1=v.slice(0,1),x2=v.slice(-1);tb.align[i]=":"==x1&&":"==x2?"center":":"==x2?"right":"left"}fl=!0}else{let r=[];for(let i=0;i<v2.length;i++){let v=v2[i];if(fl){let t=[];_tokenize(t,v,!1),r.push(t)}else _tokenize(tb.headers[i],v,!1)}fl&&tb.cells.push(r)}tokens.push(tb)}function _pushtoken(tokens,src){let cc=/^([\d.]+)\s*/.exec(src),num="",title="";cc&&(num=cc[1],src=src.substring(cc.index+cc[0].length)),cc=/^([\w\s]*?):.*$/gim.exec(src),cc&&(title=cc[1],src=src.substring(cc.index+cc[1].length)),tokens.push({type:"list_item_start",num:num}),title&&(tokens.push({type:"list_title_start"}),_tokenize(tokens,title,!1),tokens.push({type:"list_title_end"})),src=src.replace(/\n +/gim,"<br>"),_tokenize(tokens,src,!1),tokens.push({type:"list_item_end"})}function _parselista(tokens,ordered,space,src){let counter=[space];for(tokens.push({type:"list_start",ordered:ordered});;){let cap=/^( *)([*\-+])[\s$]/im.exec(src);if(!cap){_pushtoken(tokens,src);break}{cap.index&&_pushtoken(tokens,src.substring(0,cap.index));let sl=cap[1].length;if(sl>counter[counter.length-1])tokens.push({type:"list_start",ordered:ordered}),counter.push(sl);else for(;;){let sp=counter[counter.length-1];if(1==counter.length||sp<=sl)break;tokens.push({type:"list_end"}),counter.pop()}src=src.substring(cap.index+cap[0].length)}}for(let c of counter)tokens.push({type:"list_end"})}const _tokenize=(tokens,src,top,bq)=>{let cap;for(src=src.replace(/^ +$/gm,"");src;){if(easylen){let ll=0;for(let t of tokens)t.text||t.html?ll=ll+t.text.length+2:ll+=3;if(ll>easylen)break}if((cap=rules.newline.exec(src))&&(src=src.substring(cap[0].length),cap[0].length>1&&tokens.push({type:"space"})),cap=rules.formula.exec(src))src=src.substring(cap[0].length),tokens.push({type:"code",lang:"math",text:cap[2]||""});else if(cap=/^(\s*`{3})(.*)([^]+?)(`{3})/gim.exec(src)){cap.index>0&&_tokenize(tokens,src.substring(0,cap.index),top);let txt=(cap[3]||"").replace(/^\n/,"").replace(/\n+$/,"");tokens.push({type:"code",lang:cap[2],text:txt}),src=src.substring(cap.index+cap[0].length)}else if(cap=rules.heading.exec(src))src=src.substring(cap[0].length),tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});else if(top&&(cap=/^(.*?\|.*\n[-: ]+\|[-| :]*\n.*?\|[^]*?)\n\n/gim.exec(src)))cap.index>0&&_tokenize(tokens,src.substring(0,cap.index),top),_parsetable(tokens,cap[1]),src=src.substring(cap.index+cap[0].length);else if(top&&(cap=/^\|.*\|\s*(?:\n\|.*\|)+/gim.exec(src)))cap.index>0&&_tokenize(tokens,src.substring(0,cap.index),top),_parsetable(tokens,cap[0]),src=src.substring(cap.index+cap[0].length);else if(cap=rules.lheading.exec(src))src=src.substring(cap[0].length),tokens.push({type:"heading",depth:"="===cap[2]?1:2,text:cap[1]});else if(cap=rules.hr.exec(src))src=src.substring(cap[0].length),tokens.push({type:"hr"});else if(cap=rules.blockquote.exec(src))src=src.substring(cap[0].length),tokens.push({type:"blockquote_start"}),_tokenize(tokens,cap[0].replace(/^ *> ?/gm,""),top,!0),tokens.push({type:"blockquote_end"});else if(cap=/^[\s-:]*?\|[\s-:|]*/im.exec(src),cap||!(cap=/^( *)([*\-+])[\s$]/im.exec(src))){if(cap=rules.html.exec(src))src=src.substring(cap[0].length),tokens.push({type:"html",pre:"pre"===cap[1]||"script"===cap[1]||"style"===cap[1],text:cap[0]});else if(!bq&&top&&(cap=rules.def.exec(src)))src=src.substring(cap[0].length),tokens.push({type:"code",text:`??${cap[0]}??${rules.def}??`});else if(top&&(cap=rules.paragraph.exec(src)))src=src.substring(cap[0].length),tokens.push({type:"paragraph",text:"\n"===cap[1].charAt(cap[1].length-1)?cap[1].slice(0,-1):cap[1]});else if(cap=rules.text.exec(src))src=src.substring(cap[0].length),tokens.push({type:"text",text:cap[0]});else if(src)throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}else{cap.index>0&&_tokenize(tokens,src.substring(0,cap.index)),src=src.substring(cap.index+cap[0].length);let res=/([^]*?)(\n\n|\n\s*[#>])/im.exec(src+"\n\n");if(res){_parselista(tokens,"*"==cap[2],cap[1].length,res[1]),src=src.substring(res[1].length)}else tokens.push({type:"text??",text:cap[0]})}}return tokens};let rules=block.tables;return src=function removeInfo(src,title=!1){let tm=src.replace(/:::([^]+?):::/gim,"").replace(new RegExp(aliasInfo.regex,"gim"),"").replace(/^\s*#\s+/im,"# ").replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");if(title){const rg=/(^\s*#\s+(.*)?\s*)$/im;let rr=rg.exec(tm);rr&&0==rr.index&&(tm=tm.replace(rg,""))}return tm}(src,noheader),_tokenize([],src,!0)};const controls={string:/(".*?[^\\]"|'.*?[^\\]'|`[^]*?[^\\]`|""|''|``)/m,puntuaction:/(-[-=]?|,|;|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3})/g,parentesis:/(\(|\)|\[|\]|\{|\})/g,ingraffe:/([^$])(\{)(.*?)(\})/g,regex:/\/.*?[^\\]\/[gimu]*/m,numbers:/\b((?:(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+)n?|\d+n|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?)/gi,js:{comments:/(?:(?:^|[^\\:])(\/\/.*)|(?:^|[^\\])(\/\*[\s\S]*?(?:\*\/)))/m,keyword:/(\b)(import|require|endif|include|define|float|int|real|char|bool|as|true|false|async|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)(\b)/g,keyword2:/(\.\w+|\w+:)/g},json:{string:/(".*?[^\\]")/m,string1:/(".*?[^\\]"\s*:)/m},html:{script:/(<script[\s\S]*?>)([^]*?)(<\/script>)/im,tag:/<(!DOCTYPE|\/?\w+)([^]*?)(\/?>)/im,intag:/(\b)([\w-]+)(=)/g,comments:/<!--[^]*?-->/im},bash:{comments:/# .*/,keyword1:/(^ *|; *)(\w+)(\b)/g,keyword:/(\b)(sudo *[\w-]+)(\b)/g},mu:{comments:/(?:(?:^|[^\\:])(\/\/.*)|(?:^|[^\\])(\/\*[\s\S]*?(?:\*\/)))/m,keyword1:/(#)(\w+)(\b)/g,keyword2:/(\$\(?(\w+|\.|:|\)))/g},sql:{keyword:".",keyword2:/(\b)(FROM|USING|FTS5|NVARCHAR|INTEGER|REAL|BLOB|DELETE|UPDATE|BEGIN|END|ADD|CREATE|CONSTRAINT|ALTER|COLUMN|TABLE|ALL|ASC|BETWEEN|CASE|CHECK|COLUMN|INDEX|VIEW|PROCEDURE|DESC|DISTINTC|DROP|OUTER|INNER|LEFT|JOIN|INSERT|INTO|[NOT ]*NULL|LIMIT|SELECT|ORDER BY|UNION|WHERE)(\b)/gi,keyword1:/(\b)(COLLATE|NOCASE|DEFAULT|IF [NOT ]*EXISTS|PRIMARY KEY|VALUES|AS)(\b)/gi,comments:/(?:(?:^|[^\\:])(\/\/.*)|(?:^|[^\\])(\/\*[\s\S]*?(?:\*\/))|(--\s.*))/m}};function elang(str,lang,punct,codes){let data;return codes&&(data=codes.length,codes.push(str)),`<pre class="elang relative">${xelang(str,lang,punct)}<div class="absolute top-1 right-1"><button class="mu-internal-copy" data-copy="${data}">📋</button></div></pre>`}const escapeTag=str=>str.replace(/[<>]/g,(tag=>({"<":"&lt;",">":"&gt;"}[tag]))),escapeHTML=str=>str.replace(/[&<>'"]/g,(tag=>({"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"}[tag]))),unescapeHTML=str=>str.replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&gt;/g,">").replace(/&lt;/g,"<");function xelang(str,lang,punct){let gspan=(str,cls)=>(cls&&(cls=cls.replace(/(\b)(\w+)(\b)/g,"$1_$2$3")),`☉☊${cls||""}☊☉${(str=escapeTag(str))||""}☉☋`),regex=code=>{if(controls[lang]){let x=controls[lang][code];if("."==x)return;if(x)return x}let x=controls[code];return"."==x?void 0:x},out=[],r=0,ids=[];if(lang){controls[lang]||(lang="js");let rg=regex("script");if(rg){let st1=[];for(;;){let res=rg.exec(str);if(!res)break;res.index>0&&st1.push(str.substr(0,res.index)),st1.push(`★★K${ids.length}★★`),ids.push(xelang(res[1],lang)+xelang(res[2],"js")+xelang(res[3],lang)),str=str.substr(res.index+res[0].length)}str.length&&st1.push(str),str=st1.join("")}for(let r of[{r:"comments",s:"C"}]){let rg=regex(r.r);if(rg){let st1=[];for(;;){let res=rg.exec(str);if(!res)break;if(res.index>0&&st1.push(str.substr(0,res.index)),st1.push(`★★${r.s}${ids.length}★★`),"html"==lang){let tm=res[0].replace(/</g,"&lt;").replace(/>/g,"&gt;");ids.push(tm)}else ids.push(res[0]);str=str.substr(res.index+res[0].length)}str.length&&st1.push(str),str=st1.join("")}}for(let r of[{r:"string2",s:"A"},{r:"string1",s:"B"},{r:"string",s:"S"},{r:"tag",s:"T"},{r:"regex",s:"R"}]){let rg=regex(r.r);if(rg){let st1=[];for(;;){let res=rg.exec(str);if(!res)break;if(res.index>0&&st1.push(str.substr(0,res.index)),st1.push(`★★${r.s}${ids.length}★★`),"T"==r.s){let tm=res[2].replace(regex("intag"),((p,p1,p2,p3)=>p1+gspan(p2,"intag")+gspan(p3,"punc")));ids.push(gspan("<","punc")+res[1]+tm+gspan(res[3],"punc"))}else if("`"==res[0][0]){let tm=res[0].replace(/(\${)(.*?)(})/gm,((p,p1,p2,p3)=>gspan(p1,"punc")+gspan(p2,"word")+gspan(p3,"punc")));ids.push(tm)}else ids.push(res[0]);str=str.substr(res.index+res[0].length)}str.length&&st1.push(str),str=st1.join("")}}let vv=str.split("\n"),r=0;for(let v of vv)r++,v=v.replace(regex("keyword"),((p,p1,p2,p3)=>gspan(p1,"tag")+gspan(p2,"keys")+p3)).replace(regex("keyword1"),((p,p1,p2,p3)=>p1+gspan(p2,"keys1 keys")+p3)).replace(regex("keyword2"),(p=>gspan(p,"keys2 keys"))).replace(regex("numbers"),(p=>gspan(p,"number"))).replace(regex("ingraffe"),((p,p1,p2,p3,p4)=>p1+gspan(p2,"punc")+gspan(p3,"word")+gspan(p4,"punc"))).replace(regex("puntuaction"),(p=>gspan(p,"punc"))).replace(/★★T(\d+)★★/gu,((m,p)=>gspan(ids[Number(p)],"tag"))).replace(/★★S(\d+)★★/gu,((m,p)=>gspan(ids[Number(p)],"string"))).replace(/★★B(\d+)★★/gu,((m,p)=>gspan(ids[Number(p)],"string string1"))).replace(/★★A(\d+)★★/gu,((m,p)=>gspan(ids[Number(p)],"string string2"))).replace(/★★R(\d+)★★/gu,((m,p)=>gspan(ids[Number(p)],"regex"))).replace(/★★C(\d+)★★/gu,((m,p)=>gspan(ids[Number(p)],"comment"))).replace(/★★K(\d+)★★/gu,((m,p)=>ids[Number(p)])),punct?out.push(gspan((" "+r).substr(-4),"rowid")+gspan(v)):out.push(gspan(v))}else{let vv=str.split("\n");for(let v of vv)r++,punct?out.push(`${gspan((" "+r).substr(-4),"rowid")}${gspan(v)}`):out.push(gspan(v))}let xx=out.join("\n");return xx=xx.replace(/☉☋/gmu,"</span>").replace(/☉☊([^]*?)☊☉/gmu,((p,p1)=>{if(p1){let v1=p1.split(" "),aa=[];for(let v of v1)aa.push(`elang_${lang}${v}`),aa.push(`elang${v}`);return`<span class="${aa.join(" ")}">`}return"<span>"})),xx}class Render{constructor(baseurl,easy,callback){this.baseurl=baseurl,this.easy=easy,this.callback=callback}code(code,lang,codes){if(this.easy)return"";lang||(lang="js");let punct=lang==lang.toUpperCase();return elang(code,lang=lang.toLowerCase(),punct,codes)}blockquote(quote){return this.easy?quote:`<blockquote>\n${quote}</blockquote>\n`}html(html){return html}heading(text,level,raw){return"."==text||"*"==text?"":this.easy?`${text} `:`<h${level}>${text}</h${level}>`}hr(){return this.easy?"":'<div class="my-4"><hr/></div>'}list(body,ordered){let type=ordered?"ol":"ul";return`<${type}>\n${body}</${type}>\n`}listtitle(body){return`<span class="listtitle">${body}</span>`}listitem(text,num){return num?`<li attr-num="${num||""}">${text}</li>\n`:`<li>${text}</li>\n`}paragraph(text){return this.easy?text:`<p>${text}</p>\n`}table(header,body){return this.easy?"":`<table>\n<thead>\n${header}\n</thead>\n<tbody>\n${body}\n</tbody>\n</table>\n\n`}tablerow(content){return`<tr>\n${content}</tr>\n`}tablecell(content,header,align){if(header)return`<th style="text-align:center;">${content}</th>\n`;return`<td style="${align?"text-align:"+align+";":""}">${content}</td>`}colorbase(text){return`<span class='tilde'>${text}</span>`}formula(text,full=!1){if(this.easy)return"";let aa=`<img class='inline px-2' src='https://math.croswil.com/f?${text=text.replace(/<\/?em>/g," ").replace(/\r/g,"").replace("/\n/g"," ")}' alt='${text}'/>`;return full?`<div class='flex justify-center'><div>${aa}</div></div>`:aa}coloralt(text){return`<span class='tilde2'>${text}</span>`}strong(text){return"<strong>"+text+"</strong>"}ico(text){return`<span class="font-ico">${text}</span>`}em(text){return"<em>"+text+"</em>"}codespan(text){return"<code>"+text+"</code>"}br(){return"<br>"}del(text){return`<del>${text}</del>`}link(href,title,text){if(this.easy)return"("+text+")";let out;if("/"==href.substr(0,1)&&this.baseurl&&(href=this.baseurl+href.substr(1)),href.startsWith("!"))out=`<button class="mu-internal-link" data-href="${href=href.slice(1)}">${text}</button>`;else{let target="";href.startsWith(".")?href=href.slice(1):target='target="_blank"',out=`<a ${target} href='${href}' title='${title||""}'>${text}</a>`}return out}image(href,title,text){if(this.easy)return"";let v=text.split("|"),out="",iswebm=!1,ismp4=!1,ismp3=!1;if((href=(href=href.replace("https://www.youtube.com/watch?v=","https://youtu.be/")).replace("https://youtu.be","https://www.youtube.com/embed")).endsWith(".mp3")?(href=href.slice(0,-4),ismp3=!0):href.endsWith(".mp4")?(href=href.slice(0,-4),ismp4=!0):href.endsWith(".webm")?(href=href.slice(0,-5),iswebm=!0):href.endsWith(".video")&&(href=href.slice(0,-6),iswebm=!0,ismp4=!0),ismp3)out=`\n <audio controls ${v.length>=1?' width="'+v[1]+'"':""}\n class="mx-auto my-2 ${v.length>=2?v[2]:""}" \n >\n <source src="${href}.mp3" type="audio/mpeg">\n Il tuo browser non supporta l'elemento audio.\n </audio>\n `;else if(ismp4||iswebm)out=`\n<video ${v.length>=1?' width="'+v[1]+'"':""}\nclass="border rounded-lg shadow-xl ${v.length>=2?v[2]:""}" \ncontrols controlsList="nodownload" >\n ${iswebm?'<source src="'+href+'.webm" type="video/webm" >':""}\n ${ismp4?'<source src="'+href+'.mp4" type="video/mp4" >':""}\n \n Your browser does not support the video tag.\n</video>`;else{if(href.indexOf("https://www.youtu")>=0){let hh=href.split("/embed/")[1]?.split("?")[0];return out=`\n\n<div style="width: 94%; box-shadow: 6px 6px 10px hsl(206.5, 0%, 75%); margin: 3%;">\n <div style="position: relative; padding-bottom: 56.15%; height: 0; overflow: hidden;">\n <iframe \n style="position: absolute; top: 0; left:0; width: 100%; height: 100%; border: 0;"\n loading="lazy";\n srcdoc="<style>\n * {\n padding: 0;\n margin: 0;\n overflow: hidden;\n }\n \n body, html {\n height: 100%;\n }\n \n img, svg {\n position: absolute;\n width: 100%;\n top: 0;\n bottom: 0;\n margin: auto;\n }\n \n svg {\n filter: drop-shadow(1px 1px 10px hsl(206.5, 70.7%, 8%));\n transition: all 250ms ease-in-out;\n }\n \n body:hover svg {\n filter: drop-shadow(1px 1px 10px hsl(206.5, 0%, 10%));\n transform: scale(2);\n }\n </style>\n <a href='https://www.youtube.com/embed/${hh}?autoplay=1'>\n <img src='https://img.youtube.com/vi/${hh}/hqdefault.jpg' alt='${title||"video"}'>\n <svg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='#ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-play-circle'><circle cx='12' cy='12' r='10'></circle><polygon points='10 8 16 12 10 16 10 8'></polygon></svg>\n </a>\n "\n src="https://www.youtube.com/embed/${hh}" \n title="${title||"video"}"\n frameborder="0"\n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" \n allowfullscreen>\n </iframe>\n </div>\n </div> \n \n`,out}this.callback&&"function"==typeof this.callback&&(href=this.callback({type:"img",href:href})),"/"==href.substr(0,1)&&this.baseurl&&(href=this.baseurl+href.substr(1)),out='<img src="'+href+'" alt="'+v[0]+'"',v.length>1&&(v[1].length&&(out+=' width="'+v[1]+'"'),v.length>2&&(out+=' class="'+v[2]+'"')),v[0]&&(out+=' title="'+v[0]+'"'),out+="/>"}return out}text(text){return text}}const irules=inline.gfm;let tokenparser=(res,render,maxlen=0)=>{let totl=0,checklen=body=>{if(maxlen>0&&body.length>maxlen-totl){let q=(body=body.substring(0,maxlen-totl)).lastIndexOf(" ");q>0&&(body=body.substring(0,q))}return body},next=()=>token=tokens.pop(),parseText=()=>{let body=token.text;for(;"text"===(tokens[tokens.length-1]||0).type;)body+="\n"+next().text;return output(checklen(body))},outputLink=(cap,link)=>{let href=escape(link.href),title=link.title?escape(link.title):null;return"!"!==cap[0].charAt(0)?render.link(href,title,output(cap[1])):render.image(href,title,escape(cap[1]))};const output=src=>{let link,text,href,cap,out="";for(;src;)if(cap=irules.escape.exec(src))src=src.substring(cap[0].length),out+=cap[1];else if(cap=irules.autolink.exec(src))src=src.substring(cap[0].length),"@"===cap[2]?(text=":"===cap[1].charAt(6)?cap[1].substring(7):cap[1],href=`mailto:${text}`):(text=escape(cap[1]),href=text),out+=render.link(href,null,text);else if(inLink||!(cap=irules.url.exec(src))){if(cap=irules.tag.exec(src))!inLink&&/^<a /i.test(cap[0])?inLink=!0:inLink&&/^<\/a>/i.test(cap[0])&&(inLink=!1),src=src.substring(cap[0].length),out+=cap[0];else if(cap=irules.link.exec(src))src=src.substring(cap[0].length),inLink=!0,out+=outputLink(cap,{href:cap[2],title:cap[3]}),inLink=!1;else if((cap=irules.reflink.exec(src))||(cap=irules.nolink.exec(src))){if(src=src.substring(cap[0].length),link=(cap[2]||cap[1]).replace(/\s+/g," "),link=links[link.toLowerCase()],!link||!link.href){out+=cap[0].charAt(0),src=cap[0].substring(1)+src;continue}inLink=!0,out+=outputLink(cap,link),inLink=!1}else if(cap=irules.formula.exec(src))src=src.substring(cap[0].length),out+=render.formula(output(cap[1]));else if(cap=irules.ico.exec(src))src=src.substring(cap[0].length),out+=render.ico(output(cap[2]||cap[1]));else if(cap=irules.strong.exec(src))src=src.substring(cap[0].length),out+=render.strong(output(cap[2]||cap[1]));else if(cap=irules.em.exec(src))src=src.substring(cap[0].length),out+=render.em(output(cap[2]||cap[1]));else if(cap=irules.code.exec(src))src=src.substring(cap[0].length),out+=render.codespan(escape(cap[2],!0));else if(cap=irules.br.exec(src))src=src.substring(cap[0].length),out+=render.br();else if(cap=irules.del.exec(src))src=src.substring(cap[0].length),out+=render.del(output(cap[1]));else if(cap=irules.coloralt.exec(src))src=src.substring(cap[0].length),out+=render.coloralt(output(cap[1]));else if(cap=irules.colorbase.exec(src))src=src.substring(cap[0].length),out+=render.colorbase(output(cap[1]));else if(cap=irules.text.exec(src))src=src.substring(cap[0].length),out+=render.text(cap[0]);else if(src)throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}else src=src.substring(cap[0].length),text=escape(cap[1]),href=text,out+=render.link(href,null,text);return out};let token,tok=()=>{switch(token.type){case"space":return"";case"hr":return render.hr();case"heading":return render.heading(output(checklen(token.text)),token.depth,token.text);case"code":return"math"==token.lang?render.formula(token.text,!0):render.code(token.text,token.lang,codes);case"table":{let row,cell,j,header="",body=[];cell=[];for(let i=0;i<token.headers.length;i++)cell.push(render.tablecell(tokenparser(token.headers[i],render,0).out,!0,token.align[i]));header=render.tablerow(cell.join(""));for(let i=0;i<token.cells.length;i++){for(row=token.cells[i],cell=[],j=0;j<row.length;j++)cell.push(render.tablecell(tokenparser(row[j],render,0).out,!1,token.align[j]));body.push(render.tablerow(cell.join("")))}return render.table(header,body.join(""))}case"blockquote_start":{let body="";for(;"blockquote_end"!==next().type;)body+=tok();return render.blockquote(body)}case"list_start":{let body="",ordered=token.ordered;for(;"list_end"!==next().type;)body+=tok();return render.list(body,ordered)}case"list_title_start":{let body="";for(;"list_title_end"!==next().type;)body+=tok();return render.listtitle(body)}case"list_item_start":{let body="",num=token.num;for(;"list_item_end"!==next().type;)body+="text"===token.type?parseText():tok();return render.listitem(body,num)}case"html":return render.html(token.text);case"paragraph":return render.paragraph(output(checklen(token.text)));case"text":return render.paragraph(parseText());default:console.log("missing",token.type)}},tokens=res.reverse(),inLink=!1,links={},codes=[],out=[];for(;next();){let t=tok();if(totl+=t.length,t&&out.push(t),maxlen>0&&totl>maxlen)break}return{out:out.join(""),codes:codes}};function __parselist(tt,tm){let rr;function pb(exp,cl,callback){if(rr=exp.exec(tt),rr){__parselist(tt.slice(0,rr.index),tm);let t=rr[1];return t.startsWith("\n")&&(tm.push({class:"",text:"\n"}),t=t.slice(1)),tm.push({class:cl,text:callback?callback(t):t}),__parselist(tt.slice(rr.index+rr[1].length),tm),!0}return!1}tt&&"string"==typeof tt&&(pb(/^(:{3}\s*$[^]+?:{3}\s*$)/gim,"comment")||pb(/^(\s*`{3}[^]+?`{3}\s*$)/gim,"code")||pb(/^(\s*:\w+:.*)$/gim,"comment")||(tt=tt.replace(/ {2,}\n/gim," "),pb(/^(\s*#{1,6}\s+.*)/gim,"title")||pb(/(\n\s*\n)/gim,"break")||pb(/^(\s*>\s+[^]*?\n\n)/gim,"cite")||pb(/^(\s*>\s+.*)/gim,"cite")||pb(/^(.*?\|[^]*?\n\n)/gim,"table")||pb(/^( *\*| *-|-{1,8})[ $]/gim,"list")||pb(/^( ([\d]+[.]*)+)[ $]/gim,"list",(r=>{let vv=r.split(".");vv.shift();let cl=[];for(let v of vv)v.length&&cl.push(" ");return cl.push("-"),cl.join("")}))||tm.push({class:"",text:tt})))}function parselist(text,title=""){let tm=[];__parselist(text,tm);let counter=[],space=0;for(let ii=0;ii<tm.length;ii++){let t=tm[ii];if("list"==t.class){let sl=t.text.replace("\n","").length;if(sl>space)counter.push({space:sl,id:1}),space=sl;else for(;;){let c=counter[counter.length-1];if(1==counter.length||c.space<=sl){space=c.space,c.id++;break}counter.pop()}let cl=[],cl1=[];for(let c of counter)cl1.push(" "),cl.push(c.id);cl1.pop(),t.old=t.text,t.text.indexOf("-")>=0?t.text=cl1.join("")+"- "+cl.join(".")+".":t.text=cl1.join("")+"* ",cl=[];for(let j=ii+1;j<tm.length&&""==tm[j].class;j++)cl.push(tm[j].text);t.title=title,t.data=t.text+cl.join("")}else""!=t.class&&("title"==t.class&&(title=t.text),counter=[],space=0)}let cl=[],cards=[];for(let t of tm)"list"==t.class&&cards.push({title:t.title,lev:t.text,data:t.data}),cl.push(t.text);return{txt:cl.join(""),cards:cards,tm:tm}}function parserow$1(tt,tm,classe=""){let rr;function parse3(exp,cl){return rr=exp.exec(tt),!!rr&&(parserow$1(tt.slice(0,rr.index),tm,classe),tm.push({class:`${classe} ${cl}`,text:rr[1]}),parserow$1(rr[2],tm,`${classe} ${cl}`),tm.push({class:`${classe} ${cl}`,text:rr[3]}),parserow$1(tt.slice(rr.index+rr[1].length+rr[2].length+rr[3].length),tm,classe),!0)}(function parse1(exp,cl){return rr=exp.exec(tt),!!rr&&(parserow$1(tt.slice(0,rr.index),tm,classe),tm.push({class:`${classe} ${cl}`,text:rr[1]}),parserow$1(tt.slice(rr.index+rr[1].length),tm,classe),!0)})(/(`.*?`)/gim,"code2")||parse3(/(\*{3})([^]+?)(\*{3})/gim,"grassetto italico")||parse3(/(\*{2})([^]+?)(\*{2})/gim,"grassetto")||parse3(/(\*{1})([^]+?)(\*{1})/gim,"italico")||parse3(/(_{3})([^]+?)(_{3})/gim,"grassetto italico")||parse3(/(_{2})([^]+?)(_{2})/gim,"grassetto")||parse3(/(_{1})([^]+?)(_{1})/gim,"italico")||parse3(/(~{3})([^]+?)(~{3})/gim,"barrato")||parse3(/(~{2})([^]+?)(~{2})/gim,"tilde2")||parse3(/(~{1})([^]+?)(~{1})/gim,"tilde")||tm.push({class:classe,text:tt})}function parseblock$1(tt,tm){let rr;function pb(exp,cl,row=!1){return rr=exp.exec(tt),!!rr&&(parseblock$1(tt.slice(0,rr.index),tm),row?parserow$1(rr[1],tm,cl):tm.push({class:cl,text:rr[1]}),parseblock$1(tt.slice(rr.index+rr[1].length),tm),!0)}if(!(pb(/^(:{3}[^]+?:{3})/gim,"comment")||pb(/^(\s*`{3}[^]+?`{3})/gim,"code")||pb(/^(\s*:\w+:.*)$/gim,"comment")||pb(/^(\s*#{1,6} +.*)$/gim,"title",!0)||pb(/^(\s*>\s+[^]*?\n\n)/gim,"cite",!0)||pb(/^(\s*>\s+.*)/gim,"cite",!0)||pb(/^(.*?\|.*\n[-: ]+\|[-| :]*\n.*?\|[^]*?\n\n)/gim,"tabella",!0)||pb(/^(\n{2,})/gim,"break",!0)||pb(/^( *\*| *-|-{1,8})[ $]/gim,"list",!0)||pb(/(^\s*[\d.]+)[\s$]/gim,"list",!0))){if(rr=/(!*\[)(.*?)(\]\s*\()(.*?)(\))/.exec(tt),rr)return parserow$1(tt.slice(0,rr.index),tm,""),tm.push({class:"grassetto",text:rr[1]}),tm.push({class:"linkdes",text:rr[2]}),tm.push({class:"grassetto",text:rr[3]}),tm.push({class:"linkval",text:rr[4]}),tm.push({class:"grassetto",text:rr[5]}),void parserow$1(tt.slice(rr.index+rr[1].length+rr[2].length+rr[3].length+rr[4].length+rr[5].length),tm,"");parserow$1(tt,tm,"")}}function parsetext(tt){"number"==typeof tt&&(tt=String(tt)),tt&&"string"==typeof tt||(tt=" "),tt.endsWith("\n")&&(tt+=" ");let tm=[];return parseblock$1(tt,tm),tm}function parserow(tt,tm,classe=""){let rr;function parse1(exp,cl){return rr=exp.exec(tt),!!rr&&(parserow(tt.slice(0,rr.index),tm,classe),tm.push({class:`${classe} ${cl}`,text:rr[1]}),parserow(tt.slice(rr.index+rr[1].length),tm,classe),!0)}parse1(/(\/\/.*)$/gim,"commento2")||function parse2(exp,cl){if(rr=exp.exec(tt),rr){let ii=rr.index+rr[1].length;return parserow(tt.slice(0,ii),tm,classe),tm.push({class:`${classe} ${cl}`,text:rr[2]}),parserow(tt.slice(ii+rr[2].length),tm,classe),!0}return!1}(/(#let.? +)([\w_.]+)/gi,"variabile")||parse1(/(#(select|setdef|ret|cases|endselect|ifdef|log|msg|endif|cvar|cache|look|lookb|elseifdef|variante|forvar|for|endfor|continue|break|inc|macro|default|lets|letv|lett|cat|func))/gim,"comando")||parse1(/(#(if\s*|elseif\s*))/gim,"comando")||parse1(/(#(else|let|i |m |f |j |case|def ))/gim,"comando")||parse1(/(\$[{(]?[\w_.]+)/gim,"variabile")||parse1(/({.+?\})/gim,"formula")||parse1(/([})(])/gim,"variabile")||parse1(/([\d.:,;\\,]+)/gim,"digit")||tm.push({class:classe,text:tt})}function parseblock(tt,tm){let rr;(function pb(exp,cl,row=!1){return rr=exp.exec(tt),!!rr&&(parseblock(tt.slice(0,rr.index),tm),row?parserow(rr[1],tm,cl):tm.push({class:cl,text:rr[1]}),parseblock(tt.slice(rr.index+rr[1].length),tm),!0)})(/(\/\*[^]+?\*\/)/gim,"comment")||parserow(tt,tm,"")}function parserule(tt){tt||(tt=" "),tt.endsWith("\n")&&(tt+=" ");let tm=[];return parseblock(tt,tm),tm}function formatrule(code){let lines=code.split("\n"),formattedCode=[],indentLevel=0,next=0;for(let i=0;i<lines.length;i++){let line=lines[i].trim(),indent=" ".repeat(indentLevel>=0?indentLevel+next:next);next=0;let command="";line.split("//")[0].trim().endsWith("\\")&&(next=1),(line.startsWith("#")||line.startsWith("!"))&&(command=line.substring(1).split(" ")[0].toUpperCase(),line=line.substring(0,1)+command+line.substring(command.length+1)),"IF"==command||"IFDEF"==command||"IFNDEF"==command?line.indexOf("#",2)<0?indentLevel++:line=line.replace(/#([\w]+)/g,((match,m1)=>"#"+m1.toUpperCase())):["FOR","FORVAR","DO","SELECT"].includes(command)?indentLevel++:["ENDIF","LOOP","ENDFOR","ENDSELECT"].includes(command)&&(indentLevel--,indent=" ".repeat(indentLevel>=0?indentLevel:0)),["ELSEIF","ELSE","ELSEIFDEF","ELSEIFNDEF","CASE","CASES","DEFAULT"].includes(command)&&indentLevel>0?formattedCode.push(" ".repeat(indentLevel-1)+line):formattedCode.push(indent+line)}return formattedCode.join("\n")}function getcolonne(value){if((value=value+""||"").includes('"')){return value.split(/[,;](?=(?:(?:[^"]*["]){2})*[^"]*$)/).map((part=>part.trim().replace(/(^["'])|(["']$)/g,"").replace(/=\s*["']/g,"=")))}return value.split(/[,;]/).map((p=>p.trim()))}function formatvariante(str){let cl=[],ll=[];for(let c of str.split("\n")){let tm=getcolonne(c);for(let i=0;i<tm.length;i++){let t=tm[i]||"";(t.includes(",")||t.includes(";"))&&(t=`"${t}"`,tm[i]=t);let l=t.length;(!ll[i]||ll[i]<l)&&(ll[i]=l)}cl.push(getcolonne(c))}let res=[];for(let c of cl){let tm=[];for(let i=0;i<ll.length;i++)tm[i]=(c[i]||"").padEnd(ll[i]);res.push(tm.join(" , "))}return res.join("\n")}function markunoFormatCodeMirror(CodeMirror){CodeMirror.defineMode("markuno",(function(){return{startState:function(){return{inComment:!1}},token:function(stream,state){return state.inComment?(stream.skipTo("*/")?(stream.next(),stream.next(),state.inComment=!1):stream.skipToEnd(),"comment"):stream.match(/\/\/.*/)?"comment":stream.sol()&&stream.match(/^\s*\.[a-zA-Z0-9_]+(?=\s|$)/)?"def":state.expectMacroArg?stream.eatSpace()?null:stream.match(/^[^\s#,(){}]+/)?(state.expectMacroArg=!1,"builtin"):(stream.next(),state.expectMacroArg=!1,null):stream.sol()&&stream.match(/^\s*#([mif])\b/i)?(state.expectMacroArg=!0,"def"):stream.match("/*")?(stream.skipTo("*/")?(stream.next(),stream.next()):state.inComment=!0,"comment"):stream.match(/^\s*#(select|ret|cache|cvar|lookb|look|cases|endselect|log|msg|ifdef|ifndef|elseif|elseifndef|endif|elseifdef|variante|forvar|for|endfor|continue|break|inc|macro|default|lets|lett|cat|func|push|pop|letv|let|letm|lett|else)/i)||stream.match(/^\s*#(if\s*|elseif\s*|j |case|def )/i)||stream.match(/#(else|let|letv|lett|letm|cvar|cache|lookb|look)/i)?"keyword":!state.inCommand&&stream.match(/^\s*#[\w_.]+/i)?"string":stream.match(/^\s*![\w_.]+/i)?"builtin":stream.match(/[<>!=+\-*/\\%]+/)?"operator":stream.match(/\$\[[\w_.]+/)||stream.match(/\$\{[\w_.]+/)||stream.match(/\$\([\w_.]+/)||stream.match(/\$[\w_.]+/)||stream.match(/[}\])]/)?"string":stream.match(/\{.+?\}/)?"variable-3":stream.match(/[\d.:,;\\]+/)?"number":(stream.next(),null)}}}))}function parsevars(v,vars){let r=v;if(vars)for(let x in vars){let v2=vars[x]||`..${x}..`;r=r.replace(new RegExp(`\\[${x}\\]`,"gim"),v2)}return r}const parseinfomd=(data,info,mappa)=>aliasInfo.parse(data,info,mappa),mark=(xx,baseurl,notitle=!1,parsedlist=!1,callback)=>{let res;if(parsedlist)res=tokenize(xx,0,notitle);else{let{txt:txt}=parselist(xx);res=tokenize(txt,0,notitle)}return tokenparser(res,new Render(baseurl,!1,callback))},markeasy=(xx,maxlen=400,notitle=!1)=>{let res=tokenize(xx,maxlen,notitle);return tokenparser(res,new Render,maxlen).out};export{Render,aliasInfo,elang,escapeHTML,formatrule,formatvariante,mark,markeasy,markunoFormatCodeMirror,parseinfomd,parselist,parserule,parsetext,tokenparser as parsetokens,parsevars,tokenize,unescapeHTML};
1
+ function escape(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function replace(e,t){return e=e.source,t=t||"",function self(s,n){return s?(n=(n=n.source||n).replace(/(^|[^[])\^/g,"$1"),e=e.replace(s,n),self):new RegExp(e,t)}}function noop(){}function merge(e){let t,s,n=1;for(;n<arguments.length;n++)for(s in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}noop.exec=noop;const e={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/,bullet:/(?:[*+-])/,item:/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/};e.item=replace(e.item,"gm")(/bull/g,e.bullet)(),e.list=replace(e.list)(/bull/g,e.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+e.def.source+")")(),e.blockquote=replace(e.blockquote)("def",e.def)(),e._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",e.html=replace(e.html)("comment",/<!--[\s\S]*?-->/)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,e._tag)(),e.paragraph=replace(e.paragraph)("hr",e.hr)("heading",e.heading)("lheading",e.lheading)("blockquote",e.blockquote)("tag","<"+e._tag)("def",e.def)(),e.normal=merge({},e),e.gfm=merge({},e.normal,{fences:/^ *(`{3,}|~{3,})[ .]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/,formula:/^ *(\${2,})([\s\S]*?)\s*\1 *(?:\n+|$)/}),e.gfm.paragraph=replace(e.paragraph)("(?!","(?!"+e.gfm.fences.source.replace("\\1","\\2")+"|"+e.list.source.replace("\\1","\\3")+"|")(),e.tables=merge({},e.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :0123456789]*)\n((?: *\|.*(?:\n|$))*)\n*/});const t={escape:/^\\([\\`*{}[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,ico:/^::([\s\S]+?)::/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,colorbase:noop,coloralt:noop,text:/^[\s\S]+?(?=[\\<![_*:`]| {2,}\n|$)/,_inside:/(?:\[[^\]]*\]|[^[\]]|\](?=[^[]*\]))*/,_href:/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/};t.link=replace(t.link)("inside",t._inside)("href",t._href)(),t.reflink=replace(t.reflink)("inside",t._inside)(),t.normal=merge({},t),t.pedantic=merge({},t.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),t.gfm=merge({},t.normal,{escape:replace(t.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~~(?=\S)([\s\S]*?\S)~~~/,colorbase:/^~(?=\S)([\s\S]*?\S)~/,coloralt:/^~~(?=\S)([\s\S]*?\S)~~/,formula:/^\$(?=\S)([\s\S]*?\S)\$/,text:replace(t.text)("]|","~$]|")("|","|https?://|")()}),t.breaks=merge({},t.gfm,{br:replace(t.br)("{2,}","*")(),text:replace(t.gfm.text)("{2,}","*")()});const s={s:"subtitle",k:"keywords",g:"gruppo",e:"editore",y:"datapub",d:"datapub",p:"priority",a:"autore",u:"base",t:"title",l:"link",i:"img","#":"title"};const n=new class AliasInfo{constructor(){this.alias=JSON.parse(JSON.stringify(s)),this.check()}check(){let e=new Set,checkr=t=>{t&&t.length>2&&!e.has(t)&&e.add(t)};for(let e in this.alias)this.alias[e]?(checkr(e),checkr(this.alias[e])):delete this.alias[e];this.retoalias=function retroalias(e){let t={};for(let s in e)e[s]&&(t[e[s]]=s);return t}(this.alias),e=[...e],e=`^\\s*\\:(${e.join("|")}|\\w{1,2})\\:(.*)$`,this.regex=e}add(e,t){return e&&(this.alias[e]=t,this.check()),this}removeAll(){return this.alias={},this.check(),this}setmappa(e){this.alias={};for(let t in e)this.alias[t]=e[t];this.alias["#"]||(this.alias["#"]="title"),this.check()}parse(e,t,s){s&&this.setmappa();let n=e,l={};t&&(l=Object.assign(l,t),l.info=!0);let r=/^\s*#\s+(.*?)\s*$/im.exec(n);r&&(l[this.alias["#"]]=r[1].toLowerCase());for(let e=0;e<20;e++){let t=/:::(.*)([^]+?):::/im.exec(n);if(!t)break;{let s=t[1];s||(s=e+""),l.comments||(l.comments=[]),l.comments.push({k:s,v:t[2]}),n=n.substr(t.index+t[0].length)}}n=e;let i=new RegExp(this.regex,"im");for(let e=0;e<50;e++){let e=i.exec(n);if(!(e&&e.length>=2))break;{n=n.substr(e.index+e[0].length),l.info=!0;let t=(e[2]||"").trim(),s=this.alias[e[1].toLowerCase()];s||(s=e[1].toLowerCase()),"l"==s||"link"==s?(l[s]||(l[s]=[]),l[s].push(t)):l[s]=t}}return l}};var tokenize=(t,s,l=!1)=>{function _parsetable(e,t){let s,n={type:"table",headers:[],align:[],cells:[],cols:0},l=t.split("\n"),r=!1;function checkcols(e){if(n.cols<e){for(let t=n.cols;t<e;t++){n.align[t]="left",n.headers[t]=[];for(let e of n.cells)e[t]=[]}n.cols=e}}for(let e of l)if(e=e.trim(),e.length)if(e.length>2&&e.startsWith("|")&&e.endsWith("|")&&(e=e.slice(1,-1)),s=e.split("|"),checkcols(s.length),0==r&&/^[- :]+\|[- :|]*$/im.test(e)){for(let e=0;e<s.length;e++){let t=s[e],l=t.slice(0,1),r=t.slice(-1);n.align[e]=":"==l&&":"==r?"center":":"==r?"right":"left"}r=!0}else{let e=[];for(let t=0;t<s.length;t++){let l=s[t];if(r){let t=[];_tokenize(t,l,!1),e.push(t)}else _tokenize(n.headers[t],l,!1)}r&&n.cells.push(e)}e.push(n)}function _pushtoken(e,t){let s=/^([\d.]+)\s*/.exec(t),n="",l="";s&&(n=s[1],t=t.substring(s.index+s[0].length)),s=/^([\w\s]*?):.*$/gim.exec(t),s&&(l=s[1],t=t.substring(s.index+s[1].length)),e.push({type:"list_item_start",num:n}),l&&(e.push({type:"list_title_start"}),_tokenize(e,l,!1),e.push({type:"list_title_end"})),t=t.replace(/\n +/gim,"<br>"),_tokenize(e,t,!1),e.push({type:"list_item_end"})}function _parselista(e,t,s,n){let l=[s];for(e.push({type:"list_start",ordered:t});;){let s=/^( *)([*\-+])[\s$]/im.exec(n);if(!s){_pushtoken(e,n);break}{s.index&&_pushtoken(e,n.substring(0,s.index));let r=s[1].length;if(r>l[l.length-1])e.push({type:"list_start",ordered:t}),l.push(r);else for(;;){let t=l[l.length-1];if(1==l.length||t<=r)break;e.push({type:"list_end"}),l.pop()}n=n.substring(s.index+s[0].length)}}for(let t of l)e.push({type:"list_end"})}const _tokenize=(e,t,n,l)=>{let i;for(t=t.replace(/^ +$/gm,"");t;){if(s){let t=0;for(let s of e)s.text||s.html?t=t+s.text.length+2:t+=3;if(t>s)break}if((i=r.newline.exec(t))&&(t=t.substring(i[0].length),i[0].length>1&&e.push({type:"space"})),i=r.formula.exec(t))t=t.substring(i[0].length),e.push({type:"code",lang:"math",text:i[2]||""});else if(i=/^(\s*`{3})(.*)([^]+?)(`{3})/gim.exec(t)){i.index>0&&_tokenize(e,t.substring(0,i.index),n);let s=(i[3]||"").replace(/^\n/,"").replace(/\n+$/,"");e.push({type:"code",lang:i[2],text:s}),t=t.substring(i.index+i[0].length)}else if(i=r.heading.exec(t))t=t.substring(i[0].length),e.push({type:"heading",depth:i[1].length,text:i[2]});else if(n&&(i=/^(.*?\|.*\n[-: ]+\|[-| :]*\n.*?\|[^]*?)\n\n/gim.exec(t)))i.index>0&&_tokenize(e,t.substring(0,i.index),n),_parsetable(e,i[1]),t=t.substring(i.index+i[0].length);else if(n&&(i=/^\|.*\|\s*(?:\n\|.*\|)+/gim.exec(t)))i.index>0&&_tokenize(e,t.substring(0,i.index),n),_parsetable(e,i[0]),t=t.substring(i.index+i[0].length);else if(i=r.lheading.exec(t))t=t.substring(i[0].length),e.push({type:"heading",depth:"="===i[2]?1:2,text:i[1]});else if(i=r.hr.exec(t))t=t.substring(i[0].length),e.push({type:"hr"});else if(i=r.blockquote.exec(t))t=t.substring(i[0].length),e.push({type:"blockquote_start"}),_tokenize(e,i[0].replace(/^ *> ?/gm,""),n,!0),e.push({type:"blockquote_end"});else if(i=/^[\s-:]*?\|[\s-:|]*/im.exec(t),i||!(i=/^( *)([*\-+])[\s$]/im.exec(t))){if(i=r.html.exec(t))t=t.substring(i[0].length),e.push({type:"html",pre:"pre"===i[1]||"script"===i[1]||"style"===i[1],text:i[0]});else if(!l&&n&&(i=r.def.exec(t)))t=t.substring(i[0].length),e.push({type:"code",text:`??${i[0]}??${r.def}??`});else if(n&&(i=r.paragraph.exec(t)))t=t.substring(i[0].length),e.push({type:"paragraph",text:"\n"===i[1].charAt(i[1].length-1)?i[1].slice(0,-1):i[1]});else if(i=r.text.exec(t))t=t.substring(i[0].length),e.push({type:"text",text:i[0]});else if(t)throw new Error("Infinite loop on byte: "+t.charCodeAt(0))}else{i.index>0&&_tokenize(e,t.substring(0,i.index)),t=t.substring(i.index+i[0].length);let s=/([^]*?)(\n\n|\n\s*[#>])/im.exec(t+"\n\n");if(s){_parselista(e,"*"==i[2],i[1].length,s[1]),t=t.substring(s[1].length)}else e.push({type:"text??",text:i[0]})}}return e};let r=e.tables;return t=function removeInfo(e,t=!1){let s=e.replace(/:::([^]+?):::/gim,"").replace(new RegExp(n.regex,"gim"),"").replace(/^\s*#\s+/im,"# ").replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");if(t){const e=/(^\s*#\s+(.*)?\s*)$/im;let t=e.exec(s);t&&0==t.index&&(s=s.replace(e,""))}return s}(t,l),_tokenize([],t,!0)};const l={string:/(".*?[^\\]"|'.*?[^\\]'|`[^]*?[^\\]`|""|''|``)/m,puntuaction:/(-[-=]?|,|;|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3})/g,parentesis:/(\(|\)|\[|\]|\{|\})/g,ingraffe:/([^$])(\{)(.*?)(\})/g,regex:/\/.*?[^\\]\/[gimu]*/m,numbers:/\b((?:(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+)n?|\d+n|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?)/gi,js:{comments:/(?:(?:^|[^\\:])(\/\/.*)|(?:^|[^\\])(\/\*[\s\S]*?(?:\*\/)))/m,keyword:/(\b)(import|require|endif|include|define|float|int|real|char|bool|as|true|false|async|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)(\b)/g,keyword2:/(\.\w+|\w+:)/g},json:{string:/(".*?[^\\]")/m,string1:/(".*?[^\\]"\s*:)/m},html:{script:/(<script[\s\S]*?>)([^]*?)(<\/script>)/im,tag:/<(!DOCTYPE|\/?\w+)([^]*?)(\/?>)/im,intag:/(\b)([\w-]+)(=)/g,comments:/<!--[^]*?-->/im},bash:{comments:/# .*/,keyword1:/(^ *|; *)(\w+)(\b)/g,keyword:/(\b)(sudo *[\w-]+)(\b)/g},mu:{comments:/(?:(?:^|[^\\:])(\/\/.*)|(?:^|[^\\])(\/\*[\s\S]*?(?:\*\/)))/m,keyword1:/(#)(\w+)(\b)/g,keyword2:/(\$\(?(\w+|\.|:|\)))/g},sql:{keyword:".",keyword2:/(\b)(FROM|USING|FTS5|NVARCHAR|INTEGER|REAL|BLOB|DELETE|UPDATE|BEGIN|END|ADD|CREATE|CONSTRAINT|ALTER|COLUMN|TABLE|ALL|ASC|BETWEEN|CASE|CHECK|COLUMN|INDEX|VIEW|PROCEDURE|DESC|DISTINTC|DROP|OUTER|INNER|LEFT|JOIN|INSERT|INTO|[NOT ]*NULL|LIMIT|SELECT|ORDER BY|UNION|WHERE)(\b)/gi,keyword1:/(\b)(COLLATE|NOCASE|DEFAULT|IF [NOT ]*EXISTS|PRIMARY KEY|VALUES|AS)(\b)/gi,comments:/(?:(?:^|[^\\:])(\/\/.*)|(?:^|[^\\])(\/\*[\s\S]*?(?:\*\/))|(--\s.*))/m}};function elang(e,t,s,n){let l;return n&&(l=n.length,n.push(e)),`<pre class="elang relative">${xelang(e,t,s)}<div class="absolute top-1 right-1"><button class="mu-internal-copy" data-copy="${l}">📋</button></div></pre>`}const escapeTag=e=>e.replace(/[<>]/g,(e=>({"<":"&lt;",">":"&gt;"}[e]))),escapeHTML=e=>e.replace(/[&<>'"]/g,(e=>({"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"}[e]))),unescapeHTML=e=>e.replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&gt;/g,">").replace(/&lt;/g,"<");function xelang(e,t,s){let gspan=(e,t)=>(t&&(t=t.replace(/(\b)(\w+)(\b)/g,"$1_$2$3")),`☉☊${t||""}☊☉${(e=escapeTag(e))||""}☉☋`),regex=e=>{if(l[t]){let s=l[t][e];if("."==s)return;if(s)return s}let s=l[e];return"."==s?void 0:s},n=[],r=0,i=[];if(t){l[t]||(t="js");let r=regex("script");if(r){let s=[];for(;;){let n=r.exec(e);if(!n)break;n.index>0&&s.push(e.substr(0,n.index)),s.push(`★★K${i.length}★★`),i.push(xelang(n[1],t)+xelang(n[2],"js")+xelang(n[3],t)),e=e.substr(n.index+n[0].length)}e.length&&s.push(e),e=s.join("")}for(let s of[{r:"comments",s:"C"}]){let n=regex(s.r);if(n){let l=[];for(;;){let r=n.exec(e);if(!r)break;if(r.index>0&&l.push(e.substr(0,r.index)),l.push(`★★${s.s}${i.length}★★`),"html"==t){let e=r[0].replace(/</g,"&lt;").replace(/>/g,"&gt;");i.push(e)}else i.push(r[0]);e=e.substr(r.index+r[0].length)}e.length&&l.push(e),e=l.join("")}}for(let t of[{r:"string2",s:"A"},{r:"string1",s:"B"},{r:"string",s:"S"},{r:"tag",s:"T"},{r:"regex",s:"R"}]){let s=regex(t.r);if(s){let n=[];for(;;){let l=s.exec(e);if(!l)break;if(l.index>0&&n.push(e.substr(0,l.index)),n.push(`★★${t.s}${i.length}★★`),"T"==t.s){let e=l[2].replace(regex("intag"),((e,t,s,n)=>t+gspan(s,"intag")+gspan(n,"punc")));i.push(gspan("<","punc")+l[1]+e+gspan(l[3],"punc"))}else if("`"==l[0][0]){let e=l[0].replace(/(\${)(.*?)(})/gm,((e,t,s,n)=>gspan(t,"punc")+gspan(s,"word")+gspan(n,"punc")));i.push(e)}else i.push(l[0]);e=e.substr(l.index+l[0].length)}e.length&&n.push(e),e=n.join("")}}let a=e.split("\n"),o=0;for(let e of a)o++,e=e.replace(regex("keyword"),((e,t,s,n)=>gspan(t,"tag")+gspan(s,"keys")+n)).replace(regex("keyword1"),((e,t,s,n)=>t+gspan(s,"keys1 keys")+n)).replace(regex("keyword2"),(e=>gspan(e,"keys2 keys"))).replace(regex("numbers"),(e=>gspan(e,"number"))).replace(regex("ingraffe"),((e,t,s,n,l)=>t+gspan(s,"punc")+gspan(n,"word")+gspan(l,"punc"))).replace(regex("puntuaction"),(e=>gspan(e,"punc"))).replace(/★★T(\d+)★★/gu,((e,t)=>gspan(i[Number(t)],"tag"))).replace(/★★S(\d+)★★/gu,((e,t)=>gspan(i[Number(t)],"string"))).replace(/★★B(\d+)★★/gu,((e,t)=>gspan(i[Number(t)],"string string1"))).replace(/★★A(\d+)★★/gu,((e,t)=>gspan(i[Number(t)],"string string2"))).replace(/★★R(\d+)★★/gu,((e,t)=>gspan(i[Number(t)],"regex"))).replace(/★★C(\d+)★★/gu,((e,t)=>gspan(i[Number(t)],"comment"))).replace(/★★K(\d+)★★/gu,((e,t)=>i[Number(t)])),s?n.push(gspan((" "+o).substr(-4),"rowid")+gspan(e)):n.push(gspan(e))}else{let t=e.split("\n");for(let e of t)r++,s?n.push(`${gspan((" "+r).substr(-4),"rowid")}${gspan(e)}`):n.push(gspan(e))}let a=n.join("\n");return a=a.replace(/☉☋/gmu,"</span>").replace(/☉☊([^]*?)☊☉/gmu,((e,s)=>{if(s){let e=s.split(" "),n=[];for(let s of e)n.push(`elang_${t}${s}`),n.push(`elang${s}`);return`<span class="${n.join(" ")}">`}return"<span>"})),a}class Render{constructor(e,t,s){this.baseurl=e,this.easy=t,this.callback=s}code(e,t,s){if(this.easy)return"";t||(t="js");let n=t==t.toUpperCase();return elang(e,t=t.toLowerCase(),n,s)}blockquote(e){return this.easy?e:`<blockquote>\n${e}</blockquote>\n`}html(e){return e}heading(e,t,s){return"."==e||"*"==e?"":this.easy?`${e} `:`<h${t}>${e}</h${t}>`}hr(){return this.easy?"":'<div class="my-4"><hr/></div>'}list(e,t){let s=t?"ol":"ul";return`<${s}>\n${e}</${s}>\n`}listtitle(e){return`<span class="listtitle">${e}</span>`}listitem(e,t){return t?`<li attr-num="${t||""}">${e}</li>\n`:`<li>${e}</li>\n`}paragraph(e){return this.easy?e:`<p>${e}</p>\n`}table(e,t){return this.easy?"":`<table>\n<thead>\n${e}\n</thead>\n<tbody>\n${t}\n</tbody>\n</table>\n\n`}tablerow(e){return`<tr>\n${e}</tr>\n`}tablecell(e,t,s){if(t)return`<th style="text-align:center;">${e}</th>\n`;return`<td style="${s?"text-align:"+s+";":""}">${e}</td>`}colorbase(e){return`<span class='tilde'>${e}</span>`}formula(e,t=!1){if(this.easy)return"";let s=`<img class='inline px-2' src='https://math.croswil.com/f?${e=e.replace(/<\/?em>/g," ").replace(/\r/g,"").replace("/\n/g"," ")}' alt='${e}'/>`;return t?`<div class='flex justify-center'><div>${s}</div></div>`:s}coloralt(e){return`<span class='tilde2'>${e}</span>`}strong(e){return"<strong>"+e+"</strong>"}ico(e){return`<span class="font-ico">${e}</span>`}em(e){return"<em>"+e+"</em>"}codespan(e){return"<code>"+e+"</code>"}br(){return"<br>"}del(e){return`<del>${e}</del>`}link(e,t,s){if(this.easy)return"("+s+")";let n;if("/"==e.substr(0,1)&&this.baseurl&&(e=this.baseurl+e.substr(1)),e.startsWith("!"))n=`<button class="mu-internal-link" data-href="${e=e.slice(1)}">${s}</button>`;else{let l="";e.startsWith(".")?e=e.slice(1):l='target="_blank"',n=`<a ${l} href='${e}' title='${t||""}'>${s}</a>`}return n}image(e,t,s){if(this.easy)return"";let n=s.split("|"),l="",r=!1,i=!1,a=!1;if((e=(e=e.replace("https://www.youtube.com/watch?v=","https://youtu.be/")).replace("https://youtu.be","https://www.youtube.com/embed")).endsWith(".mp3")?(e=e.slice(0,-4),a=!0):e.endsWith(".mp4")?(e=e.slice(0,-4),i=!0):e.endsWith(".webm")?(e=e.slice(0,-5),r=!0):e.endsWith(".video")&&(e=e.slice(0,-6),r=!0,i=!0),a)l=`\n <audio controls ${n.length>=1?' width="'+n[1]+'"':""}\n class="mx-auto my-2 ${n.length>=2?n[2]:""}" \n >\n <source src="${e}.mp3" type="audio/mpeg">\n Il tuo browser non supporta l'elemento audio.\n </audio>\n `;else if(i||r)l=`\n<video ${n.length>=1?' width="'+n[1]+'"':""}\nclass="border rounded-lg shadow-xl ${n.length>=2?n[2]:""}" \ncontrols controlsList="nodownload" >\n ${r?'<source src="'+e+'.webm" type="video/webm" >':""}\n ${i?'<source src="'+e+'.mp4" type="video/mp4" >':""}\n \n Your browser does not support the video tag.\n</video>`;else{if(e.indexOf("https://www.youtu")>=0){let s=e.split("/embed/")[1]?.split("?")[0];return l=`\n\n<div style="width: 94%; box-shadow: 6px 6px 10px hsl(206.5, 0%, 75%); margin: 3%;">\n <div style="position: relative; padding-bottom: 56.15%; height: 0; overflow: hidden;">\n <iframe \n style="position: absolute; top: 0; left:0; width: 100%; height: 100%; border: 0;"\n loading="lazy";\n srcdoc="<style>\n * {\n padding: 0;\n margin: 0;\n overflow: hidden;\n }\n \n body, html {\n height: 100%;\n }\n \n img, svg {\n position: absolute;\n width: 100%;\n top: 0;\n bottom: 0;\n margin: auto;\n }\n \n svg {\n filter: drop-shadow(1px 1px 10px hsl(206.5, 70.7%, 8%));\n transition: all 250ms ease-in-out;\n }\n \n body:hover svg {\n filter: drop-shadow(1px 1px 10px hsl(206.5, 0%, 10%));\n transform: scale(2);\n }\n </style>\n <a href='https://www.youtube.com/embed/${s}?autoplay=1'>\n <img src='https://img.youtube.com/vi/${s}/hqdefault.jpg' alt='${t||"video"}'>\n <svg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 24 24' fill='none' stroke='#ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-play-circle'><circle cx='12' cy='12' r='10'></circle><polygon points='10 8 16 12 10 16 10 8'></polygon></svg>\n </a>\n "\n src="https://www.youtube.com/embed/${s}" \n title="${t||"video"}"\n frameborder="0"\n allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" \n allowfullscreen>\n </iframe>\n </div>\n </div> \n \n`,l}this.callback&&"function"==typeof this.callback&&(e=this.callback({type:"img",href:e})),"/"==e.substr(0,1)&&this.baseurl&&(e=this.baseurl+e.substr(1)),l='<img src="'+e+'" alt="'+n[0]+'"',n.length>1&&(n[1].length&&(l+=' width="'+n[1]+'"'),n.length>2&&(l+=' class="'+n[2]+'"')),n[0]&&(l+=' title="'+n[0]+'"'),l+="/>"}return l}text(e){return e}}const r=t.gfm;let tokenparser=(e,t,s=0)=>{let n=0,checklen=e=>{if(s>0&&e.length>s-n){let t=(e=e.substring(0,s-n)).lastIndexOf(" ");t>0&&(e=e.substring(0,t))}return e},next=()=>l=i.pop(),parseText=()=>{let e=l.text;for(;"text"===(i[i.length-1]||0).type;)e+="\n"+next().text;return output(checklen(e))},outputLink=(e,s)=>{let n=escape(s.href),l=s.title?escape(s.title):null;return"!"!==e[0].charAt(0)?t.link(n,l,output(e[1])):t.image(n,l,escape(e[1]))};const output=e=>{let s,n,l,i,c="";for(;e;)if(i=r.escape.exec(e))e=e.substring(i[0].length),c+=i[1];else if(i=r.autolink.exec(e))e=e.substring(i[0].length),"@"===i[2]?(n=":"===i[1].charAt(6)?i[1].substring(7):i[1],l=`mailto:${n}`):(n=escape(i[1]),l=n),c+=t.link(l,null,n);else if(a||!(i=r.url.exec(e))){if(i=r.tag.exec(e))!a&&/^<a /i.test(i[0])?a=!0:a&&/^<\/a>/i.test(i[0])&&(a=!1),e=e.substring(i[0].length),c+=i[0];else if(i=r.link.exec(e))e=e.substring(i[0].length),a=!0,c+=outputLink(i,{href:i[2],title:i[3]}),a=!1;else if((i=r.reflink.exec(e))||(i=r.nolink.exec(e))){if(e=e.substring(i[0].length),s=(i[2]||i[1]).replace(/\s+/g," "),s=o[s.toLowerCase()],!s||!s.href){c+=i[0].charAt(0),e=i[0].substring(1)+e;continue}a=!0,c+=outputLink(i,s),a=!1}else if(i=r.formula.exec(e))e=e.substring(i[0].length),c+=t.formula(output(i[1]));else if(i=r.ico.exec(e))e=e.substring(i[0].length),c+=t.ico(output(i[2]||i[1]));else if(i=r.strong.exec(e))e=e.substring(i[0].length),c+=t.strong(output(i[2]||i[1]));else if(i=r.em.exec(e))e=e.substring(i[0].length),c+=t.em(output(i[2]||i[1]));else if(i=r.code.exec(e))e=e.substring(i[0].length),c+=t.codespan(escape(i[2],!0));else if(i=r.br.exec(e))e=e.substring(i[0].length),c+=t.br();else if(i=r.del.exec(e))e=e.substring(i[0].length),c+=t.del(output(i[1]));else if(i=r.coloralt.exec(e))e=e.substring(i[0].length),c+=t.coloralt(output(i[1]));else if(i=r.colorbase.exec(e))e=e.substring(i[0].length),c+=t.colorbase(output(i[1]));else if(i=r.text.exec(e))e=e.substring(i[0].length),c+=t.text(i[0]);else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else e=e.substring(i[0].length),n=escape(i[1]),l=n,c+=t.link(l,null,n);return c};let l,tok=()=>{switch(l.type){case"space":return"";case"hr":return t.hr();case"heading":return t.heading(output(checklen(l.text)),l.depth,l.text);case"code":return"math"==l.lang?t.formula(l.text,!0):t.code(l.text,l.lang,c);case"table":{let e,s,n,r="",i=[];s=[];for(let e=0;e<l.headers.length;e++)s.push(t.tablecell(tokenparser(l.headers[e],t,0).out,!0,l.align[e]));r=t.tablerow(s.join(""));for(let r=0;r<l.cells.length;r++){for(e=l.cells[r],s=[],n=0;n<e.length;n++)s.push(t.tablecell(tokenparser(e[n],t,0).out,!1,l.align[n]));i.push(t.tablerow(s.join("")))}return t.table(r,i.join(""))}case"blockquote_start":{let e="";for(;"blockquote_end"!==next().type;)e+=tok();return t.blockquote(e)}case"list_start":{let e="",s=l.ordered;for(;"list_end"!==next().type;)e+=tok();return t.list(e,s)}case"list_title_start":{let e="";for(;"list_title_end"!==next().type;)e+=tok();return t.listtitle(e)}case"list_item_start":{let e="",s=l.num;for(;"list_item_end"!==next().type;)e+="text"===l.type?parseText():tok();return t.listitem(e,s)}case"html":return t.html(l.text);case"paragraph":return t.paragraph(output(checklen(l.text)));case"text":return t.paragraph(parseText());default:console.log("missing",l.type)}},i=e.reverse(),a=!1,o={},c=[],p=[];for(;next();){let e=tok();if(n+=e.length,e&&p.push(e),s>0&&n>s)break}return{out:p.join(""),codes:c}};function __parselist(e,t){let s;function pb(n,l,r){if(s=n.exec(e),s){__parselist(e.slice(0,s.index),t);let n=s[1];return n.startsWith("\n")&&(t.push({class:"",text:"\n"}),n=n.slice(1)),t.push({class:l,text:r?r(n):n}),__parselist(e.slice(s.index+s[1].length),t),!0}return!1}e&&"string"==typeof e&&(pb(/^(:{3}\s*$[^]+?:{3}\s*$)/gim,"comment")||pb(/^(\s*`{3}[^]+?`{3}\s*$)/gim,"code")||pb(/^(\s*:\w+:.*)$/gim,"comment")||(e=e.replace(/ {2,}\n/gim," "),pb(/^(\s*#{1,6}\s+.*)/gim,"title")||pb(/(\n\s*\n)/gim,"break")||pb(/^(\s*>\s+[^]*?\n\n)/gim,"cite")||pb(/^(\s*>\s+.*)/gim,"cite")||pb(/^(.*?\|[^]*?\n\n)/gim,"table")||pb(/^( *\*| *-|-{1,8})[ $]/gim,"list")||pb(/^( ([\d]+[.]*)+)[ $]/gim,"list",(e=>{let t=e.split(".");t.shift();let s=[];for(let e of t)e.length&&s.push(" ");return s.push("-"),s.join("")}))||t.push({class:"",text:e})))}function parselist(e,t=""){let s=[];__parselist(e,s);let n=[],l=0;for(let e=0;e<s.length;e++){let r=s[e];if("list"==r.class){let i=r.text.replace("\n","").length;if(i>l)n.push({space:i,id:1}),l=i;else for(;;){let e=n[n.length-1];if(1==n.length||e.space<=i){l=e.space,e.id++;break}n.pop()}let a=[],o=[];for(let e of n)o.push(" "),a.push(e.id);o.pop(),r.old=r.text,r.text.indexOf("-")>=0?r.text=o.join("")+"- "+a.join(".")+".":r.text=o.join("")+"* ",a=[];for(let t=e+1;t<s.length&&""==s[t].class;t++)a.push(s[t].text);r.title=t,r.data=r.text+a.join("")}else""!=r.class&&("title"==r.class&&(t=r.text),n=[],l=0)}let r=[],i=[];for(let e of s)"list"==e.class&&i.push({title:e.title,lev:e.text,data:e.data}),r.push(e.text);return{txt:r.join(""),cards:i,tm:s}}function parserow$1(e,t,s=""){let n;function parse3(l,r){return n=l.exec(e),!!n&&(parserow$1(e.slice(0,n.index),t,s),t.push({class:`${s} ${r}`,text:n[1]}),parserow$1(n[2],t,`${s} ${r}`),t.push({class:`${s} ${r}`,text:n[3]}),parserow$1(e.slice(n.index+n[1].length+n[2].length+n[3].length),t,s),!0)}(function parse1(l,r){return n=l.exec(e),!!n&&(parserow$1(e.slice(0,n.index),t,s),t.push({class:`${s} ${r}`,text:n[1]}),parserow$1(e.slice(n.index+n[1].length),t,s),!0)})(/(`.*?`)/gim,"code2")||parse3(/(\*{3})([^]+?)(\*{3})/gim,"grassetto italico")||parse3(/(\*{2})([^]+?)(\*{2})/gim,"grassetto")||parse3(/(\*{1})([^]+?)(\*{1})/gim,"italico")||parse3(/(_{3})([^]+?)(_{3})/gim,"grassetto italico")||parse3(/(_{2})([^]+?)(_{2})/gim,"grassetto")||parse3(/(_{1})([^]+?)(_{1})/gim,"italico")||parse3(/(~{3})([^]+?)(~{3})/gim,"barrato")||parse3(/(~{2})([^]+?)(~{2})/gim,"tilde2")||parse3(/(~{1})([^]+?)(~{1})/gim,"tilde")||t.push({class:s,text:e})}function parseblock$1(e,t){let s;function pb(n,l,r=!1){return s=n.exec(e),!!s&&(parseblock$1(e.slice(0,s.index),t),r?parserow$1(s[1],t,l):t.push({class:l,text:s[1]}),parseblock$1(e.slice(s.index+s[1].length),t),!0)}if(!(pb(/^(:{3}[^]+?:{3})/gim,"comment")||pb(/^(\s*`{3}[^]+?`{3})/gim,"code")||pb(/^(\s*:\w+:.*)$/gim,"comment")||pb(/^(\s*#{1,6} +.*)$/gim,"title",!0)||pb(/^(\s*>\s+[^]*?\n\n)/gim,"cite",!0)||pb(/^(\s*>\s+.*)/gim,"cite",!0)||pb(/^(.*?\|.*\n[-: ]+\|[-| :]*\n.*?\|[^]*?\n\n)/gim,"tabella",!0)||pb(/^(\n{2,})/gim,"break",!0)||pb(/^( *\*| *-|-{1,8})[ $]/gim,"list",!0)||pb(/(^\s*[\d.]+)[\s$]/gim,"list",!0))){if(s=/(!*\[)(.*?)(\]\s*\()(.*?)(\))/.exec(e),s)return parserow$1(e.slice(0,s.index),t,""),t.push({class:"grassetto",text:s[1]}),t.push({class:"linkdes",text:s[2]}),t.push({class:"grassetto",text:s[3]}),t.push({class:"linkval",text:s[4]}),t.push({class:"grassetto",text:s[5]}),void parserow$1(e.slice(s.index+s[1].length+s[2].length+s[3].length+s[4].length+s[5].length),t,"");parserow$1(e,t,"")}}function parsetext(e){"number"==typeof e&&(e=String(e)),e&&"string"==typeof e||(e=" "),e.endsWith("\n")&&(e+=" ");let t=[];return parseblock$1(e,t),t}function parserow(e,t,s=""){let n;function parse1(l,r){return n=l.exec(e),!!n&&(parserow(e.slice(0,n.index),t,s),t.push({class:`${s} ${r}`,text:n[1]}),parserow(e.slice(n.index+n[1].length),t,s),!0)}parse1(/(\/\/.*)$/gim,"commento2")||function parse2(l,r){if(n=l.exec(e),n){let l=n.index+n[1].length;return parserow(e.slice(0,l),t,s),t.push({class:`${s} ${r}`,text:n[2]}),parserow(e.slice(l+n[2].length),t,s),!0}return!1}(/(#let.? +)([\w_.]+)/gi,"variabile")||parse1(/(#(select|setdef|ret|cases|endselect|ifdef|log|msg|endif|cvar|cache|look|lookb|elseifdef|variante|forvar|for|endfor|continue|break|inc|macro|default|lets|letv|lett|cat|func))/gim,"comando")||parse1(/(#(if\s*|elseif\s*))/gim,"comando")||parse1(/(#(else|let|i |m |f |j |case|def ))/gim,"comando")||parse1(/(\$[{(]?[\w_.]+)/gim,"variabile")||parse1(/({.+?\})/gim,"formula")||parse1(/([})(])/gim,"variabile")||parse1(/([\d.:,;\\,]+)/gim,"digit")||t.push({class:s,text:e})}function parseblock(e,t){let s;(function pb(n,l,r=!1){return s=n.exec(e),!!s&&(parseblock(e.slice(0,s.index),t),r?parserow(s[1],t,l):t.push({class:l,text:s[1]}),parseblock(e.slice(s.index+s[1].length),t),!0)})(/(\/\*[^]+?\*\/)/gim,"comment")||parserow(e,t,"")}function parserule(e){e||(e=" "),e.endsWith("\n")&&(e+=" ");let t=[];return parseblock(e,t),t}function formatrule(e){let t=e.split("\n"),s=[],n=0,l=0;const r=" ";for(let e=0;e<t.length;e++){let i=t[e].trim(),a=r.repeat(n>=0?n+l:l);l=0;let o="";i.split("//")[0].trim().endsWith("\\")&&(l=1),(i.startsWith("#")||i.startsWith("!"))&&(o=i.substring(1).split(" ")[0].toUpperCase(),i=i.substring(0,1)+o+i.substring(o.length+1)),"IF"==o||"IFDEF"==o||"IFNDEF"==o?i.indexOf("#",2)<0?n++:i=i.replace(/#([\w]+)/g,((e,t)=>"#"+t.toUpperCase())):["FOR","FORVAR","DO","SELECT"].includes(o)?n++:["ENDIF","LOOP","ENDFOR","ENDSELECT"].includes(o)&&(n--,a=r.repeat(n>=0?n:0)),["ELSEIF","ELSE","ELSEIFDEF","ELSEIFNDEF","CASE","CASES","DEFAULT"].includes(o)&&n>0?s.push(r.repeat(n-1)+i):s.push(a+i)}return s.join("\n")}function getcolonne(e){if((e=e+""||"").includes('"')){return e.split(/[,;](?=(?:(?:[^"]*["]){2})*[^"]*$)/).map((e=>e.trim().replace(/(^["'])|(["']$)/g,"").replace(/=\s*["']/g,"=")))}return e.split(/[,;]/).map((e=>e.trim()))}function formatvariante(e){let t=[],s=[];for(let n of e.split("\n")){let e=getcolonne(n);for(let t=0;t<e.length;t++){let n=e[t]||"";(n.includes(",")||n.includes(";"))&&(n=`"${n}"`,e[t]=n);let l=n.length;(!s[t]||s[t]<l)&&(s[t]=l)}t.push(getcolonne(n))}let n=[];for(let e of t){let t=[];for(let n=0;n<s.length;n++)t[n]=(e[n]||"").padEnd(s[n]);n.push(t.join(" , "))}return n.join("\n")}function markunoFormatCodeMirror(e){e.defineMode("markuno",(function(){return{startState:function(){return{inComment:!1}},token:function(e,t){return t.inComment?(e.skipTo("*/")?(e.next(),e.next(),t.inComment=!1):e.skipToEnd(),"comment"):e.match(/\/\/.*/)?"comment":e.sol()&&e.match(/^\s*\.[a-zA-Z0-9_]+(?=\s|$)/)?"def":t.expectMacroArg?e.eatSpace()?null:e.match(/^[^\s#,(){}]+/)?(t.expectMacroArg=!1,"builtin"):(e.next(),t.expectMacroArg=!1,null):e.sol()&&e.match(/^\s*#([mif])\b/i)?(t.expectMacroArg=!0,"def"):e.match("/*")?(e.skipTo("*/")?(e.next(),e.next()):t.inComment=!0,"comment"):e.match(/^\s*#(select|ret|cache|cvar|lookb|look|cases|endselect|log|msg|ifdef|ifndef|elseif|elseifndef|endif|elseifdef|variante|forvar|for|endfor|continue|break|inc|macro|default|lets|lett|cat|func|push|pop|letv|let|letm|lett|else)/i)||e.match(/^\s*#(if\s*|elseif\s*|j |case|def )/i)||e.match(/#(else|let|letv|lett|letm|cvar|cache|lookb|look)/i)?"keyword":!t.inCommand&&e.match(/^\s*#[\w_.]+/i)?"string":e.match(/^\s*![\w_.]+/i)?"builtin":e.match(/[<>!=+\-*/\\%]+/)?"operator":e.match(/\$\[[\w_.]+/)||e.match(/\$\{[\w_.]+/)||e.match(/\$\([\w_.]+/)||e.match(/\$[\w_.]+/)||e.match(/[}\])]/)?"string":e.match(/\{.+?\}/)?"variable-3":e.match(/[\d.:,;\\]+/)?"number":(e.next(),null)}}}))}function parsevars(e,t){let s=e;if(t)for(let e in t){let n=t[e]||`..${e}..`;s=s.replace(new RegExp(`\\[${e}\\]`,"gim"),n)}return s}const parseinfomd=(e,t,s)=>n.parse(e,t,s),mark=(e,t,s=!1,n=!1,l)=>{let r;if(n)r=tokenize(e,0,s);else{let{txt:t}=parselist(e);r=tokenize(t,0,s)}return tokenparser(r,new Render(t,!1,l))},markeasy=(e,t=400,s=!1)=>{let n=tokenize(e,t,s);return tokenparser(n,new Render,t).out};export{Render,n as aliasInfo,elang,escapeHTML,formatrule,formatvariante,mark,markeasy,markunoFormatCodeMirror,parseinfomd,parselist,parserule,parsetext,tokenparser as parsetokens,parsevars,tokenize,unescapeHTML};