!function(e,t){if("function"==typeof define&&define.amd)define("Waline",["exports"],t);else if("undefined"!=typeof exports)t(exports);else{var n={exports:{}};t(n.exports),e.Waline=n.exports}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:this,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.version=e.pageviewCount=e.init=e.defaultLocales=e.commentCount=e.UserList=e.RecentComments=void 0;const t=["nick","mail","link"],n=e=>e.filter((e=>t.includes(e))),r=["//unpkg.com/@waline/emojis@1.1.0/weibo"],l="en-US",i=e=>new Promise(((t,n)=>{if(e.size>128e3)return n(new Error("File too large! File size limit 128KB"));const r=new FileReader;r.readAsDataURL(e),r.onload=()=>{var e;return t((null===(e=r.result)||void 0===e?void 0:e.toString())||"")},r.onerror=n})),o=e=>!0===e?'
Tex is not available in preview
':'Tex is not available in preview',s=e=>{const t=async function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return fetch(`https://api.giphy.com/v1/gifs/${t}?${new URLSearchParams({lang:e,limit:"20",rating:"g",api_key:"6CIMLkNMMOhRcXPoMCPkFy4Ybk2XUiMp",...n}).toString()}`).then((e=>e.json())).then((e=>{let{data:t}=e;return t.map((e=>({title:e.title,src:e.images.downsized_medium.url})))}))};return{search:e=>t("search",{q:e,offset:"0"}),default:()=>t("trending",{}),more:function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t("search",{q:e,offset:n.toString()})}}},a=["//unpkg.com/@waline/emojis/tieba/tieba_agree.png","//unpkg.com/@waline/emojis/tieba/tieba_look_down.png","//unpkg.com/@waline/emojis/tieba/tieba_sunglasses.png","//unpkg.com/@waline/emojis/tieba/tieba_pick_nose.png","//unpkg.com/@waline/emojis/tieba/tieba_awkward.png","//unpkg.com/@waline/emojis/tieba/tieba_sleep.png"],c=new RegExp(`(${/[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u309f\uac00-\ud7af\u0400-\u04FF]+|\w+/.source}|${/{let t=0;return e.replace(c,((e,n,r)=>{if(r)return`${r}`;if("<"===n)return"<";let l;p[n]?l=p[n]:(l=u[t],p[n]=l);const i=`${n}`;return t=++t%u.length,i}))},h=["nick","nickError","mail","mailError","link","optional","placeholder","sofa","submit","like","cancelLike","reply","cancelReply","comment","refresh","more","preview","emoji","uploadImage","seconds","minutes","hours","days","now","uploading","login","logout","admin","sticky","word","wordHint","anonymous","level0","level1","level2","level3","level4","level5","gif","gifSearchPlaceholder","profile","approved","waiting","spam","unsticky","oldest","latest","hottest","reactionTitle"],f=e=>Object.fromEntries(e.map(((e,t)=>[h[t],e])));var g=f(["NickName","NickName cannot be less than 3 bytes.","E-Mail","Please confirm your email address.","Website","Optional","Comment here...","No comment yet.","Submit","Like","Cancel like","Reply","Cancel reply","Comments","Refresh","Load More...","Preview","Emoji","Upload Image","seconds ago","minutes ago","hours ago","days ago","just now","Uploading","Login","logout","Admin","Sticky","Words","Please input comments between $0 and $1 words!\n Current word number: $2","Anonymous","Dwarves","Hobbits","Ents","Wizards","Elves","Maiar","GIF","Search GIF","Profile","Approved","Waiting","Spam","Unsticky","Oldest","Latest","Hottest","What do you think?"]),m=f(["ニックネーム","3バイト以上のニックネームをご入力ください.","メールアドレス","メールアドレスをご確認ください.","サイト","オプション","ここにコメント","コメントしましょう~","提出する","Like","Cancel like","返信する","キャンセル","コメント","更新","さらに読み込む","プレビュー","絵文字","画像をアップロード","秒前","分前","時間前","日前","たっだ今","アップロード","ログインする","ログアウト","管理者","トップに置く","ワード","コメントは $0 から $1 ワードの間でなければなりません!\n 現在の単語番号: $2","匿名","うえにん","なかにん","しもおし","特にしもおし","かげ","なぬし","GIF","探す GIF","個人情報","承認済み","待っている","スパム","べたつかない","逆順","正順","人気順","どう思いますか?"]),v=f(["昵称","昵称不能少于3个字符","邮箱","请填写正确的邮件地址","网址","可选","欢迎评论","来发评论吧~","提交","喜欢","取消喜欢","回复","取消回复","评论","刷新","加载更多...","预览","表情","上传图片","秒前","分钟前","小时前","天前","刚刚","正在上传","登录","退出","博主","置顶","字","评论字数应在 $0 到 $1 字之间!\n当前字数:$2","匿名","潜水","冒泡","吐槽","活跃","话痨","传说","表情包","搜索表情包","个人资料","通过","待审核","垃圾","取消置顶","按倒序","按正序","按热度","你认为这篇文章怎么样?"]),y=f(["暱稱","暱稱不能少於3個字元","郵箱","請填寫正確的郵件地址","網址","可選","歡迎評論","來發評論吧~","提交","喜歡","取消喜歡","回覆","取消回覆","評論","刷新","載入更多...","預覽","表情","上傳圖片","秒前","分鐘前","小時前","天前","剛剛","正在上傳","登錄","退出","博主","置頂","字","評論字數應在 $0 到 $1 字之間!\n當前字數:$2","匿名","潛水","冒泡","吐槽","活躍","話癆","傳說","表情包","搜索表情包","個人資料","通過","待審核","垃圾","取消置頂","按倒序","按正序","按熱度","你認為這篇文章怎麼樣?"]),w=f(["Apelido","Apelido não pode ser menor que 3 bytes.","E-Mail","Por favor, confirme seu endereço de e-mail.","Website","Opcional","Comente aqui...","Nenhum comentário, ainda.","Enviar","Like","Cancel like","Responder","Cancelar resposta","Comentários","Refrescar","Carregar Mais...","Visualizar","Emoji","Enviar Imagem","segundos atrás","minutos atrás","horas atrás","dias atrás","agora mesmo","Enviando","Entrar","Sair","Admin","Sticky","Palavras","Favor enviar comentário com $0 a $1 palavras!\n Número de palavras atuais: $2","Anônimo","Dwarves","Hobbits","Ents","Wizards","Elves","Maiar","GIF","Pesquisar GIF","informação pessoal","Aprovado","Espera","Spam","Unsticky","Mais velho","Mais recentes","Mais quente","O que você acha?"]),b=f(["Псевдоним","Никнейм не может быть меньше 3 байт.","Эл. адрес","Пожалуйста, подтвердите адрес вашей электронной почты.","Веб-сайт","Необязательный","Комментарий здесь...","Пока нет комментариев.","Отправить","Like","Cancel like","Отвечать","Отменить ответ","Комментарии","Обновить","Загрузи больше...","Превью","эмодзи","Загрузить изображение","секунд назад","несколько минут назад","несколько часов назад","дней назад","прямо сейчас","Загрузка","Авторизоваться","Выход из системы","Админ","Липкий","Слова","Пожалуйста, введите комментарии от $0 до $1 слов!\nНомер текущего слова: $2","Анонимный","Dwarves","Hobbits","Ents","Wizards","Elves","Maiar","GIF","Поиск GIF","Персональные данные","Одобренный","Ожидающий","Спам","Нелипкий","самый старый","последний","самый горячий","Что вы думаете?"]);const k={zh:v,"zh-cn":v,"zh-CN":v,"zh-tw":y,"zh-TW":y,en:g,"en-US":g,"en-us":g,jp:m,ja:m,"jp-jp":m,"jp-JP":m,"pt-br":w,"pt-BR":w,ru:b,"ru-ru":b,"ru-RU":b},x={"Content-Type":"application/json"},_=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if("object"==typeof e&&e.errno)throw new TypeError(`${t} failed with ${e.errno}: ${e.errmsg}`);return e},$=e=>{let{serverURL:t,lang:n,paths:r,type:l,signal:i}=e;return fetch(`${t}/article?path=${encodeURIComponent(r.join(","))}&type=${encodeURIComponent(l.join(","))}&lang=${n}`,{signal:i}).then((e=>e.json()))},C=e=>{let{serverURL:t,lang:n,path:r,type:l,action:i}=e;return fetch(`${t}/article?lang=${n}`,{method:"POST",headers:x,body:JSON.stringify({path:r,type:l,action:i})}).then((e=>e.json()))},S=e=>{let{serverURL:t,lang:n,token:r,objectId:l,comment:i}=e;return fetch(`${t}/comment/${l}?lang=${n}`,{method:"PUT",headers:{...x,Authorization:`Bearer ${r}`},body:JSON.stringify(i)}).then((e=>e.json())).then((e=>_(e,"Update comment")))},E=e=>{try{e=decodeURI(e)}catch(e){}return e},R=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.replace(/\/$/u,"")},A=e=>/^(https?:)?\/\//.test(e),I=e=>{const t=R(e);return A(t)?t:`https://${t}`},L=e=>Array.isArray(e)?e:!!e&&[0,e],z=(e,t)=>"function"==typeof e?e:!1!==e&&t,O="{--waline-white:#000;--waline-light-grey:#666;--waline-dark-grey:#999;--waline-color:#888;--waline-bgcolor:#1e1e1e;--waline-bgcolor-light:#272727;--waline-bgcolor-hover: #444;--waline-border-color:#333;--waline-disable-bgcolor:#444;--waline-disable-color:#272727;--waline-bq-color:#272727;--waline-info-bgcolor:#272727;--waline-info-color:#666}",j=(e,t)=>{let n=e.toString();for(;n.lengthu?N(e,l,i,!0,!1,p):x(t,n,r,l,i,o,s,a,p)},j=(e,t,n,r,l,i,o,s,a)=>{let c=0;const u=t.length;let p=e.length-1,d=u-1;for(;c<=p&&c<=d;){const r=e[c],u=t[c]=a?qr(t[c]):Wr(t[c]);if(!Ur(r,u))break;f(r,u,n,null,l,i,o,s,a),c++}for(;c<=p&&c<=d;){const r=e[p],c=t[d]=a?qr(t[d]):Wr(t[d]);if(!Ur(r,c))break;f(r,c,n,null,l,i,o,s,a),p--,d--}if(c>p){if(c<=d){const e=d+1,p=ed)for(;c<=p;)U(e[c],l,i,!0),c++;else{const h=c,g=c,m=new Map;for(c=g;c<=d;c++){const e=t[c]=a?qr(t[c]):Wr(t[c]);null!=e.key&&m.set(e.key,c)}let v,y=0;const w=d-g+1;let b=!1,k=0;const x=new Array(w);for(c=0;c ${e} An error occurred:
\n":"'+(n?e:qi(e,!0))+"
\n"}blockquote(e){return`"+(n?e:qi(e,!0))+"
\n${e}
\n`}html(e){return e}heading(e,t,n,r){return this.options.headerIds?`
\n":"
\n"}list(e,t,n){const r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+""+r+">\n"}listitem(e){return`\n\n"+e+"\n"+t+"
\n"}tablerow(e){return`\n${e} \n`}tablecell(e,t){const n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`${n}>\n`}strong(e){return`${e}`}em(e){return`${e}`}codespan(e){return`${e}
`}br(){return this.options.xhtml?"
":"
"}del(e){return`${e}`}link(e,t,n){if(null===(e=Yi(this.options.sanitize,this.options.baseUrl,e)))return n;let r='"+n+"",r}image(e,t,n){if(null===(e=Yi(this.options.sanitize,this.options.baseUrl,e)))return n;let r=`":">",r}text(e){return e}}class wo{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,t,n){return""+n}image(e,t,n){return""+n}br(){return""}}class bo{constructor(){this.seen={}}serialize(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(e,t){let n=e,r=0;if(this.seen.hasOwnProperty(n)){r=this.seen[e];do{r++,n=e+"-"+r}while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=r,this.seen[n]=0),n}slug(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)}}class ko{constructor(e){this.options=e||Fi,this.options.renderer=this.options.renderer||new yo,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new wo,this.slugger=new bo}static parse(e,t){return new ko(t).parse(e)}static parseInline(e,t){return new ko(t).parseInline(e)}parse(e){let t,n,r,l,i,o,s,a,c,u,p,d,h,f,g,m,v,y,w,b=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],k="";const x=e.length;for(t=0;t
"+qi(e.message+"",!0)+"
";throw e}try{const n=vo.lex(e,t);if(t.walkTokens){if(t.async)return Promise.all(xo.walkTokens(n,t.walkTokens)).then((()=>ko.parse(n,t))).catch(r);xo.walkTokens(n,t.walkTokens)}return ko.parse(n,t)}catch(e){r(e)}}xo.options=xo.setOptions=function(e){var t;return io(xo.defaults,e),t=xo.defaults,Fi=t,xo},xo.getDefaults=function(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}},xo.defaults=Fi,xo.use=function(){const e=xo.defaults.extensions||{renderers:{},childTokens:{}};for(var t=arguments.length,n=new Array(t),r=0;r
"+qi(e.message+"",!0)+"";throw e}},xo.Parser=ko,xo.parser=ko.parse,xo.Renderer=yo,xo.TextRenderer=wo,xo.Lexer=vo,xo.lexer=vo.lex,xo.Tokenizer=po,xo.Slugger=bo,xo.parse=xo;const _o=/\$.*?\$/,$o=/^\$(.*?)\$/,Co=/^(?:\s{0,3})\$\$((?:[^\n]|\n[^\n])+?)\n{0,1}\$\$/,So=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.replace(/:(.+?):/g,((e,n)=>t[n]?`