diff --git a/README.md b/README.md index 44d7c78..48393a4 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ npm i @pardnchiu/nanomd #### ES Module version ```javascript // Version 1.8.0 and above -import { MDEditor, MDViewer } from "https://cdn.jsdelivr.net/npm/@pardnchiu/nanomd@[VERSION]/dist/NanoMD.esm.js"; +import { MDEditor, MDViewer, MDParser } from "https://cdn.jsdelivr.net/npm/@pardnchiu/nanomd@[VERSION]/dist/NanoMD.esm.js"; // Version 1.6.0-1.7.1 import { editor, viewer } from "https://cdn.jsdelivr.net/npm/pdmarkdownkit@[VERSION]/dist/PDMarkdownKit.module.js"; @@ -145,6 +145,12 @@ const domViewer = new MDViewer({ (...).appendChild(domEditor.body); (...).appendChild(domViewer.body); +// Version 1.10.0 and above +const domParser = new MDParser({ + standard: 1 // Support only standard syntax, default: 1 | true +}); + +console.log(domParser.parse("**Text to parse**")); ``` ## License diff --git a/README.zh.md b/README.zh.md index 8400f8b..352ec5a 100644 --- a/README.zh.md +++ b/README.zh.md @@ -72,7 +72,7 @@ npm i @pardnchiu/nanomd #### ES Module 版本 ```javascript // 1.8.0 版本以上 -import { MDEditor, MDViewer } from "https://cdn.jsdelivr.net/npm/@pardnchiu/nanomd@[VERSION]/dist/NanoMD.esm.js"; +import { MDEditor, MDViewer, MDParser } from "https://cdn.jsdelivr.net/npm/@pardnchiu/nanomd@[VERSION]/dist/NanoMD.esm.js"; // 1.6.0-1.7.1 版本 import { editor, viewer } from "https://cdn.jsdelivr.net/npm/pdmarkdownkit@[VERSION]/dist/PDMarkdownKit.module.js"; @@ -144,6 +144,13 @@ const domViewer = new MDViewer({ // 若無指定元件,需手動將播放器加入至 DOM 中 (...).appendChild(domEditor.body); (...).appendChild(domViewer.body); + +// 1.10.0 版本以上 +const domParser = new MDParser({ + standard: 1 // 僅支持標準語法,預設值:1 | true +}); + +console.log(domParser.parse("**欲解析的文字**")) ``` ## 授權條款 diff --git a/dist/NanoMD.esm.js b/dist/NanoMD.esm.js index 448f4d6..a3e2be2 100644 --- a/dist/NanoMD.esm.js +++ b/dist/NanoMD.esm.js @@ -1 +1 @@ -!function(){const t=window,e=document,i=String,n=Boolean,s=Array,o=Object,l=JSON,r=Math,u=URL,a=Node,h=Date,c=Blob,d=parseInt,f=location,p="video/mp4",g="video/quicktime",m=["javascript","js","ts","html","css","xml","json","sql","java","python","ruby","php","cpp","csharp","swift","typescript","kotlin","go","rust","perl","bash"],y=t.matchMedia&&t.matchMedia("(prefers-color-scheme: dark)").matches,v="abcdefghijklmnopqrstuvwxyz0123456789";let w=new Map;const b=/\.([\w_-]+)?/gi,A=/\#([\w_-]+)?/i,C=/^\w+(?=[\#\.]*)/i,$=/[\"\']{0,1}([\u0020\u00A0\u0009]*)(mailto\:)?([\u0020\u00A0\u0009]*)(\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)([\u0020\u00A0\u0009]*)[\"\']{0,1}/,M=/(\s{1})\\?[\##]{1}([\u4e00-\u9fff\u3040-\u30ff\uac00-\ud7a3a-zA-Z0-9_]+)/,_=/[& \<\>\"\']/g,I=/\[([^\]\n]+)?\]\(([^\)\n\u0020\u00A0\u0009]+)([\u0020\u00A0\u0009]*[\"\']([^\)\n]+)[\"\'])?\)/,T=/(\n)(\>\s*\[\!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]\n)?(\>[^\n]*(\n)?)+/,k=/\`([^\n\`]*)\`/,S=/^\n|\n$/g,x=/\`{3}(\w*)([\s\S]*?)\s*\`{3}/,N=/((\n([\u0020\u00A0]{4,}|[\u0009]))[^\n]+)+/,D=/\*([^\n\*]*)\*/,E=/\_([^\n\_]*)\_/,L=/^\s|\s$/g,P=/(\n[\u0020\u00A0\u0009]*|\n[\u0020\u00A0\u0009]*>[\u0020\u00A0\u0009]*|\n[\u0020\u00A0\u0009]*([\-\*\+]|\d+\.)[\u0020\u00A0\u0009]+)\\?(\#{1,6})[\u0020\u00A0\u0009]+([^\n]+)/,R=/(\n)([^\n]+)\n\={3,}([\u0020\u00A0\u0009]*\n)/,j=/(\n)([^\n]+)\n\-{3,}([\u0020\u00A0\u0009]*\n)/,O=/([\u0020\u00A0\u0009]*\|[\u0020\u00A0\u0009]*)\\?(\#{1,6})[\u0020\u00A0\u0009]+([^\n\|]*)([\u0020\u00A0\u0009]*)/,F=/(\n[\u0020\u00A0\u0009]*)(\*{3,}|\-{3,})([\u0020\u00A0\u0009]*\n)/,H=/\!\[([^\]\n]+)?\]\(([^\)\n\u0020\u00A0\u0009]+)([\u0020\u00A0\u0009]*[\"\']([^\)\n]+)[\"\'])?\)(\(([0-9]+\%?)?[\u0020\u00A0\u0009\*x]+([0-9]+\%?)?([\u0020\u00A0\u0009]+(left|right))?\))?/,z=/^['"].*['"]$/,K=/\n(([\-\*\+]|\d+\.)[\u0020\u00A0\u0009]+(.+)(\n.*\S.*)*)+/,B=/(([\-\*\+]|\d+\.)[\u0020\u00A0\u0009]+(.+)(\n.*\S.*)*)+/,U=/^(([\-\*\+]|\d+\.)[\u0020\u00A0\u0009]*[^\n]+)/,G=/\={2}([^\n\=]*)\={2}/,Z=/\~{2}([^\n\~]*)\~{2}/,q=/\*{2}([^\n\*]*)\*{2}/,W=/\_{2}([^\n\_]*)\_{2}/,V=/\~([^\n\~]*)\~/,Y=/\^([^\n\^]*)\^/,J=/(\n(?![\{\<])[^\n]+)+/,X=/^(\n?(?![\{\<])[^\n]+)+/,Q=/\.mov$/,tt=/\.mp4$/,et=/[A-Za-z\%]/,it=/[\"\']{0,1}([\u0020\u00A0\u0009]*)(https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*))([\u0020\u00A0\u0009]*)[\"\']{0,1}/,nt=/(\<[\u00A0\u0020\u0009\>]*\/?[\u00A0\u0020\u0009\>]*br[\u00A0\u0020\u0009\>]*\/?[\u00A0\u0020\u0009\>]*\>|\n)/,st=/\n/,ot=/\\\!/g,lt=/\\\`/g,rt=/\\\#/g,ut=/\\\*/g,at=/\\\_/g,ht=/\\\~/g,ct=/\\\^/g,dt=/\\\=/g,ft=/\\\/g,gt=/\\\[/g,mt=/\\\]/g,yt=/\\\(/g,vt=/\\\)/g,wt=/\$/g,bt=/(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?/,At="mailto:",Ct="\n",$t="_blank",Mt="startsWith",_t="key",It="stringify",Tt="keys",kt="TEXT_NODE",St="ELEMENT_NODE",xt="nodeType",Nt="add",Dt="alt",Et="appendChild",Lt="as",Pt="auto",Rt="baseOffset",jt="blockquote",Ot="body",Ft="br",Ht="button",zt="charAt",Kt="checked",Bt="checkbox",Ut="childNodes",Gt="children",Zt="class",qt="clearTimeout",Wt="clipboardData",Vt="code",Yt="Color",Jt="color",Xt="content",Qt="contentEditable",te="controls",ee="copy",ie="create",ne="ctrlKey",se="dark",oe="dataset",le="delay",re="display",ue="div",ae="editor",he="em",ce="empty",de="emptyContent",fe="error",pe="float",ge="floor",me="focus",ye="fontFamily",ve="forEach",we="from",be="get",Ae="has",Ce="head",$e="height",Me="hide",_e="href",Ie="id",Te="iframe",ke="img",Se="index",xe="init",Ne="inner",De="input",Ee="insert",Le="isArray",Pe="join",Re="label",je="language",Oe="lastChild",Fe="lazy",He="length",ze="li",Ke="light",Be="link",Ue="list",Ge="loading",Ze="map",qe="mark",We="match",Ve="metaKey",Ye="min",Je="mode",Xe="Name",Qe="name",ti="node",ei="none",ii="number",ni="object",si="offset",oi="ol",li="outerHTML",ri="parent",ui="pd-md-editor",ai="pd-md-viewer",hi="placeholder",ci="pre",di="props",fi="preload",pi="prettyprint",gi="prevent",mi="push",yi="px",vi="querySelector",wi="random",bi="rel",Ai="remove",Ci="replace",$i="click",Mi="script",_i="scroll",Ii="section",Ti="set",ki="slice",Si="source",xi="span",Ni="split",Di="src",Ei="string",Li="strong",Pi="style",Ri="sub",ji="success",Oi="sup",Fi="table",Hi="tag",zi="target",Ki="tbody",Bi="td",Ui="temp",Gi="test",Zi="textContent",qi="th",Wi="thead",Vi="title",Yi="toLowerCase",Ji="toUpperCase",Xi="tr",Qi="trim",tn="type",en="ul",nn="value",sn="video",on="viewer",ln="width",rn="console",un="apply",an="void",hn="vdom",cn="getElementById",dn="crossOrigin",fn="preconnect",pn=Nt+"EventListener",gn="background"+Yt,mn=Zt+Xe,yn=Zt+"List",vn=ie+"DocumentFragment",wn=ie+"Element",bn=ie+"TextNode",An=we+"CharCode",Cn=me+"Background"+Yt,$n=me+"Offset",Mn=me+"Text"+Yt,_n=be+"Data",In=be+"Selection",Tn=Ae+"OwnProperty",kn=Se+"Of",Sn=Ne+"HTML",xn=Ne+"Text",Nn=Ee+"Before",Dn=ti+Xe,En=ti+"Value",Ln="onclick",Pn="onwheel",Rn=ri+"Element",jn=ri+"Node",On=hi+Yt,Fn=gi+"Default",Hn=gi+"Refresh",zn=vi+"All",Kn=Ai+"AllRanges",Bn=_i+"Height",Un=_i+"Sync",Gn=_i+"Top",Zn=Ti+"Attribute",qn=Ti+"Data",Wn=Ti+"End",Vn=Ti+"Start",Yn=Ti+"Timeout",Jn=Hi+Xe,Xn=Hi+"Path",Qn=Hi+"Target";let ts="";const es="@excl@",is="@grave@",ns="@num@",ss="@ast@",os="@lowbar@",ls="@tilde@",rs="@Hat@",us="@equal@",as="@lt@",hs="@gt@",cs="@lsqb@",ds="@rsqb@",fs="@lpar@",ps="@rpar@",gs="@dollar@",ms="<",ys=">",vs="&",ws=" ",bs=""",As="'",Cs={create:"CREATE",append:"APPEND",replace:"REPLACE",text:"TEXT",prop:"PROP",remove:"REMOVE"};Array[we]({[He]:26},((t,e)=>i[An](97+e)))[ve](((e,n)=>{let s=n<10,o=n>=10&&n<20,l=n>=20,r=i(n),u=r[zt](r[He]-1),a=i=>{ts+=i?e[Ji]():e,t[(i?"$":"_")+(l?"_":"")+u+(o?"_":"")]=i?e[Ji]():e};a(0),a(1),s&&(ts+=n,t["_"+e]=n)}));t._a,t._b,t._c,t._d,t._e,t._f,t._g,t._h,t._i,t._j;const $s=t._0,Ms=t._1,_s=(t._2,t._3,t._4,t._5,t._6),Is=t._7,Ts=t._8,ks=(t._9,t._0_,t._1_,t._2_,t._3_,t._4_,t._5_,t._6_,t._7_,t._8_),Ss=(t._9_,t.__0),xs=(t.__1,t.__2,t.__3,t.__4,t.__5,t.$0,t.$1,t.$2,t.$3,t.$4,t.$5,t.$6,t.$7,t.$8,t.$9,t.$0_,t.$1_,t.$2_,t.$3_,t.$4_,t.$5_,t.$6_,t.$7_,t.$8_,t.$9_,t.$_0,t.$_1,t.$_2,t.$_3,t.$_4,t.$_5,"https://fonts.googleapis.com"),Ns=xs+"/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,1,0&display=swap",Ds="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js",Es="https://cdn.jsdelivr.net/npm/@pardnchiu/nanomd@1.9.6/dist/NanoMD.css",Ls="NanoMD\nGitHub: https://github.com/pardnchiu/NanoMD\nCreator: Pardn Chiu\nLicense: Proprietary";let Ps;for(let t of[Rs(Be,{[bi]:fn,[_e]:"https://fonts.gstatic.com",[dn]:""}),Rs(Be,{[bi]:fn,[_e]:xs,[dn]:""}),Rs(Be,{[bi]:fi,[_e]:Ns,[Lt]:Pi,[dn]:"anonymous"}),Rs(Be,{[bi]:"stylesheet",[_e]:Ns}),Rs(Be,{[bi]:"preconnect",[_e]:"https://cdn.jsdelivr.net"}),Rs(Be,{[bi]:fi,[_e]:Ds,[Lt]:Mi}),Rs(Mi,{[Di]:Ds}),Rs(Be,{[bi]:fi,[_e]:Es,[Lt]:Pi}),Rs(Be,{[bi]:"stylesheet",[_e]:Es})])e[Ce][Et](t);function Rs(t="",i,n){const s=((t[We](C)||[])[0]||"")[Qi](),o=((t[We](A)||[])[1]||"")[Qi](),l=(b[Gi](t)?t[We](b):[])[Ze]((t=>t[Ci](/^\./,"")));if(s[He]<1)return;let r,u,a,h=!1;if(t===Ui?(h=!0,r=e[vn]()):r=e[wn](s),91!=Ls[He])return r;o[He]&&(r.id=o);for(let t of l)r[yn][Nt](t);if(null==i&&null!=n&&([i,n]=[n,null]),null!=i&&null!=n)[u,a]=[i,n];else if(null==n)typeof i===Ei||typeof i===ii||Array[Le](i)?a=i:u=i;else if(null==i)return r;if(typeof u===ni&&null!=u)for(const t in u){if(!u[Tn](t))continue;const e=u[t];-1!=[nn,xn,Sn,Zi,Qt][kn](t)?r[t]=e:-1!=[Jt,gn,ln,$e,re,pe][kn](t)?r[Pi][t]=e:null!=e&&r[Zn](t,e)}if(null!=a){const t=typeof a===Ei,i=typeof a===ii,n=Array[Le](a);if(t||i){const t=a;s===ke||s===Si?r[Di]=t:h?r[Et](e[bn](a)):r[Sn]=t}else if(n)for(let t of a){const i=t instanceof Element;typeof t===Ei||typeof t===ii?h?r[Et](e[bn](t)):r[Sn]+=t:i&&r[Et](t)}}return r}function js(t=""){return t[Ci](_,(t=>({"&":vs," ":ws,"<":ms,">":ys,'"':bs,"'":As}[t])))}function Os(t,e=""){return new RegExp(t,e)}function Fs(t){if(t)return t[mn]===ui||t[Dn][Yi]()===ue&&t[jn][mn]===ui?t:Fs(t[jn])}function Hs(t){const e=Rs(ue);return e[Et](t),e[Sn]}function zs(t=""){if((t=t[Qi]())[He]<1)return"";const e=t[We](bt)||[];return e[He]>2&&11===e[1][He]?e[1]:""}function Ks(t=""){if((t=t[Qi]())[He]<1)return"";const e=t.match(/(?:https?:\/\/)?(?:www\.)?vimeo\.com\/(?:channels\/[\w]+\/|groups\/[\w]+\/videos\/|album\/\d+\/video\/|video\/|)(\d+)/);return e?e[1]:null}function Bs(t,e="",i="",n="",s="",o=""){const l=Us(i),r=n instanceof HTMLElement?n:Rs(i,n);return w[Ti](l,r[li]),e[Ci](t,s+l+o)}function Us(t=""){let e="{{"+(t[Qi]()||Pt)+"-";return e+=Gs(),e+="}}",w[Ae](e)?Us(t):e}function Gs(t=64){let e="";for(let i=0;i[\u00A0\u0020\u0009]?/,"")[Ci](/\n\>[\u00A0\u0020\u0009]?/g,"\n"))[Ni](st);for(let t in n){const o=n[t];i[Et](s(o,d(t),e))}}function s(t,n=0,o=""){let l=Rs(Ui);const r=/^[\u00A0\u0020\u0009]*\>[\u00A0\u0020\u0009]?/,u=t[Ci](r,"");if(/\[\!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]/[Gi](t)&&0===n)l[Et](Rs(xi+".hint",[-1!=["NOTE","TIP","IMPORTANT","WARNING","CAUTION"][kn](o)?Rs("span.material-symbols-outlined",{NOTE:"info",TIP:"lightbulb",IMPORTANT:"sms",WARNING:"warning",CAUTION:"error"}[o]||""):null,o])),l[Et](Rs(Ft));else if(r[Gi](t)){let t=Rs(jt);t[Et](s(u)),l[Et](t)}else/^[\u00A0\u0020\u0009]*\{\{/[Gi](t)?l[Et](i[Et](e[bn](t))):l[Et](Rs(xi,t));return l}return t}function qs(t=""){let e=[[Vt,k]];for(let i of e){const e=i[0],n=i[1];for(let i of t[We](Os(n,_s))||[]){const s=i[We](n);if(L[Gi](s[1]||""))continue;let o=(s[1]||"")[Qi]();o[He]<1||(e!=Vt?t=t[Ci](i,Rs(e,o)[li]):(o=js(o),t=Bs(i,t,e,o)))}}return t}function Ws(t){let e=0,i=Rs(oi);for(let n in t){const s=t[n];0===d(n)&&(e=r.floor((s[We](/^\s*/)||[""])[0][He]/4));const o=Os(`^\\s{0,${4*e}}`);i[Et](Rs(ze,js(s[Ci](o,""))))}return i}function Vs(t=""){let e=[[Li,q],[Li,W],[ks,Z],[qe,G],[he,D],[he,E],[Oi,Y],[Ri,V]];for(let t of e){i(t[0],t[1])}function i(e,i){for(let n of t[We](Os(i,_s))||[]){const s=n[We](i);if(L[Gi](s[1]||""))continue;let o=(s[1]||"")[Qi]();o[He]<1||(e!=Vt?t=t[Ci](n,Rs(e,o)[li]):(o=js(o),t=Bs(n,t,e,o)))}}return t}function Ys(t="",e="",n=$t){if(i(e||"")[Qi]()[He]<1)return t;for(let i of t[We](Os(M,_s))||[]){if(i[We](/^\\/))continue;const s=i[We](M);if(s[He]<1)continue;const o=s[1],l=(s[2]||"")[Qi](),r=Us($s);if(l[He]<1)continue;const u=Rs(Ui,[Rs($s+"."+Hi,{[_e]:e+l,[zi]:n===$t?$t:"_self"},l)]);w[Ti](r,Hs(u)),t=t[Ci](i,o+r)}return t}function Js(t=""){return(()=>{for(let e of t[We](Os(P,_s))||[]){const i=e[We](P);if(i[He]<1)continue;const n=i[1]||"",s=(i[3]||"")[Qi]()[He],o=(i[4]||"")[Qi]();0!=r[Ye](s,o[He])&&(t=Bs(e,t,Is+s,o,n))}})(),(()=>{for(let e of t[We](Os(O,_s))||[]){const i=e[We](O);if(i[He]<1)continue;const n=i[1]||"",s=(i[2]||"")[Qi]()[He],o=(i[3]||"")[Qi](),l=i[4]||"";0!=r[Ye](s,o[He])&&(t=Bs(e,t,Is+s,o,n,l))}})(),(()=>{for(let e of t[We](Os(R,_s))||[]){const i=e[We](R);if(i[He]<1)continue;const n=i[1]||"",s=(i[2]||"")[Qi](),o=i[3]||"";s[He]<1||(t=Bs(e,t,Is+1,s,n,o))}})(),(()=>{for(let e of t[We](Os(j,_s))||[]){const i=e[We](j);if(i[He]<1)continue;const n=i[1]||"",s=(i[2]||"")[Qi](),o=i[3]||"";s[He]<1||(t=Bs(e,t,Is+2,s,n,o))}})(),t}function Xs(t=""){for(let e of t[We](Os(F,_s))||[]){const i=e[We](F);if(i[He]<1)continue;const n=i[1]||"",s=i[3]||"",o=Us("HR");w[Ti](o,"
"),t=t[Ci](e,n+o+s)}return t}function Qs(t=""){const e="this.parentElement.nextElementSibling.style.display='block';this.parentElement.style.display='none'",i="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEyMCIgdmlld0JveD0iMCAwIDEyMCAxMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8yNTkyXzMwNDkpIj4KPHBhdGggZD0iTTEyMCA2MEMxMjAgMjYuODYyOSA5My4xMzcxIDAgNjAgMEMyNi44NjI5IDAgMCAyNi44NjI5IDAgNjBDMCA5My4xMzcxIDI2Ljg2MjkgMTIwIDYwIDEyMEM5My4xMzcxIDEyMCAxMjAgOTMuMTM3MSAxMjAgNjBaIiBmaWxsPSJibGFjayIgZmlsbC1vcGFjaXR5PSIwLjUiLz4KPHBhdGggZD0iTTg0LjM2MzMgNTYuNTgwM0M4Ni45MzAyIDU4LjEzNzYgODYuOTMwMiA2MS44NjI2IDg0LjM2MzMgNjMuNDE5OUw1MS44MjQ4IDgzLjE2MTJDNDkuMTU5MSA4NC43Nzg2IDQ1Ljc1IDgyLjg1OTQgNDUuNzUgNzkuNzQxNFY0MC4yNTg4QzQ1Ljc1IDM3LjE0MDggNDkuMTU5MSAzNS4yMjE2IDUxLjgyNDggMzYuODM4OUw4NC4zNjMzIDU2LjU4MDNaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzI1OTJfMzA0OSI+CjxyZWN0IHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPg==";function n(t,n,s,o){return Hs(Rs(Ui,[Rs($s,{[Vi]:o,[_e]:n,[zi]:$t},s||n),Rs("section.more",[Rs("img.cover","https://i.ytimg.com/vi/"+t+"/mqdefault.jpg"),Rs("img.icon",{[Ln]:e},i)]),Rs(Te,{[Ge]:Fe,[ln]:"640px",[Di]:"https://www.youtube.com/embed/"+t,frameborder:0,allow:"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowfullscreen:"",[re]:ei})]))}function s(t,n,s,o){const l=function(t){const e=`https://vimeo.com/api/v2/video/${t}.json`;let i=null;const n=new XMLHttpRequest;n.open("GET",e,!1);try{n.send(),200===n.status?i=JSON.parse(n.responseText)[0].thumbnail_large:console.error("HTTP 錯誤:",n.status)}catch(t){console.error("無法獲取縮圖:",t)}return i}(t);return Hs(Rs(Ui,[Rs($s,{[Vi]:o,[_e]:n,[zi]:$t},s||n),Rs("section.more",[Rs("img.cover",l),Rs("img.icon",{[Ln]:e},i)]),Rs(Te,{[Ge]:Fe,[ln]:"640px",[Di]:"https://player.vimeo.com/video/"+t,frameborder:0,allow:"autoplay; fullscreen; picture-in-picture",allowfullscreen:"",[re]:ei})]))}return(()=>{for(let e of t[We](Os(I,_s))||[]){const i=e[We](I);if(i[He]<1)continue;const o=(i[1]||"")[Qi](),l=(i[2]||"")[Qi](),u=(i[4]||"")[Qi](),a=(zs(l)||"")[Qi](),h=(Ks(l)||"")[Qi]();if(0!=r[Ye](o[He],l[He]))if(a[He])t=Bs(e,t,ue,n(a,l,o,u));else if(h[He])t=Bs(e,t,ue,s(h,l,o,u));else{const i=Rs($s,{[Vi]:u,[_e]:l,[zi]:$t},o);t=Bs(e,t,$s,i)}}})(),(()=>{for(let e of t[We](Os(it,_s))||[]){if(e[We](z))continue;const i=e[We](it);if(i[He]<1)continue;const o=i[1]||"",l=(i[2]||"")[Qi](),r=i[5]||"",u=(zs(l)||"")[Qi](),a=(Ks(l)||"")[Qi]();if(!(l[He]<1))if(u[He])t=Bs(e,t,ue,n(u,l),o,r);else if(a[He])t=Bs(e,t,ue,s(a,l));else{const i=Rs($s,{[_e]:l,[zi]:$t},l);t=Bs(e,t,$s,i,o,r)}}})(),(()=>{for(let e of t[We](Os($,_s))||[]){if(e[We](z))continue;const i=e[We]($);if(i[He]<1)continue;const n=(i[1]||"")+(i[2]||"")+(i[3]||""),s=(i[4]||"")[Qi](),o=i[8]||"";if(s[He]<1)continue;const l=Rs($s,{[_e]:At+s,[zi]:$t},s);t=Bs(e,t,$s,l,n,o)}})(),t}function to(t=""){for(let i of t[We](Os(K,_s))||[])e(i);function e(e){let i;e[Qi]()[Ci](Os(nt,_s),Ct)[Ni](nt)[ve](((t,e)=>{const n=t[We](B)||[],s=n[He]<1?null:/\d+\./[Gi]((n[2]||"")[Qi]())?oi:en,o=(t[We](/\s{4}/g)||[])[He];let l=n[He]<1?t[Ci](/^\s*([\-\*\+]|\d+\.)?\s*/g,""):(n[3]||"")[Qi]();if(0===d(e)&&null==s)return;0===d(e)&&(i=Rs(s));let r=i;function u(t,e){if(/^\[\s*(\x)?\s*\]/[Gi](e)){const i=e[Qi]()[We](/^\[\s*(\x)?\s*\]/);e=e[Ci](/^\[\s*(\x)?\s*\]\s*/,"");const n=null!=i[1];t[Et](Rs(ze,[Rs(Re,[Rs(De,{[tn]:Bt,[Kt]:n?"":null,[Ln]:"return false;"}),Rs(xi,e)])]))}else t[Et](Rs(ze,e))}if(/^\s{0,3}([\-\*\+]|\d+\.)/[Gi](t))u(r,l);else if(/^\s{4,}([\-\*\+]|\d+\.)/[Gi](t)){r=i[Oe];for(let t=0;t{const s=/([^\n]*)(?:[\u0020\u00A0\u0009]*\|[^\n]*\|[^\n]*\n)[\u0020\u00A0\u0009]*\|([\u0020\u00A0\u0009\-\:]*\|)+\n(?:[\u0020\u00A0\u0009]*\|[^\n]*\|[^\n]*\n)*/;for(let o of t[We](Os(s,_s))||[])U[Gi](o)||(n(o),t=Bs(o,t,Fi,Hs(e),...i(o)))})(),(()=>{const s=/(([^\n]+\|)*[^\n]+\n)(([\u0020\u00A0\u0009\-\:]+\|)*[\u0020\u00A0\u0009\-\:]+\n)(?:([^\n]+\|)*[^\n]+\n)*/;for(let o of t[We](Os(s,_s))||[])n(o),t=Bs(o,t,Fi,Hs(e),...i(o))})(),t}function oo(t=""){return t=t[Ci](/\n[\u0020\u00A0\u0009]*/g,"\n"),(()=>{for(let e of t[We](Os(X,_s))||[]){const i=e[We](X);if(i[He]<1)continue;const n=i[2]||"",s=(i[0]||"")[Qi]();if(s[He]){const i=Rs(Ui,[Rs("p",s)]),o=Us("p");w[Ti](o,Hs(i)),t=t[Ci](e,n+o)}}})(),(()=>{for(let e of t[We](Os(J,_s))||[]){const i=e[We](J);if(i[He]<1)continue;const n=i[2]||"",s=(i[0]||"")[Qi]();if(s[He]){const i=Rs(Ui,[Rs("p",s)]),o=Us("p");w[Ti](o,Hs(i)),t=t[Ci](e,n+o)}}})(),t}function lo(t=""){t=t[Ci](/^\n*|\n*$/g,"");const e=/(<br>)/g;return e[Gi](t)?t[Ci](e,"\n"):t}function ro(t="",e="",i=$t){t=t[Ci](ot,es)[Ci](lt,is)[Ci](rt,ns)[Ci](ut,ss)[Ci](at,os)[Ci](ht,ls)[Ci](ct,rs)[Ci](dt,us)[Ci](ft,as)[Ci](pt,hs)[Ci](gt,cs)[Ci](mt,ds)[Ci](yt,fs)[Ci](vt,ps)[Ci](wt,gs)[Ci](/[\u00A0\u0020]/g," ");let n=[io,qs,eo,Qs,Vs,Js,Xs,so,Zs,to,no,Ys,lo,oo];for(let s of n)t=s(t,e,i);for(;/\{{2}\w*\-*\w{64}\}{2}/[Gi](t);)for(let e of t[We](/\{{2}\w*\-*\w{64}\}{2}/g)||[]){let i=Os(e);t=t[Ci](i,w[be](e))}const s=["h1","h2","h3","h4","h5","h6",Fi,oi,en,ci,jt,"details","hr",Re];for(let e of s){const i=Os(`[  \t]*\\n[  \t]*<${e}`,_s),n=Os(`${e}>[  \t]*\\n[  \t]*`,_s);t=t[Ci](i,`<${e}`)[Ci](n,`${e}>`)}return t=t[Ci](Os(es,_s),"!")[Ci](Os(is,_s),"&grave")[Ci](Os(ns,_s),"#")[Ci](Os(ss,_s),"*")[Ci](Os(os,_s),"_")[Ci](Os(ls,_s),"˜")[Ci](Os(rs,_s),"^")[Ci](Os(us,_s),"&equal;")[Ci](Os(as,_s),ms)[Ci](Os(hs,_s),ys)[Ci](Os(cs,_s),"[")[Ci](Os(ds,_s),"]")[Ci](Os(fs,_s),"(")[Ci](Os(ps,_s),")")[Ci](Os(gs,_s),"$")[Ci](/([\u0020\u00A0\u0009]*\n[\u0020\u00A0\u0009]*){2,}/g,"
")}document.addEventListener("DOMContentLoaded",(t=>{!function(...t){const i=Rs(Mi,`${rn}.log.${un}(${an} 0, ${JSON.stringify(t)});`);e[Ot][Et](i),i[Ai]()}("%c"+Ls,"line-height: 1.75rem; font-size: 0.875rem;")}));class uo{#t="";#e;#i=!0;#n=!0;#s;#o;#l;#r;#u;#a;#h;deployKey;constructor(s={}){this.#t=(s.defaultContent||"")[Qi]();const o=s[Pi]||{},l=i(o[Je]||Pt)[Qi]()[Yi](),r=n(null==o.fill?1:o.fill)?1:0,u=i(o[ye]||"")[Qi]()||"'Roboto Mono', monospace",a=n(null==o.showRow?1:o.showRow)?1:0,h=o.placeholder||{},c=i(h.text||"Type here ..."),d=i(h.color||"#bfbfbf"),f=o.focus||{},p=i(f.backgroundColor||"#0000ff1a"),g=i(f.color||"#0000ffff");e[Ce][Et](Rs(Pi,`\n.${ui}{font-family: ${u}}\n.${ui}>div[data-focus="1"]{background-color:${p};color:${g};caret-color:${g}}\n.${ui}>div[data-last="1"]:empty::after{content:"${c}";color:${d} !important;caret-color:${g}}`));const m=e[cn](s[Ie]);typeof s[Ie]===Ei&&null!=m?(this[Ot]=m,m.classList.add(ui)):this[Ot]=Rs(Ii+"."+ui),this[Ot][oe][Je]=y&&l===Pt||l===se?se:"",this[Ot][oe].fill=r,this[Ot][oe].row=a,this[Ot][oe].pin={1:1,0:0,[!0]:1,[!1]:0}[s.tabPin]||0,this[Ot][oe].wrap={1:1,0:0,[!0]:1,[!1]:0}[s.wrap]||1,this[Ot][oe].saved=1,this.#h=new ho(this[Ot]);const v=this[Ot];if(this.#i=n(null==s.hotKey||s.hotKey),this.#n=n(null==s.autoSave||s.autoSave),this.#s=s.event||{},null==this.#l&&s[Hn]&&(this.#l=t[pn]("beforeunload",(t=>{t[Fn]()})),e[pn]("keydown",(t=>{("F5"===t[_t]||(t.ctrlKey||t.metaKey)&&{r:1,R:1}[t[_t]])&&t[Fn]()}))),null!=s[Je]){let t=i(s[Je]||Pt)[Qi]()[Yi]();this[Ot][oe][Je]=y&&t===Pt||t===se?se:""}if(null!=s.fillMode){let t=n(s.fillMode)?1:0;this[Ot][oe].fill=t}if(null!=s.showRow){let t=n(s.showRow)?1:0;this[Ot][oe].row=t}if(null!=s[ye]){let t=i(s[ye])[Qi]()||"'Roboto Mono', monospace";e[Ce][Et](Rs(Pi,`.${ui}{font-family: ${t}}`))}let w=i(s[Cn]||"")[Qi]()||p,b=i(s[Mn]||"")[Qi]()||g;e[Ce][Et](Rs(Pi,`.${ui}>div[data-focus="1"]{background-color:${w};color:${b}`));let A=i(s[hi]||"")[Qi]()||c,C=i(s[On]||"")[Qi]()||d;e[Ce][Et](Rs(Pi,`.${ui}>div[data-last="1"]:empty::after{content:"${A}";color:${C}}`)),v.onmousedown=v.onmouseup=v.ontouchend=t=>{if(t.target[Jn][Yi]()!==ue)return t[Fn](),!1;this.#c()},v.oncut=t=>(this.#d(),this.#f((e=>{t[Wt][qn]("text/plain",this.#a.body),v[Gt][this.#a.start][Sn]=js(this.#a.left+this.#a.right),this.#p(),this.#g(v[Gt][this.#a.start],this.#a.left[He])})),this.#m(!0,!1),!1),v.onpaste=e=>(this.#d(),this.#f((i=>{const n=((e[Wt]||t[Wt])[_n]("Text")||"")[Ni](/\n/),s=n[He],o=s-1,l=s>1,r=this.#a.start+o,u=`${l?"":this.#a.left}${n[o]}`[He],a=n[0],h=l?"":this.#a.right;if(v[Gt][this.#a.start][xn]=this.#a.left+a+h,this.#p(),l)for(let t=1;tthis.#c(),v[Nn](i,v[Gt][this.#a.start+t])}this.#g(v[Gt][r],u,u)})),this.#m(!0,!1),!1),v.oninput=t=>{let e,i;if("deleteCompositionText"===t.inputType){e=this.#u.index,i=this.#u.offset;for(let t of[...v[Gt]]){if(t[Dn][Yi]()===ue||t[Dn][Yi]()===Ii)continue;t[Ai]();let n=Rs(ue,{"data-index":e+1,index:e+1});n[Ln]=t=>this.#c(),v[Nn](n,v[Gt][e]),this.#g(v[Gt][e],i)}}t.inputType;let n=this.#u.isMulti,s=this.#u.multi.left,o=t.data,l=this.#u.multi.right,r=this.#u.multi.start.offset;this.#c(),n&&(this.#o[xn]=s+o+l,this.#g(this.#o,r+1)),this.#m(!0,300)},v.onkeydown=t=>!new co({editor:this,hotKey:this.#i,[Hn]:s[Hn],event:t}).preventDefault,v.onkeyup=t=>{"Meta"!==t.key&&"Control"!==t.key&&(v[Gt]&&1===v[Gt][He]&&v.firstElementChild[Dn][Yi]()!==ue&&this[xe](null,!0,!1),this.#c(),/^(Arrow(Up|Left|Down|Right)|CapsLock|Shift|Control|Alt|Clear|Escape|F\d+)$/[Gi](t.key)||this.#n&&this.#y())},v.onblur=t=>{this.#d()},this.init()}get viewer(){return this.#r}set viewer(t){this.#r=t}#v(){let t=Rs("button",[Rs("span.material-symbols-outlined","markdown"),"Markdown"]),i=Rs("button",[Rs("span.material-symbols-outlined","html"),"HTML"]),n=Rs("button",[Rs("span.material-symbols-outlined","cancel"),"Cancel"]),s=Rs("div.nanomd-pop",[Rs("strong","Export"),t,i,n]);t[Ln]=t=>{this.download("md"),s.remove()},i[Ln]=t=>{this.download("html"),s.remove()},n[Ln]=t=>{s.remove()},e[Ot][Et](s)}#c(e,i=!1){this.#d(),this.#u=new ao(this[Ot],e,i);const n=t[In]();if(n.rangeCount<1)return;const s=n.getRangeAt(0);let o=e||Fs(s.commonAncestorContainer);null!=o&&this.#w(o,this.#u.index||this.#u.multi.end.index)}#f(t){this.#a=new fo(this[Ot],this.#u),t()}#p(){this.#a.removeRows()}#g(i,n,s){const o=this[Ot][zn](ue);for(let t in o){const e=o[t];if(isNaN(d(t)))continue;const i=d(t)+1;e[oe][Se]=i,i===o.length?e[oe].last=1:e[oe].last=0}if(t[In]?t[In]()[ce]?t[In]()[ce]():t[In]()[Kn]&&t[In]()[Kn]():e[In]&&e[In]()[ce](),null==i)return;let l=t[In](),r=e.createRange(),u=n??i[Ut][0][He],a=s??u;r.selectNode(i),i[Ut][0]?(r[Vn](i[Ut][0],u>i[Ut][0][He]?i[Ut][0][He]:u),r[Wn](i[Ut][0],a>i[Ut][0][He]?i[Ut][0][He]:a)):(r[Vn](i,0),r[Wn](i,0)),l.addRange(r),this.#c(i)}#w(t,e){const i=Ii+"."+De+"-"+Ht;let n=this[Ot][vi](i);t[oe][me]=1,this[Ot][Nn](n,this[Ot][Gt][e+1]),n[oe][Me]=0,this.#o=t}#d(){if(!this.#o)return;const t=Ii+"."+De+"-"+Ht,e=this[Ot][vi](t);this.#o[oe][me]=0,null!=e&&(this[Ot][Et](e),e[oe][Me]=1),this.#o=null}#b(t){t=js(t);let e=this.#A;const i=Rs(ue,t);i[Ln]=t=>this.#c(),e[xn][Qi]()[He]<1?e[Sn]=t:this[Ot][Et](i),this[Ot][Gn]=this[Ot][Bn],this[on]&&(this[on][Ot][Gn]=this[on][Ot][Bn])}get#A(){let t=this[Ot].lastElementChild;return"SECTION"===t[Dn]&&(t=t.previousElementSibling),t}#C(t,e){const i=this[Ot][Gt][this.#a.start];i[Sn]=js(t),this.#p(),this.#g(i,e)}#$(t,e="",i=""){const n=t[Ve]||t[ne]||e===i;this.#u.check?this.#f((t=>{const s=this.#a.left,o=this.#a.body,l=this.#a.right,r=`${s}${n?`<${i}>`:e}${o}${n?``:e}${l}`[Ci](/\n/g,""),u=r[He]-l[He]-(n?i[He]+3:e[He]);this.#C(r,u),this.#m(!0,this.#n)})):(this.#b(n?`<${i}>`:`${e}${e}`),this.#g(this.#A,n?i[He]+3:e[He]),this.#m(!0,this.#n))}#M(t){this.#u.check?this.#f((e=>{const i=this.#a.start,n=this.#a.end;for(let e=i;e<=n;e++){const i=this[Ot][Gt][e];i[Sn]=js(`${t} ${i[xn]}`)}const s=this[Ot][Gt][n],o=s[xn][He];this.#g(s,o),this.#m(!0,this.#n)})):(this.#b(t),this.#g(this.#A,t[He]+1),this.#m(!0,this.#n))}#_(t="",e="",i){if(this.#u.check)return void this.#f((n=>{const s=this.#a.left,o=this.#a.right,l=`${s}${null==i?"":"!"}[${t}](${e}) ${o}`[Ci](/\n/g,""),r=l[He]-o[He]-1;this.#C(l,r),this.#m(!0,this.#n)}));this.#b(`${null==i?"":"!"}[${t}](${e})`);const n=this.#A,s=n[xn][He];this.#g(n,s),this.#m(!0,this.#n)}#m(t,e){this.#c(),this.#h.add(this.#u,t,"number"==typeof e?e:0),this.unsave(),("boolean"==typeof e&&e||null==e)&&this.#y()}#I(t,i){const n=new c([i],{[tn]:"application/octet-stream"}),s=u.createObjectURL(n),o=Rs($s,{href:s,download:`NanoMD-${h.now()}.${t}`});e[Ot][Et](o),o[$i]()}#y(){this[Ot][oe].saved=1,null!=this[on]&&this[on][xe]()}init(t,e=!0,n=!0){if(this[Ot][Qt]=!0,this[Ot][Sn]=null,this.#e=new po({editor:this,autoSave:this.#n}),this[Ot][Et](this.#e.body),(t=i(t||this.#t)[Qi]())[He]){this.#t="";const i=t[Ci](/\n*$/,"")[Ni](/\n/);for(let t=0;tthis.#c(),this[Ot][Et](n)}if(!e)return}else{const t=Rs(ue,{"data-index":1});if(t[Ln]=t=>this.#c(),this[Ot][Et](t),!e)return}n&&(this.#c(),this.#h.add(this.#u,!0))}changeMode(t=Ke){this[Ot][oe][Je]=t}selectAll(){this.#d();const t=this[Ot].firstElementChild,e=this.#A,i=window.getSelection(),n=document.createRange();null!=t.firstChild&&(n.setStart(t.firstChild,0),n.setEnd(e.firstChild,e.firstChild.length),i.removeAllRanges(),i.addRange(n))}save(){if(this.#n)if(this.#s[Tn]("save")){if(null==this.#s.save)return!1;this.#s.save(this.text)}else this.#v();else if(this.#y(),this.#s[Tn]("save")){if(null==this.#s.save)return!1;this.#s.save(this.text)}}unsave(){0!==d(this[Ot][oe].saved)&&(this[Ot][oe].saved=0,this[on]&&this[on].unsave())}indent(t){if(9!==t.keyCode)return;const e=this[Ot];return this.#f((t=>{e[Gt][this.#a.start][Sn]=js(this.#a.left+" "+this.#a.right),this.#p();const i=this.#a.left[He]+4;this.#g(e[Gt][this.#a.start],i)})),!1}wrap(t){if(13!==t.keyCode)return;const e=this[Ot];return this.#f((t=>{e[Gt][this.#a.start][Sn]=js(this.#a.left),this.#p(),e[Rn][Rn][Gn]+=28;const i=Rs(ue,js(this.#a.right));i[Ln]=t=>this.#c(),e[Nn](i,e[Gt][this.#a.start+1]),this.#g(e[Gt][this.#a.start+1],0)})),!1}backspace(t){if(8!==t.keyCode)return!1;const e=this[Ot];return this.#f((t=>{if(this.#u.isMulti||this.#u.isSingle)e[Gt][this.#a.start][Sn]=js(this.#a.left+this.#a.right),this.#p(),this.#g(e[Gt][this.#a.start],this.#a.left[He]);else if(this.#a.left[He]){const t=this.#a.left[ki](0,this.#a.left[He]-1);e[Gt][this.#a.start][Sn]=js(t+this.#a.right),this.#g(e[Gt][this.#a.start],t[He])}else{if(0===this.#a.start)return;e[Gt][this.#a.start-1][Sn]+=js(this.#a.right),e[Gt][this.#a.start][Ai](),e[Rn][Rn][Gn]-=28;const t=e[Gt][this.#a.start-1][xn][He]-this.#a.right[He];this.#g(e[Gt][this.#a.start-1],t)}})),!1}undo(){this.#d();const t=this.#h.undo();null!=t&&(this[xe](t[Xt][He]<1?null:t[Xt],!1,!1),this.unsave(),this.#g(this[Ot][Gt][t[Se]],t[si]),this.#n&&this.#y())}redo(){const t=this.#h.redo();null!=t&&(this[xe](t[Xt],!1,!1),this.unsave(),this.#g(this[Ot][Gt][t[Se]],t[si]),this.#n&&this.#y())}heading(t,e){const i=t[Ve]||t[ne],n=`${new Array(e).fill("#")[Pe]("")}${0===e?"":" "}`;this.#u.check?this.#f((t=>{const s=this.#a.left[Ci](/^\s*\#*\s*/,""),o=this.#a.body,l=this.#a.right,r=`${i?``:n}${s}${o}${l}${i?``:""}`[Ci](/\n/g,""),u=r[He]-(i?5:0);this.#C(r,u),this.#m(!0,this.#n)})):(this.#b(i?``:n),this.#g(this.#A,n[He]-(i?5:0)),this.#m(!0,this.#n))}bold(t){this.#$(t,"**",Ms)}italic(t){this.#$(t,"*",Ts)}strikethrough(t){this.#$(t,"~~",ks)}underline(t){this.#$(t,Ss,Ss)}marker(t){this.#$(t,"==",qe)}sup(t){this.#$(t,"^",Oi)}sub(t){this.#$(t,"~",Ri)}code(t){this.#u.check?this.#f((e=>{if(this.#u.isMulti){const t=Rs(ue,"```"),e=Rs(ue,"```");t[Ln]=e[Ln]=t=>this.#c(),this[Ot][Nn](t,this[Ot][Gt][this.#a.end+1]),this[Ot][Nn](e,this[Ot][Gt][this.#a.start]),this.#g(this[Ot][Gt][this.#a.end+1],this[Ot][Gt][this.#a.end+1][xn][He]),this.#m(!0,this.#n)}else this.#$(t,"`",Vt)})):this.#$(t,"`",Vt)}blockquote(){this.#u.check?this.#f((t=>{for(let t=this.#a.start;t<=this.#a.end;t++){const e=this[Ot][Gt][t];e[Sn]=js(`> ${e[xn]}`)}const e=this[Ot][Gt][this.#a.end],i=e[xn][He];this.#g(e,i),this.#m(!0,this.#n)})):(this.#b("> "),this.#g(this.#A,2),this.#m(!0,this.#n))}ul(){this.#M("-")}ol(){this.#M("1.")}link(t="",e=""){e[Qi]()[He]<1&&t[Qi]()[He]<1||this.#_(t,e)}image(t="",e="",i=""){t[Qi]()[He]<1||this.#_(i,t,e)}clear(){this.init(),this.#y()}download(t="md"){const e={md:"md",html:"html"}[t[Yi]()];if(null==e)return;let i="https://cdn.jsdelivr.net/npm/@pardnchiu/nanomd@1.9.6/dist/NanoMD-output.css";const n="md"===e?this.text[Qi]():`NanoMD 輸出