diff --git a/assets/js/theme.min.js b/assets/js/theme.min.js index abc26b60..2c409790 100644 --- a/assets/js/theme.min.js +++ b/assets/js/theme.min.js @@ -1,3 +1,3 @@ -"use strict";function _objectDestructuringEmpty(obj){if(obj==null)throw new TypeError("Cannot destructure undefined")}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it.return!=null)it.return()}finally{if(didErr)throw err}}}}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i.nested-item"),function($nestedItem){$nestedItem.addEventListener("click",function(){this.parentNode.querySelector(".sub-menu").classList.toggle("open");this.querySelector(".dropdown-icon").classList.toggle("open")})})}},{key:"initSwitchTheme",value:function initSwitchTheme(){var _this4=this;this.util.forEach(document.getElementsByClassName("theme-switch"),function($themeSwitch){$themeSwitch.addEventListener("click",function(){document.body.setAttribute("data-theme",document.body.getAttribute("data-theme")==="dark"?"light":"dark");_this4.isDark=!_this4.isDark;window.localStorage&&localStorage.setItem("theme",_this4.isDark?"dark":"light");var _iterator=_createForOfIteratorHelper(_this4.switchThemeEventSet),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var event=_step.value;event()}}catch(err){_iterator.e(err)}finally{_iterator.f()}},false)})}},{key:"initSearch",value:function initSearch(){var _this5=this;var searchConfig=this.config.search;var isMobile=this.util.isMobile();if(!searchConfig||isMobile&&this._searchMobileOnce||!isMobile&&this._searchDesktopOnce){return}var maxResultLength=searchConfig.maxResultLength||10;var snippetLength=searchConfig.snippetLength||50;var highlightTag=searchConfig.highlightTag||"em";var suffix=isMobile?"mobile":"desktop";var $header=document.getElementById("header-".concat(suffix));var $searchInput=document.getElementById("search-input-".concat(suffix));var $searchToggle=document.getElementById("search-toggle-".concat(suffix));var $searchLoading=document.getElementById("search-loading-".concat(suffix));var $searchClear=document.getElementById("search-clear-".concat(suffix));if(isMobile){this._searchMobileOnce=true;$searchInput.addEventListener("focus",function(){_this5.disableScrollEvent=true;document.body.classList.add("blur");$header.classList.add("open")},false);document.getElementById("search-cancel-mobile").addEventListener("click",function(){_this5.disableScrollEvent=false;$header.classList.remove("open");document.body.classList.remove("blur");document.getElementById("menu-toggle-mobile").classList.remove("active");document.getElementById("menu-mobile").classList.remove("active");$searchLoading.style.display="none";$searchClear.style.display="none";_this5._searchMobile&&_this5._searchMobile.autocomplete.setVal("")},false);$searchClear.addEventListener("click",function(){$searchClear.style.display="none";_this5._searchMobile&&_this5._searchMobile.autocomplete.setVal("")},false);this._searchMobileOnClickMask=this._searchMobileOnClickMask||function(){$header.classList.remove("open");$searchLoading.style.display="none";$searchClear.style.display="none";_this5._searchMobile&&_this5._searchMobile.autocomplete.setVal("")};this.clickMaskEventSet.add(this._searchMobileOnClickMask)}else{this._searchDesktopOnce=true;$searchToggle.addEventListener("click",function(){document.body.classList.add("blur");$header.classList.add("open");$searchInput.focus()},false);$searchClear.addEventListener("click",function(){$searchClear.style.display="none";_this5._searchDesktop&&_this5._searchDesktop.autocomplete.setVal("")},false);this._searchDesktopOnClickMask=this._searchDesktopOnClickMask||function(){$header.classList.remove("open");$searchLoading.style.display="none";$searchClear.style.display="none";_this5._searchDesktop&&_this5._searchDesktop.autocomplete.setVal("")};this.clickMaskEventSet.add(this._searchDesktopOnClickMask)}$searchInput.addEventListener("input",function(){if($searchInput.value==="")$searchClear.style.display="none";else $searchClear.style.display="inline"},false);var initAutosearch=function initAutosearch(){var autosearch=autocomplete("#search-input-".concat(suffix),{hint:false,autoselect:true,dropdownMenuContainer:"#search-dropdown-".concat(suffix),clearOnSelected:true,cssClasses:{noPrefix:true},debug:true},{name:"search",source:function source(query,callback){$searchLoading.style.display="inline";$searchClear.style.display="none";var finish=function finish(results){$searchLoading.style.display="none";$searchClear.style.display="inline";callback(results)};if(searchConfig.type==="lunr"){var search=function search(){if(lunr.queryHandler){query=lunr.queryHandler(query)}var results={};_this5._index.search(query).forEach(function(_ref){var ref=_ref.ref,metadata=_ref.matchData.metadata;var matchData=_this5._indexData[ref];var uri=matchData.uri,title=matchData.title,context=matchData.content;if(results[uri]){return}var position=0;Object.values(metadata).forEach(function(_ref2){var content=_ref2.content;if(content){var matchPosition=content.position[0][0];if(matchPosition0){position+=context.substr(position,20).lastIndexOf(" ")+1;context="..."+context.substr(position,snippetLength)}else{context=context.substr(0,snippetLength)}Object.keys(metadata).forEach(function(key){title=title.replace(new RegExp("(".concat(key,")"),"gi"),"<".concat(highlightTag,">$1"));context=context.replace(new RegExp("(".concat(key,")"),"gi"),"<".concat(highlightTag,">$1"))});results[uri]={uri:uri,title:title,date:matchData.date,context:context}});return Object.values(results).slice(0,maxResultLength)};if(!_this5._index){fetch(searchConfig.lunrIndexURL).then(function(response){return response.json()}).then(function(data){var indexData={};_this5._index=lunr(function(){var _this6=this;if(searchConfig.lunrLanguageCode)this.use(lunr[searchConfig.lunrLanguageCode]);this.ref("objectID");this.field("title",{boost:50});this.field("tags",{boost:20});this.field("categories",{boost:20});this.field("content",{boost:10});this.metadataWhitelist=["position"];data.forEach(function(record){indexData[record.objectID]=record;_this6.add(record)})});_this5._indexData=indexData;finish(search())}).catch(function(err){console.error(err);finish([])})}else finish(search())}else if(searchConfig.type==="algolia"){_this5._algoliaIndex=_this5._algoliaIndex||algoliasearch(searchConfig.algoliaAppID,searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);_this5._algoliaIndex.search(query,{offset:0,length:maxResultLength*8,attributesToHighlight:["title"],attributesToSnippet:["content:".concat(snippetLength)],highlightPreTag:"<".concat(highlightTag,">"),highlightPostTag:"")}).then(function(_ref3){var hits=_ref3.hits;var results={};hits.forEach(function(_ref4){var uri=_ref4.uri,date=_ref4.date,title=_ref4._highlightResult.title,content=_ref4._snippetResult.content;if(results[uri]&&results[uri].context.length>content.value){return}results[uri]={uri:uri,title:title.value,date:date,context:content.value}});finish(Object.values(results).slice(0,maxResultLength))}).catch(function(err){console.error(err);finish([])})}},templates:{suggestion:function suggestion(_ref5){var title=_ref5.title,date=_ref5.date,context=_ref5.context;return"
".concat(title,"").concat(date,"
").concat(context,"
")},empty:function empty(_ref6){var query=_ref6.query;return"
".concat(searchConfig.noResultsFound,": \"").concat(query,"\"
")},footer:function footer(_ref7){_objectDestructuringEmpty(_ref7);var _ref8=searchConfig.type==="algolia"?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"},searchType=_ref8.searchType,icon=_ref8.icon,href=_ref8.href;return"")}}});autosearch.on("autocomplete:selected",function(_event,suggestion,_dataset,_context){window.location.assign(suggestion.uri)});if(isMobile){_this5._searchMobile=autosearch}else{_this5._searchDesktop=autosearch}};if(searchConfig.lunrSegmentitURL&&!document.getElementById("lunr-segmentit")){var script=document.createElement("script");script.id="lunr-segmentit";script.type="text/javascript";script.src=searchConfig.lunrSegmentitURL;script.async=true;if(script.readyState){script.onreadystatechange=function(){if(script.readyState=="loaded"||script.readyState=="complete"){script.onreadystatechange=null;initAutosearch()}}}else{script.onload=function(){initAutosearch()}}document.body.appendChild(script)}else{initAutosearch()}}},{key:"initDetails",value:function initDetails(){this.util.forEach(document.getElementsByClassName("details"),function($details){var $summary=$details.querySelector(".details-summary");$summary.addEventListener("click",function(){$details.classList.toggle("open")},false)})}},{key:"initLightGallery",value:function initLightGallery(){this.config.lightGallery&&lightGallery(document.getElementById("content"),this.config.lightGallery)}},{key:"initHighlight",value:function initHighlight(){var _this7=this;this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function($preChroma){var $chroma=document.createElement("div");$chroma.className=$preChroma.className;var $table=document.createElement("table");$chroma.appendChild($table);var $tbody=document.createElement("tbody");$table.appendChild($tbody);var $tr=document.createElement("tr");$tbody.appendChild($tr);var $td=document.createElement("td");$tr.appendChild($td);$preChroma.parentElement.replaceChild($chroma,$preChroma);$td.appendChild($preChroma)});this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function($chroma){var $codeElements=$chroma.querySelectorAll("pre.chroma > code");if($codeElements.length){var $code=$codeElements[$codeElements.length-1];var $header=document.createElement("div");$header.className="code-header "+$code.className.toLowerCase();var $title=document.createElement("span");$title.classList.add("code-title");$title.insertAdjacentHTML("afterbegin","");$title.addEventListener("click",function(){$chroma.classList.toggle("open")},false);$header.appendChild($title);var $ellipses=document.createElement("span");$ellipses.insertAdjacentHTML("afterbegin","");$ellipses.classList.add("ellipses");$ellipses.addEventListener("click",function(){$chroma.classList.add("open")},false);$header.appendChild($ellipses);if(_this7.config.code.editable){var $edit=document.createElement("span");$edit.classList.add("edit");$edit.insertAdjacentHTML("afterbegin",""));$edit.addEventListener("click",function(){var $iconKey=$edit.querySelector(".fa-key");var $iconLock=$edit.querySelector(".fa-lock");var $preChromas=$edit.parentElement.parentElement.querySelectorAll("pre.chroma");var $preChroma=$preChromas.length===2?$preChromas[1]:$preChromas[0];if($iconKey){$iconKey.classList.add("fa-lock");$iconKey.classList.remove("fa-key");$iconKey.title=_this7.config.code.editLockTitle;$preChroma.setAttribute("contenteditable",true);$preChroma.focus()}else{$iconLock.classList.add("fa-key");$iconLock.classList.remove("fa-lock");$iconLock.title=_this7.config.code.editUnLockTitle;$preChroma.setAttribute("contenteditable",false);$preChroma.blur()}},false);$header.appendChild($edit)}if(_this7.config.code.copyTitle){var $copy=document.createElement("span");$copy.insertAdjacentHTML("afterbegin","");$copy.classList.add("copy");var code=$code.innerText;if(_this7.config.code.maxShownLines<0||code.split("\n").length<_this7.config.code.maxShownLines+2){$chroma.classList.add("open")}$copy.title=_this7.config.code.copyTitle;$copy.addEventListener("click",function(){navigator.clipboard.writeText(code).then(function(){_this7.util.animateCSS($code,"animate__flash")},function(){console.error("Clipboard write failed!","Your browser does not support clipboard API!")})},false);$header.appendChild($copy)}$chroma.insertBefore($header,$chroma.firstChild)}})}},{key:"initTable",value:function initTable(){this.util.forEach(document.querySelectorAll(".content table"),function($table){var $wrapper=document.createElement("div");$wrapper.className="table-wrapper";$table.parentElement.replaceChild($wrapper,$table);$wrapper.appendChild($table)})}},{key:"initHeaderLink",value:function initHeaderLink(){for(var num=1;num<=6;num++){this.util.forEach(document.querySelectorAll(".single .content > h"+num),function($header){$header.classList.add("header-link");$header.insertAdjacentHTML("afterbegin",""))})}}},{key:"initToc",value:function initToc(){var _this8=this;var $tocCore=document.getElementById("TableOfContents");if($tocCore===null){return}if(document.getElementById("toc-static").getAttribute("date-kept")==="true"||this.util.isTocStatic()){var $tocContentStatic=document.getElementById("toc-content-static");if($tocCore.parentElement!==$tocContentStatic){$tocCore.parentElement.removeChild($tocCore);$tocContentStatic.appendChild($tocCore)}this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var $tocContentAuto=document.getElementById("toc-content-auto");if($tocCore.parentElement!==$tocContentAuto){$tocCore.parentElement.removeChild($tocCore);$tocContentAuto.appendChild($tocCore)}var $toc=document.getElementById("toc-auto");$toc.style.visibility="visible";this.util.animateCSS($toc,["animate__fadeIn","animate__faster"],true);$toc.style.marginTop=document.querySelector(".single-title").clientHeight+document.querySelector(".post-meta").clientHeight+"px";$toc.style.marginBottom=document.getElementById("post-footer").clientHeight+"px";var $tocLinkElements=$tocCore.querySelectorAll("a:first-child");var $tocLiElements=$tocCore.getElementsByTagName("li");var $headerLinkElements=document.getElementsByClassName("header-link");var headerIsFixed=document.body.getAttribute("data-header-desktop")!=="normal";var headerHeight=document.getElementById("header-desktop").offsetHeight;this._tocOnScroll=this._tocOnScroll||function(){var $comments=document.getElementById("comments");if($comments){$toc.style.marginBottom=document.getElementById("post-footer").clientHeight+$comments.clientHeight+"px"}_this8.util.forEach($tocLinkElements,function($tocLink){$tocLink.classList.remove("active")});_this8.util.forEach($tocLiElements,function($tocLi){$tocLi.classList.remove("has-active")});var INDEX_SPACING=20+(headerIsFixed?headerHeight:0);var activeTocIndex=$headerLinkElements.length-1;for(var i=0;i<$headerLinkElements.length-1;i++){var thisTop=$headerLinkElements[i].getBoundingClientRect().top;var nextTop=$headerLinkElements[i+1].getBoundingClientRect().top;if(i==0&&thisTop>INDEX_SPACING||thisTop<=INDEX_SPACING&&nextTop>INDEX_SPACING){activeTocIndex=i;break}}if(activeTocIndex!==-1){$tocLinkElements[activeTocIndex].classList.add("active");var $parent=$tocLinkElements[activeTocIndex].parentElement;while($parent!==$tocCore){$parent.classList.add("has-active");$parent=$parent.parentElement.parentElement}}};this._tocOnScroll();this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initTocListener",value:function initTocListener(){var _document$querySelect,_this9=this;var $toc=document.getElementById("toc-auto");var $tocContentAuto=document.getElementById("toc-content-auto");(_document$querySelect=document.querySelector("#toc-auto>.toc-title"))===null||_document$querySelect===void 0?void 0:_document$querySelect.addEventListener("click",function(){var animation=["animate__faster"];var tocHidden=$toc.classList.contains("toc-hidden");animation.push(tocHidden?"animate__fadeIn":"animate__fadeOut");$tocContentAuto.classList.remove(tocHidden?"animate__fadeOut":"animate__fadeIn");_this9.util.animateCSS($tocContentAuto,animation,true);$toc.classList.toggle("toc-hidden")},false)}},{key:"initMath",value:function initMath(){if(this.config.math){renderMathInElement(document.body,this.config.math)}}},{key:"initMermaid",value:function initMermaid(){var _this10=this;this._mermaidOnSwitchTheme=this._mermaidOnSwitchTheme||function(){var $mermaidElements=document.getElementsByClassName("mermaid");if($mermaidElements.length){var _this10$config$mermai;var themes=(_this10$config$mermai=_this10.config.mermaid.themes)!==null&&_this10$config$mermai!==void 0?_this10$config$mermai:["neutral","dark"];mermaid.initialize({startOnLoad:false,theme:_this10.isDark?themes[1]:themes[0],securityLevel:"loose"});_this10.util.forEach($mermaidElements,function($mermaid){mermaid.render("svg-"+$mermaid.id,_this10.data[$mermaid.id],function(svgCode){$mermaid.innerHTML=svgCode},$mermaid)})}};this.switchThemeEventSet.add(this._mermaidOnSwitchTheme);this._mermaidOnSwitchTheme()}},{key:"initEcharts",value:function initEcharts(){var _this11=this;this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){_this11._echartsArr=_this11._echartsArr||[];for(var i=0;i<_this11._echartsArr.length;i++){_this11._echartsArr[i].dispose()}_this11._echartsArr=[];_this11.util.forEach(document.getElementsByClassName("echarts"),function($echarts){var chart=echarts.init($echarts,_this11.isDark?"dark":"macarons",{renderer:"svg"});chart.setOption(JSON.parse(_this11.data[$echarts.id]));_this11._echartsArr.push(chart)})};this.switchThemeEventSet.add(this._echartsOnSwitchTheme);this._echartsOnSwitchTheme();this._echartsOnResize=this._echartsOnResize||function(){for(var i=0;i<_this11._echartsArr.length;i++){_this11._echartsArr[i].resize()}};this.resizeEventSet.add(this._echartsOnResize)}},{key:"initMapbox",value:function initMapbox(){var _this12=this;if(this.config.mapbox){mapboxgl.accessToken=this.config.mapbox.accessToken;mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);this._mapboxArr=this._mapboxArr||[];this.util.forEach(document.getElementsByClassName("mapbox"),function($mapbox){var _this12$data$$mapbox$=_this12.data[$mapbox.id],lng=_this12$data$$mapbox$.lng,lat=_this12$data$$mapbox$.lat,zoom=_this12$data$$mapbox$.zoom,lightStyle=_this12$data$$mapbox$.lightStyle,darkStyle=_this12$data$$mapbox$.darkStyle,marked=_this12$data$$mapbox$.marked,navigation=_this12$data$$mapbox$.navigation,geolocate=_this12$data$$mapbox$.geolocate,scale=_this12$data$$mapbox$.scale,fullscreen=_this12$data$$mapbox$.fullscreen;var mapbox=new mapboxgl.Map({container:$mapbox,center:[lng,lat],zoom:zoom,minZoom:0.2,style:_this12.isDark?darkStyle:lightStyle,attributionControl:false});if(marked){new mapboxgl.Marker().setLngLat([lng,lat]).addTo(mapbox)}if(navigation){mapbox.addControl(new mapboxgl.NavigationControl,"bottom-right")}if(geolocate){mapbox.addControl(new mapboxgl.GeolocateControl({positionOptions:{enableHighAccuracy:true},showUserLocation:true,trackUserLocation:true}),"bottom-right")}if(scale){mapbox.addControl(new mapboxgl.ScaleControl)}if(fullscreen){mapbox.addControl(new mapboxgl.FullscreenControl)}mapbox.addControl(new MapboxLanguage);_this12._mapboxArr.push(mapbox)});this._mapboxOnSwitchTheme=this._mapboxOnSwitchTheme||function(){_this12.util.forEach(_this12._mapboxArr,function(mapbox){var $mapbox=mapbox.getContainer();var _this12$data$$mapbox$2=_this12.data[$mapbox.id],lightStyle=_this12$data$$mapbox$2.lightStyle,darkStyle=_this12$data$$mapbox$2.darkStyle;mapbox.setStyle(_this12.isDark?darkStyle:lightStyle);mapbox.addControl(new MapboxLanguage)})};this.switchThemeEventSet.add(this._mapboxOnSwitchTheme)}}},{key:"initTypeit",value:function initTypeit(){var _this13=this;if(this.config.typeit){var typeitConfig=this.config.typeit;var speed=typeitConfig.speed||100;var cursorSpeed=typeitConfig.cursorSpeed||1000;var cursorChar=typeitConfig.cursorChar||"|";Object.values(typeitConfig.data).forEach(function(group){var typeone=function typeone(i){var id=group[i];var instance=new TypeIt("#".concat(id),{strings:_this13.data[id],speed:speed,lifeLike:true,cursorSpeed:cursorSpeed,cursorChar:cursorChar,waitUntilVisible:true,afterComplete:function afterComplete(){if(i===group.length-1&&typeitConfig.duration>=0){window.setTimeout(function(){instance.destroy()},typeitConfig.duration);return}instance.destroy();typeone(i+1)}}).go()};typeone(0)})}}},{key:"initCommentLightGallery",value:function initCommentLightGallery(comments,images){if(!this.config.lightGallery){return}document.querySelectorAll(comments).forEach(function($content){var $imgs=$content.querySelectorAll(images+":not([lightgallery-loaded])");$imgs.forEach(function($img){$img.setAttribute("lightgallery-loaded","");var $link=document.createElement("a");$link.setAttribute("class","comment-lightgallery");$link.setAttribute("href",$img.src);$link.append($img.cloneNode());$img.replaceWith($link)});if($imgs.length){lightGallery($content,{selector:".comment-lightgallery",actualSize:false,hideBarsDelay:2000,speed:400})}})}},{key:"initComment",value:function initComment(){var _this14=this;if(!this.config.comment){return}if(this.config.comment.artalk){var artalk=new Artalk(this.config.comment.artalk);artalk.setDarkMode(this.isDark);this.switchThemeEventSet.add(function(){artalk.setDarkMode(_this14.isDark)});artalk.on("comments-loaded",function(){_this14.config.comment.artalk.lightgallery&&_this14.initCommentLightGallery(".atk-comment .atk-content","img:not([atk-emoticon])")});return artalk}if(this.config.comment.gitalk){this.config.comment.gitalk.body=decodeURI(window.location.href);var gitalk=new Gitalk(this.config.comment.gitalk);gitalk.render("gitalk");return gitalk}if(this.config.comment.valine){return new Valine(this.config.comment.valine)}if(this.config.comment.waline){return Waline.init(this.config.comment.waline)}if(this.config.comment.utterances){var utterancesConfig=this.config.comment.utterances;var script=document.createElement("script");script.src="https://utteranc.es/client.js";script.type="text/javascript";script.setAttribute("repo",utterancesConfig.repo);script.setAttribute("issue-term",utterancesConfig.issueTerm);if(utterancesConfig.label)script.setAttribute("label",utterancesConfig.label);script.setAttribute("theme",this.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme);script.crossOrigin="anonymous";script.async=true;document.getElementById("utterances").appendChild(script);this._utterancesOnSwitchTheme=this._utterancesOnSwitchTheme||function(){var _document$querySelect2;var message={type:"set-theme",theme:_this14.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme};(_document$querySelect2=document.querySelector(".utterances-frame"))===null||_document$querySelect2===void 0?void 0:_document$querySelect2.contentWindow.postMessage(message,"https://utteranc.es")};this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);return}if(this.config.comment.twikoo){var twikooConfig=this.config.comment.twikoo;if(twikooConfig.lightgallery){twikooConfig.onCommentLoaded=function(){_this14.initCommentLightGallery(".tk-comments .tk-content","img:not(.tk-owo-emotion)")}}twikoo.init(twikooConfig);if(twikooConfig.commentCount){twikoo.getCommentsCount({envId:twikooConfig.envId,region:twikooConfig.region,urls:[window.location.pathname],includeReply:false}).then(function(response){var twikooCommentCount=document.getElementById("twikoo-comment-count");if(twikooCommentCount)twikooCommentCount.innerHTML=response[0].count})}return}if(this.config.comment.giscus){var giscusConfig=this.config.comment.giscus;this._giscusOnSwitchTheme=this._giscusOnSwitchTheme||function(){var _document$querySelect3;var message={setConfig:{theme:_this14.isDark?giscusConfig.darkTheme:giscusConfig.lightTheme}};(_document$querySelect3=document.querySelector(".giscus-frame"))===null||_document$querySelect3===void 0?void 0:_document$querySelect3.contentWindow.postMessage({giscus:message},"https://giscus.app")};this.switchThemeEventSet.add(this._giscusOnSwitchTheme);var _this=this;_this.giscus2parentMsg=window.addEventListener("message",function(event){var $script=document.querySelector("#giscus>script");if($script){_this._giscusOnSwitchTheme();$script.parentElement.removeChild($script)}window.removeEventListener("message",_this.giscus2parentMsg)});return}}},{key:"initCookieconsent",value:function initCookieconsent(){this.config.cookieconsent&&cookieconsent.initialise(this.config.cookieconsent)}},{key:"initSiteTime",value:function initSiteTime(){var _this15=this;if(this.config.siteTime){this.siteTime=setInterval(this.getSiteTime,500);document.addEventListener("visibilitychange",function(){if(document.hidden){return clearInterval(_this15.siteTime)}_this15.siteTime=setInterval(_this15.getSiteTime,500)},false)}}},{key:"initServiceWorker",value:function initServiceWorker(){if(this.config.enablePWA&&"serviceWorker"in navigator){navigator.serviceWorker.register("/service-worker.min.js",{scope:"/"}).then(function(registration){}).catch(function(error){console.error("error: ",error)});navigator.serviceWorker.ready.then(function(registration){})}}},{key:"initWatermark",value:function initWatermark(){var _this$config$watermar;((_this$config$watermar=this.config.watermark)===null||_this$config$watermar===void 0?void 0:_this$config$watermar.enable)&&new Watermark({content:this.config.watermark.content||"\"FixIt FixIt Theme",appendTo:this.config.watermark.appendto||".wrapper>main",opacity:this.config.watermark.opacity,width:this.config.watermark.width,height:this.config.watermark.height,rowSpacing:this.config.watermark.rowspacing,colSpacing:this.config.watermark.colspacing,rotate:this.config.watermark.rotate,fontSize:this.config.watermark.fontsize,fontFamily:this.config.watermark.fontfamily})}},{key:"initPangu",value:function initPangu(){this.config.enablePangu&&pangu.autoSpacingPage()}},{key:"initFixItDecryptor",value:function initFixItDecryptor(){var _this16=this,_this$config$encrypti,_this$config$encrypti2;var $tocNodes=document.querySelectorAll("#toc-auto>.d-none, #toc-static.d-none");this.decryptor=new FixItDecryptor({decrypted:function decrypted(){_this16.initTwemoji();_this16.initDetails();_this16.initLightGallery();_this16.initHighlight();_this16.initTable();_this16.initHeaderLink();_this16.initMath();_this16.initMermaid();_this16.initEcharts();_this16.initTypeit();_this16.initMapbox();_this16.util.forEach($tocNodes,function($element){$element.classList.remove("d-none")});_this16.initToc();_this16.initTocListener();_this16.initPangu()},reset:function reset(){_this16.util.forEach($tocNodes,function($element){$element.classList.add("d-none")})}});if((_this$config$encrypti=this.config.encryption)!==null&&_this$config$encrypti!==void 0&&_this$config$encrypti.shortcode){this.decryptor.addEventListener("decrypted",function(){_this16.decryptor.initShortcodes()});this.decryptor.initShortcodes()}((_this$config$encrypti2=this.config.encryption)===null||_this$config$encrypti2===void 0?void 0:_this$config$encrypti2.all)&&this.decryptor.init()}},{key:"initMDevtools",value:function initMDevtools(){var _this$config,_this17=this;var type=(_this$config=this.config)===null||_this$config===void 0?void 0:_this$config.mDevtools;if(typeof window.orientation==="undefined"){return}if(type==="vConsole"){var vConsole=new VConsole({target:".widgets",theme:this.isDark?"dark":"light"});this._vConsoleOnSwitchTheme=this._vConsoleOnSwitchTheme||function(){vConsole.setOption("theme",_this17.isDark?"dark":"light")};this.switchThemeEventSet.add(this._vConsoleOnSwitchTheme)}if(type==="eruda"){eruda.init({defaults:{theme:this.isDark?"Dark":"Light"}});this._erudaOnSwitchTheme=this._erudaOnSwitchTheme||function(){eruda.util.evalCss.setTheme(_this17.isDark?"Dark":"Light")};this.switchThemeEventSet.add(this._erudaOnSwitchTheme)}}},{key:"onScroll",value:function onScroll(){var _this18=this;var $headers=[];if(document.body.getAttribute("data-header-desktop")==="auto"){$headers.push(document.getElementById("header-desktop"))}if(document.body.getAttribute("data-header-mobile")==="auto"){$headers.push(document.getElementById("header-mobile"))}if(document.getElementById("comments")){var $viewComments=document.getElementById("view-comments");$viewComments.href="#comments";$viewComments.style.display="block"}var $fixedButtons=document.getElementById("fixed-buttons");var ACCURACY=20,MINIMUM=100;window.addEventListener("scroll",function(event){if(_this18.disableScrollEvent){event.preventDefault();return}var $mask=document.getElementById("mask");_this18.newScrollTop=_this18.util.getScrollTop();var scroll=_this18.newScrollTop-_this18.oldScrollTop;var isMobile=_this18.util.isMobile();_this18.util.forEach($headers,function($header){if(scroll>ACCURACY){$header.classList.remove("animate__fadeInDown");_this18.util.animateCSS($header,["animate__fadeOutUp","animate__faster"],true);$mask.click()}else if(scroll<-ACCURACY){$header.classList.remove("animate__fadeOutUp");_this18.util.animateCSS($header,["animate__fadeInDown","animate__faster"],true);$mask.click()}});if(_this18.newScrollTop>MINIMUM){if(isMobile&&scroll>ACCURACY){$fixedButtons.classList.remove("animate__fadeIn");_this18.util.animateCSS($fixedButtons,["animate__fadeOut","animate__faster"],true)}else if(!isMobile||scroll<-ACCURACY){$fixedButtons.style.display="block";$fixedButtons.classList.remove("animate__fadeOut");_this18.util.animateCSS($fixedButtons,["animate__fadeIn","animate__faster"],true)}}else{if(!isMobile){$fixedButtons.classList.remove("animate__fadeIn");_this18.util.animateCSS($fixedButtons,["animate__fadeOut","animate__faster"],true)}$fixedButtons.style.display="none"}var _iterator2=_createForOfIteratorHelper(_this18.scrollEventSet),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var _event2=_step2.value;_event2()}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}_this18.oldScrollTop=_this18.newScrollTop},false)}},{key:"onResize",value:function onResize(){var _this19=this;var resizeBefore=this.util.isMobile();window.addEventListener("resize",function(){if(!_this19._resizeTimeout){_this19._resizeTimeout=window.setTimeout(function(){_this19._resizeTimeout=null;var _iterator3=_createForOfIteratorHelper(_this19.resizeEventSet),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var event=_step3.value;event()}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}_this19.initToc();_this19.initMermaid();_this19.initSearch();var isMobile=_this19.util.isMobile();if(isMobile!==resizeBefore){document.getElementById("mask").click();resizeBefore=isMobile}},100)}},false)}},{key:"onClickMask",value:function onClickMask(){var _this20=this;document.getElementById("mask").addEventListener("click",function(){if(!document.body.classList.contains("blur")){return}var _iterator4=_createForOfIteratorHelper(_this20.clickMaskEventSet),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var event=_step4.value;event()}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}_this20.disableScrollEvent=false;document.body.classList.remove("blur")},false)}},{key:"init",value:function init(){var _this21=this;try{var _this$config$encrypti3;if(this.config.encryption){this.initFixItDecryptor()}else if(!((_this$config$encrypti3=this.config.encryption)!==null&&_this$config$encrypti3!==void 0&&_this$config$encrypti3.all)){this.initTwemoji();this.initDetails();this.initLightGallery();this.initHighlight();this.initTable();this.initHeaderLink();this.initMath();this.initMermaid();this.initEcharts();this.initTypeit();this.initMapbox();this.initPangu()}this.initSVGIcon();this.initMenu();this.initSwitchTheme();this.initSearch();this.initCookieconsent();this.initSiteTime();this.initServiceWorker();this.initWatermark();this.initMDevtools();window.setTimeout(function(){var _this21$config$encryp;_this21.initComment();if(!((_this21$config$encryp=_this21.config.encryption)!==null&&_this21$config$encryp!==void 0&&_this21$config$encryp.all)){_this21.initToc();_this21.initTocListener()}_this21.onScroll();_this21.onResize();_this21.onClickMask()},100)}catch(err){console.error(err)}}}]);return FixIt}();var themeInit=function themeInit(){window.fixit=new FixIt;window.fixit.init()};if(document.readyState!=="loading"){themeInit()}else{document.addEventListener("DOMContentLoaded",themeInit,false)} +"use strict";function _objectDestructuringEmpty(obj){if(obj==null)throw new TypeError("Cannot destructure undefined")}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it.return!=null)it.return()}finally{if(didErr)throw err}}}}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i.nested-item"),function($nestedItem){$nestedItem.addEventListener("click",function(){this.parentNode.querySelector(".sub-menu").classList.toggle("open");this.querySelector(".dropdown-icon").classList.toggle("open")})})}},{key:"initSwitchTheme",value:function initSwitchTheme(){var _this4=this;this.util.forEach(document.getElementsByClassName("theme-switch"),function($themeSwitch){$themeSwitch.addEventListener("click",function(){document.body.setAttribute("data-theme",document.body.getAttribute("data-theme")==="dark"?"light":"dark");_this4.isDark=!_this4.isDark;window.localStorage&&localStorage.setItem("theme",_this4.isDark?"dark":"light");var _iterator=_createForOfIteratorHelper(_this4.switchThemeEventSet),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var event=_step.value;event()}}catch(err){_iterator.e(err)}finally{_iterator.f()}},false)})}},{key:"initSearch",value:function initSearch(){var _this5=this;var searchConfig=this.config.search;var isMobile=this.util.isMobile();if(!searchConfig||isMobile&&this._searchMobileOnce||!isMobile&&this._searchDesktopOnce){return}var maxResultLength=searchConfig.maxResultLength||10;var snippetLength=searchConfig.snippetLength||50;var highlightTag=searchConfig.highlightTag||"em";var suffix=isMobile?"mobile":"desktop";var $header=document.getElementById("header-".concat(suffix));var $searchInput=document.getElementById("search-input-".concat(suffix));var $searchToggle=document.getElementById("search-toggle-".concat(suffix));var $searchLoading=document.getElementById("search-loading-".concat(suffix));var $searchClear=document.getElementById("search-clear-".concat(suffix));if(isMobile){this._searchMobileOnce=true;$searchInput.addEventListener("focus",function(){_this5.disableScrollEvent=true;document.body.classList.add("blur");$header.classList.add("open")},false);document.getElementById("search-cancel-mobile").addEventListener("click",function(){_this5.disableScrollEvent=false;$header.classList.remove("open");document.body.classList.remove("blur");document.getElementById("menu-toggle-mobile").classList.remove("active");document.getElementById("menu-mobile").classList.remove("active");$searchLoading.style.display="none";$searchClear.style.display="none";_this5._searchMobile&&_this5._searchMobile.autocomplete.setVal("")},false);$searchClear.addEventListener("click",function(){$searchClear.style.display="none";_this5._searchMobile&&_this5._searchMobile.autocomplete.setVal("")},false);this._searchMobileOnClickMask=this._searchMobileOnClickMask||function(){$header.classList.remove("open");$searchLoading.style.display="none";$searchClear.style.display="none";_this5._searchMobile&&_this5._searchMobile.autocomplete.setVal("")};this.clickMaskEventSet.add(this._searchMobileOnClickMask)}else{this._searchDesktopOnce=true;$searchToggle.addEventListener("click",function(){document.body.classList.add("blur");$header.classList.add("open");$searchInput.focus()},false);$searchClear.addEventListener("click",function(){$searchClear.style.display="none";_this5._searchDesktop&&_this5._searchDesktop.autocomplete.setVal("")},false);this._searchDesktopOnClickMask=this._searchDesktopOnClickMask||function(){$header.classList.remove("open");$searchLoading.style.display="none";$searchClear.style.display="none";_this5._searchDesktop&&_this5._searchDesktop.autocomplete.setVal("")};this.clickMaskEventSet.add(this._searchDesktopOnClickMask)}$searchInput.addEventListener("input",function(){if($searchInput.value==="")$searchClear.style.display="none";else $searchClear.style.display="inline"},false);var initAutosearch=function initAutosearch(){var autosearch=autocomplete("#search-input-".concat(suffix),{hint:false,autoselect:true,dropdownMenuContainer:"#search-dropdown-".concat(suffix),clearOnSelected:true,cssClasses:{noPrefix:true},debug:true},{name:"search",source:function source(query,callback){$searchLoading.style.display="inline";$searchClear.style.display="none";var finish=function finish(results){$searchLoading.style.display="none";$searchClear.style.display="inline";callback(results)};if(searchConfig.type==="lunr"){var search=function search(){if(lunr.queryHandler){query=lunr.queryHandler(query)}var results={};_this5._index.search(query).forEach(function(_ref){var ref=_ref.ref,metadata=_ref.matchData.metadata;var matchData=_this5._indexData[ref];var uri=matchData.uri,title=matchData.title,context=matchData.content;if(results[uri]){return}var position=0;Object.values(metadata).forEach(function(_ref2){var content=_ref2.content;if(content){var matchPosition=content.position[0][0];if(matchPosition0){position+=context.substr(position,20).lastIndexOf(" ")+1;context="..."+context.substr(position,snippetLength)}else{context=context.substr(0,snippetLength)}Object.keys(metadata).forEach(function(key){title=title.replace(new RegExp("(".concat(key,")"),"gi"),"<".concat(highlightTag,">$1"));context=context.replace(new RegExp("(".concat(key,")"),"gi"),"<".concat(highlightTag,">$1"))});results[uri]={uri:uri,title:title,date:matchData.date,context:context}});return Object.values(results).slice(0,maxResultLength)};if(!_this5._index){fetch(searchConfig.lunrIndexURL).then(function(response){return response.json()}).then(function(data){var indexData={};_this5._index=lunr(function(){var _this6=this;if(searchConfig.lunrLanguageCode)this.use(lunr[searchConfig.lunrLanguageCode]);this.ref("objectID");this.field("title",{boost:50});this.field("tags",{boost:20});this.field("categories",{boost:20});this.field("content",{boost:10});this.metadataWhitelist=["position"];data.forEach(function(record){indexData[record.objectID]=record;_this6.add(record)})});_this5._indexData=indexData;finish(search())}).catch(function(err){console.error(err);finish([])})}else finish(search())}else if(searchConfig.type==="algolia"){_this5._algoliaIndex=_this5._algoliaIndex||algoliasearch(searchConfig.algoliaAppID,searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);_this5._algoliaIndex.search(query,{offset:0,length:maxResultLength*8,attributesToHighlight:["title"],attributesToSnippet:["content:".concat(snippetLength)],highlightPreTag:"<".concat(highlightTag,">"),highlightPostTag:"")}).then(function(_ref3){var hits=_ref3.hits;var results={};hits.forEach(function(_ref4){var uri=_ref4.uri,date=_ref4.date,title=_ref4._highlightResult.title,content=_ref4._snippetResult.content;if(results[uri]&&results[uri].context.length>content.value){return}results[uri]={uri:uri,title:title.value,date:date,context:content.value}});finish(Object.values(results).slice(0,maxResultLength))}).catch(function(err){console.error(err);finish([])})}},templates:{suggestion:function suggestion(_ref5){var title=_ref5.title,date=_ref5.date,context=_ref5.context;return"
".concat(title,"").concat(date,"
").concat(context,"
")},empty:function empty(_ref6){var query=_ref6.query;return"
".concat(searchConfig.noResultsFound,": \"").concat(query,"\"
")},footer:function footer(_ref7){_objectDestructuringEmpty(_ref7);var _ref8=searchConfig.type==="algolia"?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"},searchType=_ref8.searchType,icon=_ref8.icon,href=_ref8.href;return"")}}});autosearch.on("autocomplete:selected",function(_event,suggestion,_dataset,_context){window.location.assign(suggestion.uri)});if(isMobile){_this5._searchMobile=autosearch}else{_this5._searchDesktop=autosearch}};if(searchConfig.lunrSegmentitURL&&!document.getElementById("lunr-segmentit")){var script=document.createElement("script");script.id="lunr-segmentit";script.src=searchConfig.lunrSegmentitURL;script.async=true;if(script.readyState){script.onreadystatechange=function(){if(script.readyState=="loaded"||script.readyState=="complete"){script.onreadystatechange=null;initAutosearch()}}}else{script.onload=function(){initAutosearch()}}document.body.appendChild(script)}else{initAutosearch()}}},{key:"initDetails",value:function initDetails(){this.util.forEach(document.getElementsByClassName("details"),function($details){var $summary=$details.querySelector(".details-summary");$summary.addEventListener("click",function(){$details.classList.toggle("open")},false)})}},{key:"initLightGallery",value:function initLightGallery(){this.config.lightGallery&&lightGallery(document.getElementById("content"),this.config.lightGallery)}},{key:"initHighlight",value:function initHighlight(){var _this7=this;this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function($preChroma){var $chroma=document.createElement("div");$chroma.className=$preChroma.className;var $table=document.createElement("table");$chroma.appendChild($table);var $tbody=document.createElement("tbody");$table.appendChild($tbody);var $tr=document.createElement("tr");$tbody.appendChild($tr);var $td=document.createElement("td");$tr.appendChild($td);$preChroma.parentElement.replaceChild($chroma,$preChroma);$td.appendChild($preChroma)});this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function($chroma){var $codeElements=$chroma.querySelectorAll("pre.chroma > code");if($codeElements.length){var $code=$codeElements[$codeElements.length-1];var $header=document.createElement("div");$header.className="code-header "+$code.className.toLowerCase();var $title=document.createElement("span");$title.classList.add("code-title");$title.insertAdjacentHTML("afterbegin","");$title.addEventListener("click",function(){$chroma.classList.toggle("open")},false);$header.appendChild($title);var $ellipses=document.createElement("span");$ellipses.insertAdjacentHTML("afterbegin","");$ellipses.classList.add("ellipses");$ellipses.addEventListener("click",function(){$chroma.classList.add("open")},false);$header.appendChild($ellipses);if(_this7.config.code.editable){var $edit=document.createElement("span");$edit.classList.add("edit");$edit.insertAdjacentHTML("afterbegin",""));$edit.addEventListener("click",function(){var $iconKey=$edit.querySelector(".fa-key");var $iconLock=$edit.querySelector(".fa-lock");var $preChromas=$edit.parentElement.parentElement.querySelectorAll("pre.chroma");var $preChroma=$preChromas.length===2?$preChromas[1]:$preChromas[0];if($iconKey){$iconKey.classList.add("fa-lock");$iconKey.classList.remove("fa-key");$iconKey.title=_this7.config.code.editLockTitle;$preChroma.setAttribute("contenteditable",true);$preChroma.focus()}else{$iconLock.classList.add("fa-key");$iconLock.classList.remove("fa-lock");$iconLock.title=_this7.config.code.editUnLockTitle;$preChroma.setAttribute("contenteditable",false);$preChroma.blur()}},false);$header.appendChild($edit)}if(_this7.config.code.copyTitle){var $copy=document.createElement("span");$copy.insertAdjacentHTML("afterbegin","");$copy.classList.add("copy");var code=$code.innerText;if(_this7.config.code.maxShownLines<0||code.split("\n").length<_this7.config.code.maxShownLines+2){$chroma.classList.add("open")}$copy.title=_this7.config.code.copyTitle;$copy.addEventListener("click",function(){navigator.clipboard.writeText(code).then(function(){_this7.util.animateCSS($code,"animate__flash")},function(){console.error("Clipboard write failed!","Your browser does not support clipboard API!")})},false);$header.appendChild($copy)}$chroma.insertBefore($header,$chroma.firstChild)}})}},{key:"initTable",value:function initTable(){this.util.forEach(document.querySelectorAll(".content table"),function($table){var $wrapper=document.createElement("div");$wrapper.className="table-wrapper";$table.parentElement.replaceChild($wrapper,$table);$wrapper.appendChild($table)})}},{key:"initHeaderLink",value:function initHeaderLink(){for(var num=1;num<=6;num++){this.util.forEach(document.querySelectorAll(".single .content > h"+num),function($header){$header.classList.add("header-link");$header.insertAdjacentHTML("afterbegin",""))})}}},{key:"initToc",value:function initToc(){var _this8=this;var $tocCore=document.getElementById("TableOfContents");if($tocCore===null){return}if(document.getElementById("toc-static").getAttribute("date-kept")==="true"||this.util.isTocStatic()){var $tocContentStatic=document.getElementById("toc-content-static");if($tocCore.parentElement!==$tocContentStatic){$tocCore.parentElement.removeChild($tocCore);$tocContentStatic.appendChild($tocCore)}this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var $tocContentAuto=document.getElementById("toc-content-auto");if($tocCore.parentElement!==$tocContentAuto){$tocCore.parentElement.removeChild($tocCore);$tocContentAuto.appendChild($tocCore)}var $toc=document.getElementById("toc-auto");$toc.style.visibility="visible";this.util.animateCSS($toc,["animate__fadeIn","animate__faster"],true);$toc.style.marginTop=document.querySelector(".single-title").clientHeight+document.querySelector(".post-meta").clientHeight+"px";$toc.style.marginBottom=document.getElementById("post-footer").clientHeight+"px";var $tocLinkElements=$tocCore.querySelectorAll("a:first-child");var $tocLiElements=$tocCore.getElementsByTagName("li");var $headerLinkElements=document.getElementsByClassName("header-link");var headerIsFixed=document.body.getAttribute("data-header-desktop")!=="normal";var headerHeight=document.getElementById("header-desktop").offsetHeight;this._tocOnScroll=this._tocOnScroll||function(){var $comments=document.getElementById("comments");if($comments){$toc.style.marginBottom=document.getElementById("post-footer").clientHeight+$comments.clientHeight+"px"}_this8.util.forEach($tocLinkElements,function($tocLink){$tocLink.classList.remove("active")});_this8.util.forEach($tocLiElements,function($tocLi){$tocLi.classList.remove("has-active")});var INDEX_SPACING=20+(headerIsFixed?headerHeight:0);var activeTocIndex=$headerLinkElements.length-1;for(var i=0;i<$headerLinkElements.length-1;i++){var thisTop=$headerLinkElements[i].getBoundingClientRect().top;var nextTop=$headerLinkElements[i+1].getBoundingClientRect().top;if(i==0&&thisTop>INDEX_SPACING||thisTop<=INDEX_SPACING&&nextTop>INDEX_SPACING){activeTocIndex=i;break}}if(activeTocIndex!==-1){$tocLinkElements[activeTocIndex].classList.add("active");var $parent=$tocLinkElements[activeTocIndex].parentElement;while($parent!==$tocCore){$parent.classList.add("has-active");$parent=$parent.parentElement.parentElement}}};this._tocOnScroll();this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initTocListener",value:function initTocListener(){var _document$querySelect,_this9=this;var $toc=document.getElementById("toc-auto");var $tocContentAuto=document.getElementById("toc-content-auto");(_document$querySelect=document.querySelector("#toc-auto>.toc-title"))===null||_document$querySelect===void 0?void 0:_document$querySelect.addEventListener("click",function(){var animation=["animate__faster"];var tocHidden=$toc.classList.contains("toc-hidden");animation.push(tocHidden?"animate__fadeIn":"animate__fadeOut");$tocContentAuto.classList.remove(tocHidden?"animate__fadeOut":"animate__fadeIn");_this9.util.animateCSS($tocContentAuto,animation,true);$toc.classList.toggle("toc-hidden")},false)}},{key:"initMath",value:function initMath(){if(this.config.math){renderMathInElement(document.body,this.config.math)}}},{key:"initMermaid",value:function initMermaid(){var _this10=this;this._mermaidOnSwitchTheme=this._mermaidOnSwitchTheme||function(){var $mermaidElements=document.getElementsByClassName("mermaid");if($mermaidElements.length){var _this10$config$mermai;var themes=(_this10$config$mermai=_this10.config.mermaid.themes)!==null&&_this10$config$mermai!==void 0?_this10$config$mermai:["neutral","dark"];mermaid.initialize({startOnLoad:false,theme:_this10.isDark?themes[1]:themes[0],securityLevel:"loose"});_this10.util.forEach($mermaidElements,function($mermaid){mermaid.render("svg-"+$mermaid.id,_this10.data[$mermaid.id],function(svgCode){$mermaid.innerHTML=svgCode},$mermaid)})}};this.switchThemeEventSet.add(this._mermaidOnSwitchTheme);this._mermaidOnSwitchTheme()}},{key:"initEcharts",value:function initEcharts(){var _this11=this;this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){_this11._echartsArr=_this11._echartsArr||[];for(var i=0;i<_this11._echartsArr.length;i++){_this11._echartsArr[i].dispose()}_this11._echartsArr=[];_this11.util.forEach(document.getElementsByClassName("echarts"),function($echarts){var chart=echarts.init($echarts,_this11.isDark?"dark":"macarons",{renderer:"svg"});chart.setOption(JSON.parse(_this11.data[$echarts.id]));_this11._echartsArr.push(chart)})};this.switchThemeEventSet.add(this._echartsOnSwitchTheme);this._echartsOnSwitchTheme();this._echartsOnResize=this._echartsOnResize||function(){for(var i=0;i<_this11._echartsArr.length;i++){_this11._echartsArr[i].resize()}};this.resizeEventSet.add(this._echartsOnResize)}},{key:"initMapbox",value:function initMapbox(){var _this12=this;if(this.config.mapbox){mapboxgl.accessToken=this.config.mapbox.accessToken;mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);this._mapboxArr=this._mapboxArr||[];this.util.forEach(document.getElementsByClassName("mapbox"),function($mapbox){var _this12$data$$mapbox$=_this12.data[$mapbox.id],lng=_this12$data$$mapbox$.lng,lat=_this12$data$$mapbox$.lat,zoom=_this12$data$$mapbox$.zoom,lightStyle=_this12$data$$mapbox$.lightStyle,darkStyle=_this12$data$$mapbox$.darkStyle,marked=_this12$data$$mapbox$.marked,navigation=_this12$data$$mapbox$.navigation,geolocate=_this12$data$$mapbox$.geolocate,scale=_this12$data$$mapbox$.scale,fullscreen=_this12$data$$mapbox$.fullscreen;var mapbox=new mapboxgl.Map({container:$mapbox,center:[lng,lat],zoom:zoom,minZoom:0.2,style:_this12.isDark?darkStyle:lightStyle,attributionControl:false});if(marked){new mapboxgl.Marker().setLngLat([lng,lat]).addTo(mapbox)}if(navigation){mapbox.addControl(new mapboxgl.NavigationControl,"bottom-right")}if(geolocate){mapbox.addControl(new mapboxgl.GeolocateControl({positionOptions:{enableHighAccuracy:true},showUserLocation:true,trackUserLocation:true}),"bottom-right")}if(scale){mapbox.addControl(new mapboxgl.ScaleControl)}if(fullscreen){mapbox.addControl(new mapboxgl.FullscreenControl)}mapbox.addControl(new MapboxLanguage);_this12._mapboxArr.push(mapbox)});this._mapboxOnSwitchTheme=this._mapboxOnSwitchTheme||function(){_this12.util.forEach(_this12._mapboxArr,function(mapbox){var $mapbox=mapbox.getContainer();var _this12$data$$mapbox$2=_this12.data[$mapbox.id],lightStyle=_this12$data$$mapbox$2.lightStyle,darkStyle=_this12$data$$mapbox$2.darkStyle;mapbox.setStyle(_this12.isDark?darkStyle:lightStyle);mapbox.addControl(new MapboxLanguage)})};this.switchThemeEventSet.add(this._mapboxOnSwitchTheme)}}},{key:"initTypeit",value:function initTypeit(){var _this13=this;if(this.config.typeit){var typeitConfig=this.config.typeit;var speed=typeitConfig.speed||100;var cursorSpeed=typeitConfig.cursorSpeed||1000;var cursorChar=typeitConfig.cursorChar||"|";Object.values(typeitConfig.data).forEach(function(group){var typeone=function typeone(i){var id=group[i];var instance=new TypeIt("#".concat(id),{strings:_this13.data[id],speed:speed,lifeLike:true,cursorSpeed:cursorSpeed,cursorChar:cursorChar,waitUntilVisible:true,afterComplete:function afterComplete(){if(i===group.length-1&&typeitConfig.duration>=0){window.setTimeout(function(){instance.destroy()},typeitConfig.duration);return}instance.destroy();typeone(i+1)}}).go()};typeone(0)})}}},{key:"initCommentLightGallery",value:function initCommentLightGallery(comments,images){if(!this.config.lightGallery){return}document.querySelectorAll(comments).forEach(function($content){var $imgs=$content.querySelectorAll(images+":not([lightgallery-loaded])");$imgs.forEach(function($img){$img.setAttribute("lightgallery-loaded","");var $link=document.createElement("a");$link.setAttribute("class","comment-lightgallery");$link.setAttribute("href",$img.src);$link.append($img.cloneNode());$img.replaceWith($link)});if($imgs.length){lightGallery($content,{selector:".comment-lightgallery",actualSize:false,hideBarsDelay:2000,speed:400})}})}},{key:"initComment",value:function initComment(){var _this14=this;if(!this.config.comment){return}if(this.config.comment.artalk){var artalk=new Artalk(this.config.comment.artalk);artalk.setDarkMode(this.isDark);this.switchThemeEventSet.add(function(){artalk.setDarkMode(_this14.isDark)});artalk.on("comments-loaded",function(){_this14.config.comment.artalk.lightgallery&&_this14.initCommentLightGallery(".atk-comment .atk-content","img:not([atk-emoticon])")});return artalk}if(this.config.comment.gitalk){this.config.comment.gitalk.body=decodeURI(window.location.href);var gitalk=new Gitalk(this.config.comment.gitalk);gitalk.render("gitalk");return gitalk}if(this.config.comment.valine){return new Valine(this.config.comment.valine)}if(this.config.comment.waline){return Waline.init(this.config.comment.waline)}if(this.config.comment.utterances){var utterancesConfig=this.config.comment.utterances;var script=document.createElement("script");script.src="https://utteranc.es/client.js";script.setAttribute("repo",utterancesConfig.repo);script.setAttribute("issue-term",utterancesConfig.issueTerm);if(utterancesConfig.label)script.setAttribute("label",utterancesConfig.label);script.setAttribute("theme",this.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme);script.crossOrigin="anonymous";script.async=true;document.getElementById("utterances").appendChild(script);this._utterancesOnSwitchTheme=this._utterancesOnSwitchTheme||function(){var _document$querySelect2;var message={type:"set-theme",theme:_this14.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme};(_document$querySelect2=document.querySelector(".utterances-frame"))===null||_document$querySelect2===void 0?void 0:_document$querySelect2.contentWindow.postMessage(message,"https://utteranc.es")};this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);return}if(this.config.comment.twikoo){var twikooConfig=this.config.comment.twikoo;if(twikooConfig.lightgallery){twikooConfig.onCommentLoaded=function(){_this14.initCommentLightGallery(".tk-comments .tk-content","img:not(.tk-owo-emotion)")}}twikoo.init(twikooConfig);if(twikooConfig.commentCount){twikoo.getCommentsCount({envId:twikooConfig.envId,region:twikooConfig.region,urls:[window.location.pathname],includeReply:false}).then(function(response){var twikooCommentCount=document.getElementById("twikoo-comment-count");if(twikooCommentCount)twikooCommentCount.innerHTML=response[0].count})}return}if(this.config.comment.giscus){var giscusConfig=this.config.comment.giscus;this._giscusOnSwitchTheme=this._giscusOnSwitchTheme||function(){var _document$querySelect3;var message={setConfig:{theme:_this14.isDark?giscusConfig.darkTheme:giscusConfig.lightTheme}};(_document$querySelect3=document.querySelector(".giscus-frame"))===null||_document$querySelect3===void 0?void 0:_document$querySelect3.contentWindow.postMessage({giscus:message},"https://giscus.app")};this.switchThemeEventSet.add(this._giscusOnSwitchTheme);var _this=this;_this.giscus2parentMsg=window.addEventListener("message",function(event){var $script=document.querySelector("#giscus>script");if($script){_this._giscusOnSwitchTheme();$script.parentElement.removeChild($script)}window.removeEventListener("message",_this.giscus2parentMsg)});return}}},{key:"initCookieconsent",value:function initCookieconsent(){this.config.cookieconsent&&cookieconsent.initialise(this.config.cookieconsent)}},{key:"initSiteTime",value:function initSiteTime(){var _this15=this;if(this.config.siteTime){this.siteTime=setInterval(this.getSiteTime,500);document.addEventListener("visibilitychange",function(){if(document.hidden){return clearInterval(_this15.siteTime)}_this15.siteTime=setInterval(_this15.getSiteTime,500)},false)}}},{key:"initServiceWorker",value:function initServiceWorker(){if(this.config.enablePWA&&"serviceWorker"in navigator){navigator.serviceWorker.register("/service-worker.min.js",{scope:"/"}).then(function(registration){}).catch(function(error){console.error("error: ",error)});navigator.serviceWorker.ready.then(function(registration){})}}},{key:"initWatermark",value:function initWatermark(){var _this$config$watermar;((_this$config$watermar=this.config.watermark)===null||_this$config$watermar===void 0?void 0:_this$config$watermar.enable)&&new Watermark({content:this.config.watermark.content||"\"FixIt FixIt Theme",appendTo:this.config.watermark.appendto||".wrapper>main",opacity:this.config.watermark.opacity,width:this.config.watermark.width,height:this.config.watermark.height,rowSpacing:this.config.watermark.rowspacing,colSpacing:this.config.watermark.colspacing,rotate:this.config.watermark.rotate,fontSize:this.config.watermark.fontsize,fontFamily:this.config.watermark.fontfamily})}},{key:"initPangu",value:function initPangu(){this.config.enablePangu&&pangu.autoSpacingPage()}},{key:"initFixItDecryptor",value:function initFixItDecryptor(){var _this16=this,_this$config$encrypti,_this$config$encrypti2;var $tocNodes=document.querySelectorAll("#toc-auto>.d-none, #toc-static.d-none");this.decryptor=new FixItDecryptor({decrypted:function decrypted(){_this16.initTwemoji();_this16.initDetails();_this16.initLightGallery();_this16.initHighlight();_this16.initTable();_this16.initHeaderLink();_this16.initMath();_this16.initMermaid();_this16.initEcharts();_this16.initTypeit();_this16.initMapbox();_this16.util.forEach($tocNodes,function($element){$element.classList.remove("d-none")});_this16.initToc();_this16.initTocListener();_this16.initPangu()},reset:function reset(){_this16.util.forEach($tocNodes,function($element){$element.classList.add("d-none")})}});if((_this$config$encrypti=this.config.encryption)!==null&&_this$config$encrypti!==void 0&&_this$config$encrypti.shortcode){this.decryptor.addEventListener("decrypted",function(){_this16.decryptor.initShortcodes()});this.decryptor.initShortcodes()}((_this$config$encrypti2=this.config.encryption)===null||_this$config$encrypti2===void 0?void 0:_this$config$encrypti2.all)&&this.decryptor.init()}},{key:"initMDevtools",value:function initMDevtools(){var _this$config,_this17=this;var type=(_this$config=this.config)===null||_this$config===void 0?void 0:_this$config.mDevtools;if(typeof window.orientation==="undefined"){return}if(type==="vConsole"){var vConsole=new VConsole({target:".widgets",theme:this.isDark?"dark":"light"});this._vConsoleOnSwitchTheme=this._vConsoleOnSwitchTheme||function(){vConsole.setOption("theme",_this17.isDark?"dark":"light")};this.switchThemeEventSet.add(this._vConsoleOnSwitchTheme)}if(type==="eruda"){eruda.init({defaults:{theme:this.isDark?"Dark":"Light"}});this._erudaOnSwitchTheme=this._erudaOnSwitchTheme||function(){eruda.util.evalCss.setTheme(_this17.isDark?"Dark":"Light")};this.switchThemeEventSet.add(this._erudaOnSwitchTheme)}}},{key:"onScroll",value:function onScroll(){var _this18=this;var $headers=[];if(document.body.getAttribute("data-header-desktop")==="auto"){$headers.push(document.getElementById("header-desktop"))}if(document.body.getAttribute("data-header-mobile")==="auto"){$headers.push(document.getElementById("header-mobile"))}if(document.getElementById("comments")){var $viewComments=document.getElementById("view-comments");$viewComments.href="#comments";$viewComments.style.display="block"}var $fixedButtons=document.getElementById("fixed-buttons");var ACCURACY=20,MINIMUM=100;window.addEventListener("scroll",function(event){if(_this18.disableScrollEvent){event.preventDefault();return}var $mask=document.getElementById("mask");_this18.newScrollTop=_this18.util.getScrollTop();var scroll=_this18.newScrollTop-_this18.oldScrollTop;var isMobile=_this18.util.isMobile();_this18.util.forEach($headers,function($header){if(scroll>ACCURACY){$header.classList.remove("animate__fadeInDown");_this18.util.animateCSS($header,["animate__fadeOutUp","animate__faster"],true);$mask.click()}else if(scroll<-ACCURACY){$header.classList.remove("animate__fadeOutUp");_this18.util.animateCSS($header,["animate__fadeInDown","animate__faster"],true);$mask.click()}});if(_this18.newScrollTop>MINIMUM){if(isMobile&&scroll>ACCURACY){$fixedButtons.classList.remove("animate__fadeIn");_this18.util.animateCSS($fixedButtons,["animate__fadeOut","animate__faster"],true)}else if(!isMobile||scroll<-ACCURACY){$fixedButtons.style.display="block";$fixedButtons.classList.remove("animate__fadeOut");_this18.util.animateCSS($fixedButtons,["animate__fadeIn","animate__faster"],true)}}else{if(!isMobile){$fixedButtons.classList.remove("animate__fadeIn");_this18.util.animateCSS($fixedButtons,["animate__fadeOut","animate__faster"],true)}$fixedButtons.style.display="none"}var _iterator2=_createForOfIteratorHelper(_this18.scrollEventSet),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var _event2=_step2.value;_event2()}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}_this18.oldScrollTop=_this18.newScrollTop},false)}},{key:"onResize",value:function onResize(){var _this19=this;var resizeBefore=this.util.isMobile();window.addEventListener("resize",function(){if(!_this19._resizeTimeout){_this19._resizeTimeout=window.setTimeout(function(){_this19._resizeTimeout=null;var _iterator3=_createForOfIteratorHelper(_this19.resizeEventSet),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var event=_step3.value;event()}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}_this19.initToc();_this19.initMermaid();_this19.initSearch();var isMobile=_this19.util.isMobile();if(isMobile!==resizeBefore){document.getElementById("mask").click();resizeBefore=isMobile}},100)}},false)}},{key:"onClickMask",value:function onClickMask(){var _this20=this;document.getElementById("mask").addEventListener("click",function(){if(!document.body.classList.contains("blur")){return}var _iterator4=_createForOfIteratorHelper(_this20.clickMaskEventSet),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var event=_step4.value;event()}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}_this20.disableScrollEvent=false;document.body.classList.remove("blur")},false)}},{key:"init",value:function init(){var _this21=this;try{var _this$config$encrypti3;if(this.config.encryption){this.initFixItDecryptor()}else if(!((_this$config$encrypti3=this.config.encryption)!==null&&_this$config$encrypti3!==void 0&&_this$config$encrypti3.all)){this.initTwemoji();this.initDetails();this.initLightGallery();this.initHighlight();this.initTable();this.initHeaderLink();this.initMath();this.initMermaid();this.initEcharts();this.initTypeit();this.initMapbox();this.initPangu()}this.initSVGIcon();this.initMenu();this.initSwitchTheme();this.initSearch();this.initCookieconsent();this.initSiteTime();this.initServiceWorker();this.initWatermark();this.initMDevtools();window.setTimeout(function(){var _this21$config$encryp;_this21.initComment();if(!((_this21$config$encryp=_this21.config.encryption)!==null&&_this21$config$encryp!==void 0&&_this21$config$encryp.all)){_this21.initToc();_this21.initTocListener()}_this21.onScroll();_this21.onResize();_this21.onClickMask()},100)}catch(err){console.error(err)}}}]);return FixIt}();var themeInit=function themeInit(){window.fixit=new FixIt;window.fixit.init()};if(document.readyState!=="loading"){themeInit()}else{document.addEventListener("DOMContentLoaded",themeInit,false)} //# sourceMappingURL=theme.min.js.map \ No newline at end of file diff --git a/assets/js/theme.min.js.map b/assets/js/theme.min.js.map index 50b4ecf8..ba0041de 100644 --- a/assets/js/theme.min.js.map +++ b/assets/js/theme.min.js.map @@ -1 +1 @@ -{"version":3,"file":"theme.min.js","names":["Util","elements","handler","i","length","document","documentElement","scrollTop","body","window","matchMedia","matches","element","animation","reserved","callback","Array","isArray","classList","add","remove","removeEventListener","addEventListener","date","Date","isNaN","getTime","FixIt","now","run","config","siteTime","$runTimes","querySelector","util","isValidDate","clearInterval","parentNode","runTime","days","Math","floor","hours","minutes","seconds","innerHTML","String","padStart","data","isDark","getAttribute","newScrollTop","getScrollTop","oldScrollTop","scrollEventSet","Set","resizeEventSet","switchThemeEventSet","clickMaskEventSet","disableScrollEvent","objectFitImages","forEach","querySelectorAll","$icon","fetch","then","response","text","svg","$temp","createElement","insertAdjacentHTML","$svg","firstChild","setAttribute","$titleElements","getElementsByTagName","removeChild","parentElement","replaceChild","catch","err","console","error","twemoji","parse","initMenuDesktop","initMenuMobile","$item","style","left","getBoundingClientRect","minWidth","offsetWidth","$menuToggleMobile","getElementById","$menuMobile","event","toggle","contains","_menuMobileOnClickMask","$nestedItem","getElementsByClassName","$themeSwitch","localStorage","setItem","searchConfig","search","isMobile","_searchMobileOnce","_searchDesktopOnce","maxResultLength","snippetLength","highlightTag","suffix","$header","$searchInput","$searchToggle","$searchLoading","$searchClear","display","_searchMobile","autocomplete","setVal","_searchMobileOnClickMask","focus","_searchDesktop","_searchDesktopOnClickMask","value","initAutosearch","autosearch","hint","autoselect","dropdownMenuContainer","clearOnSelected","cssClasses","noPrefix","debug","name","source","query","finish","results","type","lunr","queryHandler","_index","ref","metadata","matchData","_indexData","uri","title","context","content","position","Object","values","matchPosition","substr","lastIndexOf","keys","key","replace","RegExp","slice","lunrIndexURL","json","indexData","lunrLanguageCode","use","field","boost","metadataWhitelist","record","objectID","_algoliaIndex","algoliasearch","algoliaAppID","algoliaSearchKey","initIndex","algoliaIndex","offset","attributesToHighlight","attributesToSnippet","highlightPreTag","highlightPostTag","hits","_highlightResult","_snippetResult","templates","suggestion","empty","noResultsFound","footer","searchType","icon","href","on","_event","_dataset","_context","location","assign","lunrSegmentitURL","script","id","src","async","readyState","onreadystatechange","onload","appendChild","$details","$summary","lightGallery","$preChroma","$chroma","className","$table","$tbody","$tr","$td","$codeElements","$code","toLowerCase","$title","$ellipses","code","editable","$edit","editUnLockTitle","$iconKey","$iconLock","$preChromas","editLockTitle","blur","copyTitle","$copy","innerText","maxShownLines","split","navigator","clipboard","writeText","animateCSS","insertBefore","$wrapper","num","$tocCore","isTocStatic","$tocContentStatic","_tocOnScroll","delete","$tocContentAuto","$toc","visibility","marginTop","clientHeight","marginBottom","$tocLinkElements","$tocLiElements","$headerLinkElements","headerIsFixed","headerHeight","offsetHeight","$comments","$tocLink","$tocLi","INDEX_SPACING","activeTocIndex","thisTop","top","nextTop","$parent","tocHidden","push","math","renderMathInElement","_mermaidOnSwitchTheme","$mermaidElements","themes","mermaid","initialize","startOnLoad","theme","securityLevel","$mermaid","render","svgCode","_echartsOnSwitchTheme","_echartsArr","dispose","$echarts","chart","echarts","init","renderer","setOption","JSON","_echartsOnResize","resize","mapbox","mapboxgl","accessToken","setRTLTextPlugin","RTLTextPlugin","_mapboxArr","$mapbox","lng","lat","zoom","lightStyle","darkStyle","marked","navigation","geolocate","scale","fullscreen","Map","container","center","minZoom","attributionControl","Marker","setLngLat","addTo","addControl","NavigationControl","GeolocateControl","positionOptions","enableHighAccuracy","showUserLocation","trackUserLocation","ScaleControl","FullscreenControl","MapboxLanguage","_mapboxOnSwitchTheme","getContainer","setStyle","typeit","typeitConfig","speed","cursorSpeed","cursorChar","group","typeone","instance","TypeIt","strings","lifeLike","waitUntilVisible","afterComplete","duration","setTimeout","destroy","go","comments","images","$content","$imgs","$img","$link","append","cloneNode","replaceWith","selector","actualSize","hideBarsDelay","comment","artalk","Artalk","setDarkMode","lightgallery","initCommentLightGallery","gitalk","decodeURI","Gitalk","valine","Valine","waline","Waline","utterances","utterancesConfig","repo","issueTerm","label","darkTheme","lightTheme","crossOrigin","_utterancesOnSwitchTheme","message","contentWindow","postMessage","twikoo","twikooConfig","onCommentLoaded","commentCount","getCommentsCount","envId","region","urls","pathname","includeReply","twikooCommentCount","count","giscus","giscusConfig","_giscusOnSwitchTheme","setConfig","_this","giscus2parentMsg","$script","cookieconsent","initialise","setInterval","getSiteTime","hidden","enablePWA","serviceWorker","register","scope","registration","ready","watermark","enable","Watermark","appendTo","appendto","opacity","width","height","rowSpacing","rowspacing","colSpacing","colspacing","rotate","fontSize","fontsize","fontFamily","fontfamily","enablePangu","pangu","autoSpacingPage","$tocNodes","decryptor","FixItDecryptor","decrypted","initTwemoji","initDetails","initLightGallery","initHighlight","initTable","initHeaderLink","initMath","initMermaid","initEcharts","initTypeit","initMapbox","$element","initToc","initTocListener","initPangu","reset","encryption","shortcode","initShortcodes","all","mDevtools","orientation","vConsole","VConsole","target","_vConsoleOnSwitchTheme","eruda","defaults","_erudaOnSwitchTheme","evalCss","setTheme","$headers","$viewComments","$fixedButtons","ACCURACY","MINIMUM","preventDefault","$mask","scroll","click","resizeBefore","_resizeTimeout","initSearch","initFixItDecryptor","initSVGIcon","initMenu","initSwitchTheme","initCookieconsent","initSiteTime","initServiceWorker","initWatermark","initMDevtools","initComment","onScroll","onResize","onClickMask","themeInit","fixit"],"sources":["../../src/js/theme.js"],"sourcesContent":["class Util {\n forEach(elements, handler) {\n elements = elements || [];\n for(let i = 0; i < elements.length; i++){\n handler(elements[i]);\n }\n }\n\n getScrollTop() {\n return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n }\n\n isMobile() {\n return window.matchMedia('only screen and (max-width: 680px)').matches;\n }\n\n isTocStatic() {\n return window.matchMedia('only screen and (max-width: 960px)').matches;\n }\n\n /**\n * add animate to element\n * @param {Element} element animate element\n * @param {String|Array} animation animation name\n * @param {Boolean} reserved reserved animation\n * @param {Function} callback remove callback\n */\n animateCSS(element, animation, reserved, callback) {\n !Array.isArray(animation) && (animation = [animation]);\n element.classList.add('animate__animated', ...animation);\n const handler = () => {\n element.classList.remove('animate__animated', ...animation);\n element.removeEventListener('animationend', handler);\n typeof callback === 'function' && callback();\n };\n !reserved && element.addEventListener('animationend', handler, false);\n }\n \n /**\n * date validator\n * @param {*} date may be date or not\n * @returns {Boolean}\n */\n isValidDate(date) {\n return date instanceof Date && !isNaN(date.getTime());\n }\n}\n\nclass FixIt {\n constructor() {\n this.config = window.config;\n this.data = this.config.data;\n this.isDark = document.body.getAttribute('data-theme') === 'dark';\n this.util = new Util();\n this.newScrollTop = this.util.getScrollTop();\n this.oldScrollTop = this.newScrollTop;\n this.scrollEventSet = new Set();\n this.resizeEventSet = new Set();\n this.switchThemeEventSet = new Set();\n this.clickMaskEventSet = new Set();\n this.disableScrollEvent = false;\n window.objectFitImages && objectFitImages();\n }\n\n initSVGIcon() {\n this.util.forEach(document.querySelectorAll('[data-svg-src]'), ($icon) => {\n fetch($icon.getAttribute('data-svg-src'))\n .then((response) => response.text())\n .then((svg) => {\n const $temp = document.createElement('div');\n $temp.insertAdjacentHTML('afterbegin', svg);\n const $svg = $temp.firstChild;\n $svg.setAttribute('data-svg-src', $icon.getAttribute('data-svg-src'));\n $svg.classList.add('icon');\n const $titleElements = $svg.getElementsByTagName('title');\n $titleElements.length && $svg.removeChild($titleElements[0])\n $icon.parentElement.replaceChild($svg, $icon);\n })\n .catch((err) => {\n console.error(err);\n });\n });\n }\n\n initTwemoji() {\n this.config.twemoji && twemoji.parse(document.body);\n }\n\n initMenu() {\n this.initMenuDesktop();\n this.initMenuMobile();\n }\n\n initMenuDesktop() {\n // This is a dirty hack for fixing sub menu position error in desktop header\n this.util.forEach(document.querySelectorAll('.has-children, #header-desktop .language'), ($item) => {\n $item.addEventListener('mouseover', function(){\n this.querySelector('.sub-menu').style.left= `${this.getBoundingClientRect().left}px`;\n })\n $item.querySelector('.sub-menu').style.minWidth= `${$item.offsetWidth - 8}px`;\n });\n }\n\n initMenuMobile() {\n const $menuToggleMobile = document.getElementById('menu-toggle-mobile');\n const $menuMobile = document.getElementById('menu-mobile');\n $menuToggleMobile.addEventListener('click', (event) => {\n document.body.classList.toggle('blur');\n $menuToggleMobile.classList.toggle('active');\n $menuMobile.classList.toggle('active');\n this.disableScrollEvent = document.body.classList.contains('blur')\n }, false);\n this._menuMobileOnClickMask = this._menuMobileOnClickMask || (() => {\n $menuToggleMobile.classList.remove('active');\n $menuMobile.classList.remove('active');\n });\n this.clickMaskEventSet.add(this._menuMobileOnClickMask);\n // add nested menu toggler\n this.util.forEach(document.querySelectorAll('.menu-item>.nested-item'), ($nestedItem) => {\n $nestedItem.addEventListener('click', function () {\n this.parentNode.querySelector('.sub-menu').classList.toggle('open');\n this.querySelector('.dropdown-icon').classList.toggle('open');\n })\n });\n }\n\n initSwitchTheme() {\n this.util.forEach(document.getElementsByClassName('theme-switch'), ($themeSwitch) => {\n $themeSwitch.addEventListener('click', () => {\n document.body.setAttribute('data-theme', document.body.getAttribute('data-theme') === 'dark' ? 'light' : 'dark');\n this.isDark = !this.isDark;\n window.localStorage && localStorage.setItem('theme', this.isDark ? 'dark' : 'light');\n for (let event of this.switchThemeEventSet) {\n event();\n }\n }, false);\n });\n }\n\n initSearch() {\n const searchConfig = this.config.search;\n const isMobile = this.util.isMobile();\n if (!searchConfig || (isMobile && this._searchMobileOnce) || (!isMobile && this._searchDesktopOnce)) {\n return;\n }\n const maxResultLength = searchConfig.maxResultLength || 10;\n const snippetLength = searchConfig.snippetLength || 50;\n const highlightTag = searchConfig.highlightTag || 'em';\n const suffix = isMobile ? 'mobile' : 'desktop';\n const $header = document.getElementById(`header-${suffix}`);\n const $searchInput = document.getElementById(`search-input-${suffix}`);\n const $searchToggle = document.getElementById(`search-toggle-${suffix}`);\n const $searchLoading = document.getElementById(`search-loading-${suffix}`);\n const $searchClear = document.getElementById(`search-clear-${suffix}`);\n\n if (isMobile) {\n this._searchMobileOnce = true;\n $searchInput.addEventListener('focus', () => {\n this.disableScrollEvent = true;\n document.body.classList.add('blur');\n $header.classList.add('open');\n }, false);\n document.getElementById('search-cancel-mobile').addEventListener('click', () => {\n this.disableScrollEvent = false;\n $header.classList.remove('open');\n document.body.classList.remove('blur');\n document.getElementById('menu-toggle-mobile').classList.remove('active');\n document.getElementById('menu-mobile').classList.remove('active');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n }, false);\n $searchClear.addEventListener('click', () => {\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n }, false);\n this._searchMobileOnClickMask = this._searchMobileOnClickMask || (() => {\n $header.classList.remove('open');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n });\n this.clickMaskEventSet.add(this._searchMobileOnClickMask);\n } else {\n this._searchDesktopOnce = true;\n $searchToggle.addEventListener('click', () => {\n document.body.classList.add('blur');\n $header.classList.add('open');\n $searchInput.focus();\n }, false);\n $searchClear.addEventListener('click', () => {\n $searchClear.style.display = 'none';\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n }, false);\n this._searchDesktopOnClickMask = this._searchDesktopOnClickMask ||(() => {\n $header.classList.remove('open');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n });\n this.clickMaskEventSet.add(this._searchDesktopOnClickMask);\n }\n $searchInput.addEventListener('input', () => {\n if ($searchInput.value === '') $searchClear.style.display = 'none';\n else $searchClear.style.display = 'inline';\n }, false);\n\n const initAutosearch = () => {\n const autosearch = autocomplete(`#search-input-${suffix}`,\n {\n hint: false,\n autoselect: true,\n dropdownMenuContainer: `#search-dropdown-${suffix}`,\n clearOnSelected: true,\n cssClasses: { noPrefix: true },\n debug: true\n },\n {\n name: 'search',\n source: (query, callback) => {\n $searchLoading.style.display = 'inline';\n $searchClear.style.display = 'none';\n const finish = (results) => {\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'inline';\n callback(results);\n };\n if (searchConfig.type === 'lunr') {\n const search = () => {\n if (lunr.queryHandler) {\n query = lunr.queryHandler(query);\n }\n const results = {};\n this._index.search(query).forEach(({ ref, matchData: { metadata } }) => {\n const matchData = this._indexData[ref];\n let { uri, title, content: context } = matchData;\n if (results[uri]) {\n return;\n }\n let position = 0;\n Object.values(metadata).forEach(({ content }) => {\n if (content) {\n const matchPosition = content.position[0][0];\n if (matchPosition < position || position === 0) {\n position = matchPosition;\n }\n }\n });\n position -= snippetLength / 5;\n if (position > 0) {\n position += context.substr(position, 20).lastIndexOf(' ') + 1;\n context = '...' + context.substr(position, snippetLength);\n } else {\n context = context.substr(0, snippetLength);\n }\n Object.keys(metadata).forEach((key) => {\n title = title.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\n context = context.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\n });\n results[uri] = {\n uri: uri,\n title: title,\n date: matchData.date,\n context: context\n };\n });\n return Object.values(results).slice(0, maxResultLength);\n };\n if (!this._index) {\n fetch(searchConfig.lunrIndexURL)\n .then((response) => response.json())\n .then((data) => {\n const indexData = {};\n this._index = lunr(function () {\n if (searchConfig.lunrLanguageCode) this.use(lunr[searchConfig.lunrLanguageCode]);\n this.ref('objectID');\n this.field('title', { boost: 50 });\n this.field('tags', { boost: 20 });\n this.field('categories', { boost: 20 });\n this.field('content', { boost: 10 });\n this.metadataWhitelist = ['position'];\n data.forEach((record) => {\n indexData[record.objectID] = record;\n this.add(record);\n });\n });\n this._indexData = indexData;\n finish(search());\n })\n .catch((err) => {\n console.error(err);\n finish([]);\n });\n } else finish(search());\n } else if (searchConfig.type === 'algolia') {\n this._algoliaIndex =\n this._algoliaIndex || algoliasearch(searchConfig.algoliaAppID, searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);\n this._algoliaIndex\n .search(query, {\n offset: 0,\n length: maxResultLength * 8,\n attributesToHighlight: ['title'],\n attributesToSnippet: [`content:${snippetLength}`],\n highlightPreTag: `<${highlightTag}>`,\n highlightPostTag: ``\n })\n .then(({ hits }) => {\n const results = {};\n hits.forEach(({ uri, date, _highlightResult: { title }, _snippetResult: { content } }) => {\n if (results[uri] && results[uri].context.length > content.value) {\n return;\n }\n results[uri] = {\n uri: uri,\n title: title.value,\n date: date,\n context: content.value\n };\n });\n finish(Object.values(results).slice(0, maxResultLength));\n })\n .catch((err) => {\n console.error(err);\n finish([]);\n });\n }\n },\n templates: {\n suggestion: ({ title, date, context }) =>\n `
${title}${date}
${context}
`,\n empty: ({ query }) => `
${searchConfig.noResultsFound}: \"${query}\"
`,\n footer: ({}) => {\n const { searchType, icon, href } =\n searchConfig.type === 'algolia'\n ? {\n searchType: 'algolia',\n icon: '',\n href: 'https://www.algolia.com/'\n }\n : {\n searchType: 'Lunr.js',\n icon: '',\n href: 'https://lunrjs.com/'\n };\n return ``;\n }\n }\n }\n );\n autosearch.on('autocomplete:selected', (_event, suggestion, _dataset, _context) => {\n window.location.assign(suggestion.uri);\n });\n if (isMobile) {\n this._searchMobile = autosearch;\n } else {\n this._searchDesktop = autosearch;\n }\n };\n if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) {\n const script = document.createElement('script');\n script.id = 'lunr-segmentit';\n script.type = 'text/javascript';\n script.src = searchConfig.lunrSegmentitURL;\n script.async = true;\n if (script.readyState) {\n script.onreadystatechange = () => {\n if (script.readyState == 'loaded' || script.readyState == 'complete') {\n script.onreadystatechange = null;\n initAutosearch();\n }\n };\n } else {\n script.onload = () => {\n initAutosearch();\n };\n }\n document.body.appendChild(script);\n } else {\n initAutosearch();\n }\n }\n\n initDetails() {\n this.util.forEach(document.getElementsByClassName('details'), ($details) => {\n const $summary = $details.querySelector('.details-summary');\n $summary.addEventListener('click', () => {\n $details.classList.toggle('open');\n }, false);\n });\n }\n\n initLightGallery() {\n this.config.lightGallery && lightGallery(document.getElementById('content'), this.config.lightGallery);\n }\n\n initHighlight() {\n this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), ($preChroma) => {\n const $chroma = document.createElement('div');\n $chroma.className = $preChroma.className;\n const $table = document.createElement('table');\n $chroma.appendChild($table);\n const $tbody = document.createElement('tbody');\n $table.appendChild($tbody);\n const $tr = document.createElement('tr');\n $tbody.appendChild($tr);\n const $td = document.createElement('td');\n $tr.appendChild($td);\n $preChroma.parentElement.replaceChild($chroma, $preChroma);\n $td.appendChild($preChroma);\n });\n this.util.forEach(document.querySelectorAll('.highlight > .chroma'), ($chroma) => {\n const $codeElements = $chroma.querySelectorAll('pre.chroma > code');\n if ($codeElements.length) {\n const $code = $codeElements[$codeElements.length - 1];\n const $header = document.createElement('div');\n $header.className = 'code-header ' + $code.className.toLowerCase();\n // code title\n const $title = document.createElement('span');\n $title.classList.add('code-title');\n $title.insertAdjacentHTML('afterbegin', '');\n $title.addEventListener('click', () => {\n $chroma.classList.toggle('open');\n }, false);\n $header.appendChild($title);\n // ellipses icon\n const $ellipses = document.createElement('span');\n $ellipses.insertAdjacentHTML('afterbegin', '');\n $ellipses.classList.add('ellipses');\n $ellipses.addEventListener('click', () => {\n $chroma.classList.add('open');\n }, false);\n $header.appendChild($ellipses);\n // edit button\n if (this.config.code.editable) {\n const $edit = document.createElement('span');\n $edit.classList.add('edit');\n $edit.insertAdjacentHTML('afterbegin', ``);\n $edit.addEventListener('click', () => {\n const $iconKey = $edit.querySelector('.fa-key');\n const $iconLock = $edit.querySelector('.fa-lock');\n const $preChromas = $edit.parentElement.parentElement.querySelectorAll('pre.chroma');\n const $preChroma = $preChromas.length === 2 ? $preChromas[1] : $preChromas[0];\n if ($iconKey) {\n $iconKey.classList.add('fa-lock');\n $iconKey.classList.remove('fa-key');\n $iconKey.title = this.config.code.editLockTitle;\n $preChroma.setAttribute('contenteditable', true);\n $preChroma.focus();\n } else {\n $iconLock.classList.add('fa-key');\n $iconLock.classList.remove('fa-lock');\n $iconLock.title = this.config.code.editUnLockTitle;\n $preChroma.setAttribute('contenteditable', false);\n $preChroma.blur();\n }\n }, false);\n $header.appendChild($edit);\n }\n // copy button\n if (this.config.code.copyTitle) {\n const $copy = document.createElement('span');\n $copy.insertAdjacentHTML('afterbegin', '');\n $copy.classList.add('copy');\n const code = $code.innerText;\n if (this.config.code.maxShownLines < 0 || code.split('\\n').length < this.config.code.maxShownLines + 2) {\n $chroma.classList.add('open');\n }\n $copy.title = this.config.code.copyTitle;\n $copy.addEventListener('click', () => {\n navigator.clipboard.writeText(code).then(() => {\n this.util.animateCSS($code, 'animate__flash');\n }, () => {\n console.error('Clipboard write failed!', 'Your browser does not support clipboard API!');\n });\n }, false);\n $header.appendChild($copy);\n }\n $chroma.insertBefore($header, $chroma.firstChild);\n }\n });\n }\n\n initTable() {\n this.util.forEach(document.querySelectorAll('.content table'), ($table) => {\n const $wrapper = document.createElement('div');\n $wrapper.className = 'table-wrapper';\n $table.parentElement.replaceChild($wrapper, $table);\n $wrapper.appendChild($table);\n });\n }\n\n initHeaderLink() {\n for (let num = 1; num <= 6; num++) {\n this.util.forEach(document.querySelectorAll('.single .content > h' + num), ($header) => {\n $header.classList.add('header-link');\n $header.insertAdjacentHTML('afterbegin', ``);\n });\n }\n }\n /**\n * init table of contents\n */\n initToc() {\n const $tocCore = document.getElementById('TableOfContents');\n if ($tocCore === null) {\n return;\n }\n if (document.getElementById('toc-static').getAttribute('date-kept') === 'true' || this.util.isTocStatic()) {\n const $tocContentStatic = document.getElementById('toc-content-static');\n if ($tocCore.parentElement !== $tocContentStatic) {\n $tocCore.parentElement.removeChild($tocCore);\n $tocContentStatic.appendChild($tocCore);\n }\n this._tocOnScroll && this.scrollEventSet.delete(this._tocOnScroll);\n } else {\n const $tocContentAuto = document.getElementById('toc-content-auto');\n if ($tocCore.parentElement !== $tocContentAuto) {\n $tocCore.parentElement.removeChild($tocCore);\n $tocContentAuto.appendChild($tocCore);\n }\n const $toc = document.getElementById('toc-auto');\n $toc.style.visibility = 'visible';\n this.util.animateCSS($toc, ['animate__fadeIn', 'animate__faster'], true);\n $toc.style.marginTop = document.querySelector('.single-title').clientHeight + document.querySelector('.post-meta').clientHeight + 'px';\n $toc.style.marginBottom = document.getElementById('post-footer').clientHeight + 'px';\n const $tocLinkElements = $tocCore.querySelectorAll('a:first-child');\n const $tocLiElements = $tocCore.getElementsByTagName('li');\n const $headerLinkElements = document.getElementsByClassName('header-link');\n const headerIsFixed = document.body.getAttribute('data-header-desktop') !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n this._tocOnScroll = this._tocOnScroll || (() => {\n const $comments = document.getElementById('comments');\n if ($comments) {\n $toc.style.marginBottom = document.getElementById('post-footer').clientHeight + $comments.clientHeight + 'px';\n }\n this.util.forEach($tocLinkElements, ($tocLink) => {\n $tocLink.classList.remove('active');\n });\n this.util.forEach($tocLiElements, ($tocLi) => {\n $tocLi.classList.remove('has-active');\n });\n const INDEX_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n let activeTocIndex = $headerLinkElements.length - 1;\n for (let i = 0; i < $headerLinkElements.length - 1; i++) {\n const thisTop = $headerLinkElements[i].getBoundingClientRect().top;\n const nextTop = $headerLinkElements[i + 1].getBoundingClientRect().top;\n if ((i == 0 && thisTop > INDEX_SPACING) || (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) {\n activeTocIndex = i;\n break;\n }\n }\n if (activeTocIndex !== -1) {\n $tocLinkElements[activeTocIndex].classList.add('active');\n let $parent = $tocLinkElements[activeTocIndex].parentElement;\n while ($parent !== $tocCore) {\n $parent.classList.add('has-active');\n $parent = $parent.parentElement.parentElement;\n }\n }\n });\n this._tocOnScroll();\n this.scrollEventSet.add(this._tocOnScroll);\n }\n }\n\n initTocListener() {\n const $toc = document.getElementById('toc-auto');\n const $tocContentAuto = document.getElementById('toc-content-auto');\n document.querySelector('#toc-auto>.toc-title')?.addEventListener('click', () => {\n const animation = ['animate__faster']\n const tocHidden = $toc.classList.contains('toc-hidden');\n animation.push(tocHidden ? 'animate__fadeIn' : 'animate__fadeOut');\n $tocContentAuto.classList.remove(tocHidden ? 'animate__fadeOut' : 'animate__fadeIn');\n this.util.animateCSS($tocContentAuto, animation, true);\n $toc.classList.toggle('toc-hidden');\n }, false)\n }\n\n initMath() {\n if (this.config.math) {\n renderMathInElement(document.body, this.config.math);\n }\n }\n\n initMermaid() {\n this._mermaidOnSwitchTheme = this._mermaidOnSwitchTheme || (() => {\n const $mermaidElements = document.getElementsByClassName('mermaid');\n if ($mermaidElements.length) {\n const themes = this.config.mermaid.themes ?? ['neutral', 'dark'];\n mermaid.initialize({startOnLoad: false, theme: this.isDark ? themes[1] : themes[0], securityLevel: 'loose'});\n this.util.forEach($mermaidElements, $mermaid => {\n mermaid.render('svg-' + $mermaid.id, this.data[$mermaid.id], svgCode => {\n $mermaid.innerHTML = svgCode;\n }, $mermaid);\n });\n }\n });\n this.switchThemeEventSet.add(this._mermaidOnSwitchTheme);\n this._mermaidOnSwitchTheme();\n }\n\n initEcharts() {\n this._echartsOnSwitchTheme = this._echartsOnSwitchTheme || (() => {\n this._echartsArr = this._echartsArr || [];\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].dispose();\n }\n this._echartsArr = [];\n this.util.forEach(document.getElementsByClassName('echarts'), ($echarts) => {\n const chart = echarts.init($echarts, this.isDark ? 'dark' : 'macarons', {\n renderer: 'svg'\n });\n chart.setOption(JSON.parse(this.data[$echarts.id]));\n this._echartsArr.push(chart);\n });\n });\n this.switchThemeEventSet.add(this._echartsOnSwitchTheme);\n this._echartsOnSwitchTheme();\n this._echartsOnResize = this._echartsOnResize || (() => {\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].resize();\n }\n });\n this.resizeEventSet.add(this._echartsOnResize);\n }\n\n initMapbox() {\n if (this.config.mapbox) {\n mapboxgl.accessToken = this.config.mapbox.accessToken;\n mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);\n this._mapboxArr = this._mapboxArr || [];\n this.util.forEach(document.getElementsByClassName('mapbox'), ($mapbox) => {\n const { lng, lat, zoom, lightStyle, darkStyle, marked, navigation, geolocate, scale, fullscreen } = this.data[$mapbox.id];\n const mapbox = new mapboxgl.Map({\n container: $mapbox,\n center: [lng, lat],\n zoom: zoom,\n minZoom: 0.2,\n style: this.isDark ? darkStyle : lightStyle,\n attributionControl: false\n });\n if (marked) {\n new mapboxgl.Marker().setLngLat([lng, lat]).addTo(mapbox);\n }\n if (navigation) {\n mapbox.addControl(new mapboxgl.NavigationControl(), 'bottom-right');\n }\n if (geolocate) {\n mapbox.addControl(\n new mapboxgl.GeolocateControl({\n positionOptions: {\n enableHighAccuracy: true\n },\n showUserLocation: true,\n trackUserLocation: true\n }),\n 'bottom-right'\n );\n }\n if (scale) {\n mapbox.addControl(new mapboxgl.ScaleControl());\n }\n if (fullscreen) {\n mapbox.addControl(new mapboxgl.FullscreenControl());\n }\n mapbox.addControl(new MapboxLanguage());\n this._mapboxArr.push(mapbox);\n });\n this._mapboxOnSwitchTheme = this._mapboxOnSwitchTheme || (() => {\n this.util.forEach(this._mapboxArr, (mapbox) => {\n const $mapbox = mapbox.getContainer();\n const { lightStyle, darkStyle } = this.data[$mapbox.id];\n mapbox.setStyle(this.isDark ? darkStyle : lightStyle);\n mapbox.addControl(new MapboxLanguage());\n });\n });\n this.switchThemeEventSet.add(this._mapboxOnSwitchTheme);\n }\n }\n\n initTypeit() {\n if (this.config.typeit) {\n const typeitConfig = this.config.typeit;\n const speed = typeitConfig.speed || 100;\n const cursorSpeed = typeitConfig.cursorSpeed || 1000;\n const cursorChar = typeitConfig.cursorChar || '|';\n Object.values(typeitConfig.data).forEach((group) => {\n const typeone = (i) => {\n const id = group[i];\n const instance = new TypeIt(`#${id}`, {\n strings: this.data[id],\n speed: speed,\n lifeLike: true,\n cursorSpeed: cursorSpeed,\n cursorChar: cursorChar,\n waitUntilVisible: true,\n afterComplete: () => {\n if (i === group.length - 1 && typeitConfig.duration >= 0) {\n window.setTimeout(() => {\n instance.destroy();\n }, typeitConfig.duration);\n return;\n }\n instance.destroy();\n typeone(i + 1);\n }\n }).go();\n };\n typeone(0);\n });\n }\n }\n\n initCommentLightGallery(comments, images) {\n if (!this.config.lightGallery) {\n return;\n }\n document.querySelectorAll(comments).forEach(($content) => {\n const $imgs = $content.querySelectorAll(images + ':not([lightgallery-loaded])');\n $imgs.forEach(($img) => {\n $img.setAttribute('lightgallery-loaded', '');\n const $link = document.createElement('a');\n $link.setAttribute('class', 'comment-lightgallery');\n $link.setAttribute('href', $img.src);\n $link.append($img.cloneNode());\n $img.replaceWith($link);\n });\n if ($imgs.length) {\n lightGallery($content, {\n selector: '.comment-lightgallery',\n actualSize: false,\n hideBarsDelay: 2000,\n speed: 400\n });\n }\n });\n }\n\n initComment() {\n if (!this.config.comment) {\n return;\n }\n if (this.config.comment.artalk) {\n const artalk = new Artalk(this.config.comment.artalk);\n artalk.setDarkMode(this.isDark);\n this.switchThemeEventSet.add(() => {\n artalk.setDarkMode(this.isDark);\n });\n artalk.on('comments-loaded', () => {\n this.config.comment.artalk.lightgallery && this.initCommentLightGallery('.atk-comment .atk-content', 'img:not([atk-emoticon])');\n });\n return artalk;\n }\n if (this.config.comment.gitalk) {\n this.config.comment.gitalk.body = decodeURI(window.location.href);\n const gitalk = new Gitalk(this.config.comment.gitalk);\n gitalk.render('gitalk');\n return gitalk;\n }\n if (this.config.comment.valine) {\n return new Valine(this.config.comment.valine);\n }\n if (this.config.comment.waline) {\n return Waline.init(this.config.comment.waline);\n }\n if (this.config.comment.utterances) {\n const utterancesConfig = this.config.comment.utterances;\n const script = document.createElement('script');\n script.src = 'https://utteranc.es/client.js';\n script.type = 'text/javascript';\n script.setAttribute('repo', utterancesConfig.repo);\n script.setAttribute('issue-term', utterancesConfig.issueTerm);\n if (utterancesConfig.label) script.setAttribute('label', utterancesConfig.label);\n script.setAttribute('theme', this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme);\n script.crossOrigin = 'anonymous';\n script.async = true;\n document.getElementById('utterances').appendChild(script);\n this._utterancesOnSwitchTheme = this._utterancesOnSwitchTheme || (() => {\n const message = {\n type: 'set-theme',\n theme: this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme\n };\n document.querySelector('.utterances-frame')?.contentWindow.postMessage(message, 'https://utteranc.es');\n });\n this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);\n return;\n }\n if (this.config.comment.twikoo) {\n const twikooConfig = this.config.comment.twikoo;\n if (twikooConfig.lightgallery) {\n twikooConfig.onCommentLoaded = () => {\n this.initCommentLightGallery('.tk-comments .tk-content', 'img:not(.tk-owo-emotion)');\n };\n }\n twikoo.init(twikooConfig);\n if (twikooConfig.commentCount) {\n // https://twikoo.js.org/api.html#get-comments-count\n twikoo\n .getCommentsCount({\n envId: twikooConfig.envId,\n region: twikooConfig.region,\n urls: [window.location.pathname],\n includeReply: false\n })\n .then(function (response) {\n const twikooCommentCount = document.getElementById('twikoo-comment-count');\n if (twikooCommentCount) twikooCommentCount.innerHTML = response[0].count;\n });\n }\n return;\n }\n if (this.config.comment.giscus) {\n const giscusConfig = this.config.comment.giscus;\n this._giscusOnSwitchTheme = this._giscusOnSwitchTheme || (() => {\n const message = { setConfig: { theme: this.isDark ? giscusConfig.darkTheme : giscusConfig.lightTheme }};\n document.querySelector('.giscus-frame')?.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');\n });\n this.switchThemeEventSet.add(this._giscusOnSwitchTheme);\n const _this = this;\n _this.giscus2parentMsg = window.addEventListener('message', (event) => {\n const $script = document.querySelector('#giscus>script');\n if ($script){\n _this._giscusOnSwitchTheme();\n $script.parentElement.removeChild($script);\n }\n window.removeEventListener('message', _this.giscus2parentMsg);\n });\n return;\n }\n }\n\n initCookieconsent() {\n this.config.cookieconsent && cookieconsent.initialise(this.config.cookieconsent);\n }\n\n getSiteTime = () => {\n let now = new Date();\n let run = new Date(this.config.siteTime);\n let $runTimes = document.querySelector('.run-times');\n if (!this.util.isValidDate(run) || !$runTimes) {\n clearInterval(this.siteTime);\n $runTimes && $runTimes.parentNode.remove();\n return;\n }\n let runTime = (now - run) / 1000,\n days = Math.floor(runTime / 60 / 60 / 24),\n hours = Math.floor(runTime / 60 / 60 - 24 * days),\n minutes = Math.floor(runTime / 60 - 24 * 60 * days - 60 * hours),\n seconds = Math.floor((now - run) / 1000 - 24 * 60 * 60 * days - 60 * 60 * hours - 60 * minutes);\n $runTimes.innerHTML = `${days}, ${String(hours).padStart(2, 0)}:${String(minutes).padStart(2, 0)}:${String(seconds).padStart(2, 0)}`;\n }\n\n initSiteTime() {\n if (this.config.siteTime) {\n this.siteTime = setInterval(this.getSiteTime, 500);\n document.addEventListener('visibilitychange', () => {\n if (document.hidden) {\n return clearInterval(this.siteTime);\n }\n this.siteTime = setInterval(this.getSiteTime, 500);\n }, false);\n }\n }\n\n initServiceWorker() {\n if (this.config.enablePWA && 'serviceWorker' in navigator) {\n navigator.serviceWorker\n .register('/service-worker.min.js', { scope: '/' })\n .then(function (registration) {\n // console.log('Service Worker Registered');\n })\n .catch(function (error) {\n console.error('error: ', error);\n });\n navigator.serviceWorker\n .ready\n .then(function (registration) {\n // console.log('Service Worker Ready');\n });\n }\n }\n\n initWatermark() {\n this.config.watermark?.enable &&\n new Watermark({\n content: this.config.watermark.content || '\"FixIt FixIt Theme',\n appendTo: this.config.watermark.appendto || '.wrapper>main',\n opacity: this.config.watermark.opacity,\n width: this.config.watermark.width,\n height: this.config.watermark.height,\n rowSpacing: this.config.watermark.rowspacing,\n colSpacing: this.config.watermark.colspacing,\n rotate: this.config.watermark.rotate,\n fontSize: this.config.watermark.fontsize,\n fontFamily: this.config.watermark.fontfamily\n });\n }\n\n initPangu() {\n // TODO 待优化:只渲染\n this.config.enablePangu && pangu.autoSpacingPage();\n }\n\n initFixItDecryptor() {\n const $tocNodes = document.querySelectorAll('#toc-auto>.d-none, #toc-static.d-none');\n this.decryptor = new FixItDecryptor({\n decrypted: () => {\n this.initTwemoji();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n this.util.forEach($tocNodes, ($element) => {\n $element.classList.remove('d-none');\n });\n this.initToc();\n this.initTocListener();\n this.initPangu();\n },\n reset: () => {\n this.util.forEach($tocNodes, ($element) => {\n $element.classList.add('d-none');\n });\n }\n });\n if (this.config.encryption?.shortcode) {\n this.decryptor.addEventListener('decrypted', () => {\n this.decryptor.initShortcodes();\n })\n this.decryptor.initShortcodes();\n }\n this.config.encryption?.all && this.decryptor.init();\n }\n\n initMDevtools() {\n const type = this.config?.mDevtools\n if (typeof window.orientation === 'undefined') {\n return;\n }\n if(type === 'vConsole') {\n const vConsole = new VConsole({\n target: '.widgets',\n theme: this.isDark ? 'dark' : 'light'\n });\n this._vConsoleOnSwitchTheme = this._vConsoleOnSwitchTheme || (() => {\n vConsole.setOption('theme', this.isDark ? 'dark' : 'light');\n });\n this.switchThemeEventSet.add(this._vConsoleOnSwitchTheme);\n }\n if(type === 'eruda') {\n eruda.init({\n defaults: { theme: this.isDark ? 'Dark' : 'Light' }\n });\n this._erudaOnSwitchTheme = this._erudaOnSwitchTheme || (() => {\n eruda.util.evalCss.setTheme(this.isDark ? 'Dark' : 'Light');\n });\n this.switchThemeEventSet.add(this._erudaOnSwitchTheme);\n }\n }\n\n onScroll() {\n const $headers = [];\n if (document.body.getAttribute('data-header-desktop') === 'auto') {\n $headers.push(document.getElementById('header-desktop'));\n }\n if (document.body.getAttribute('data-header-mobile') === 'auto') {\n $headers.push(document.getElementById('header-mobile'));\n }\n if (document.getElementById('comments')) {\n const $viewComments = document.getElementById('view-comments');\n $viewComments.href = `#comments`;\n $viewComments.style.display = 'block';\n }\n const $fixedButtons = document.getElementById('fixed-buttons');\n const ACCURACY = 20, MINIMUM = 100;\n window.addEventListener('scroll', (event) => {\n if (this.disableScrollEvent) {\n event.preventDefault();\n return;\n }\n const $mask = document.getElementById('mask');\n this.newScrollTop = this.util.getScrollTop();\n const scroll = this.newScrollTop - this.oldScrollTop;\n const isMobile = this.util.isMobile();\n this.util.forEach($headers, ($header) => {\n if (scroll > ACCURACY) {\n $header.classList.remove('animate__fadeInDown');\n this.util.animateCSS($header, ['animate__fadeOutUp', 'animate__faster'], true);\n $mask.click();\n } else if (scroll < -ACCURACY) {\n $header.classList.remove('animate__fadeOutUp');\n this.util.animateCSS($header, ['animate__fadeInDown', 'animate__faster'], true);\n $mask.click();\n }\n });\n // whether to show b2t button\n if (this.newScrollTop > MINIMUM) {\n if (isMobile && scroll > ACCURACY) {\n $fixedButtons.classList.remove('animate__fadeIn');\n this.util.animateCSS($fixedButtons, ['animate__fadeOut', 'animate__faster'], true);\n } else if (!isMobile || scroll < -ACCURACY) {\n $fixedButtons.style.display = 'block';\n $fixedButtons.classList.remove('animate__fadeOut');\n this.util.animateCSS($fixedButtons, ['animate__fadeIn', 'animate__faster'], true);\n }\n } else {\n if (!isMobile) {\n $fixedButtons.classList.remove('animate__fadeIn');\n this.util.animateCSS($fixedButtons, ['animate__fadeOut', 'animate__faster'], true);\n }\n $fixedButtons.style.display = 'none';\n }\n for (let event of this.scrollEventSet) {\n event();\n }\n this.oldScrollTop = this.newScrollTop;\n }, false);\n }\n\n onResize() {\n let resizeBefore = this.util.isMobile();\n window.addEventListener('resize', () => {\n if (!this._resizeTimeout) {\n this._resizeTimeout = window.setTimeout(() => {\n this._resizeTimeout = null;\n for (let event of this.resizeEventSet) {\n event();\n }\n this.initToc();\n this.initMermaid();\n this.initSearch();\n\n const isMobile = this.util.isMobile()\n if (isMobile !== resizeBefore) {\n document.getElementById('mask').click();\n resizeBefore = isMobile;\n }\n }, 100);\n }\n }, false);\n }\n\n onClickMask() {\n document.getElementById('mask').addEventListener('click', () => {\n if (!document.body.classList.contains('blur')) {\n return;\n }\n for (let event of this.clickMaskEventSet) {\n event();\n }\n this.disableScrollEvent = false;\n document.body.classList.remove('blur');\n }, false);\n }\n\n init() {\n try {\n if (this.config.encryption) {\n this.initFixItDecryptor();\n } else if(!this.config.encryption?.all) {\n this.initTwemoji();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n this.initPangu();\n }\n this.initSVGIcon();\n this.initMenu();\n this.initSwitchTheme();\n this.initSearch();\n this.initCookieconsent();\n this.initSiteTime();\n this.initServiceWorker();\n this.initWatermark();\n this.initMDevtools();\n\n window.setTimeout(() => {\n this.initComment();\n if (!this.config.encryption?.all) {\n this.initToc();\n this.initTocListener();\n }\n this.onScroll();\n this.onResize();\n this.onClickMask();\n }, 100);\n } catch (err) {\n console.error(err);\n }\n }\n}\n\nconst themeInit = () => {\n window.fixit = new FixIt();\n window.fixit.init();\n};\n\nif (document.readyState !== 'loading') {\n themeInit();\n} else {\n document.addEventListener('DOMContentLoaded', themeInit, false);\n}\n"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"theme.min.js","names":["Util","elements","handler","i","length","document","documentElement","scrollTop","body","window","matchMedia","matches","element","animation","reserved","callback","Array","isArray","classList","add","remove","removeEventListener","addEventListener","date","Date","isNaN","getTime","FixIt","now","run","config","siteTime","$runTimes","querySelector","util","isValidDate","clearInterval","parentNode","runTime","days","Math","floor","hours","minutes","seconds","innerHTML","String","padStart","data","isDark","getAttribute","newScrollTop","getScrollTop","oldScrollTop","scrollEventSet","Set","resizeEventSet","switchThemeEventSet","clickMaskEventSet","disableScrollEvent","objectFitImages","forEach","querySelectorAll","$icon","fetch","then","response","text","svg","$temp","createElement","insertAdjacentHTML","$svg","firstChild","setAttribute","$titleElements","getElementsByTagName","removeChild","parentElement","replaceChild","catch","err","console","error","twemoji","parse","initMenuDesktop","initMenuMobile","$item","style","left","getBoundingClientRect","minWidth","offsetWidth","$menuToggleMobile","getElementById","$menuMobile","event","toggle","contains","_menuMobileOnClickMask","$nestedItem","getElementsByClassName","$themeSwitch","localStorage","setItem","searchConfig","search","isMobile","_searchMobileOnce","_searchDesktopOnce","maxResultLength","snippetLength","highlightTag","suffix","$header","$searchInput","$searchToggle","$searchLoading","$searchClear","display","_searchMobile","autocomplete","setVal","_searchMobileOnClickMask","focus","_searchDesktop","_searchDesktopOnClickMask","value","initAutosearch","autosearch","hint","autoselect","dropdownMenuContainer","clearOnSelected","cssClasses","noPrefix","debug","name","source","query","finish","results","type","lunr","queryHandler","_index","ref","metadata","matchData","_indexData","uri","title","context","content","position","Object","values","matchPosition","substr","lastIndexOf","keys","key","replace","RegExp","slice","lunrIndexURL","json","indexData","lunrLanguageCode","use","field","boost","metadataWhitelist","record","objectID","_algoliaIndex","algoliasearch","algoliaAppID","algoliaSearchKey","initIndex","algoliaIndex","offset","attributesToHighlight","attributesToSnippet","highlightPreTag","highlightPostTag","hits","_highlightResult","_snippetResult","templates","suggestion","empty","noResultsFound","footer","searchType","icon","href","on","_event","_dataset","_context","location","assign","lunrSegmentitURL","script","id","src","async","readyState","onreadystatechange","onload","appendChild","$details","$summary","lightGallery","$preChroma","$chroma","className","$table","$tbody","$tr","$td","$codeElements","$code","toLowerCase","$title","$ellipses","code","editable","$edit","editUnLockTitle","$iconKey","$iconLock","$preChromas","editLockTitle","blur","copyTitle","$copy","innerText","maxShownLines","split","navigator","clipboard","writeText","animateCSS","insertBefore","$wrapper","num","$tocCore","isTocStatic","$tocContentStatic","_tocOnScroll","delete","$tocContentAuto","$toc","visibility","marginTop","clientHeight","marginBottom","$tocLinkElements","$tocLiElements","$headerLinkElements","headerIsFixed","headerHeight","offsetHeight","$comments","$tocLink","$tocLi","INDEX_SPACING","activeTocIndex","thisTop","top","nextTop","$parent","tocHidden","push","math","renderMathInElement","_mermaidOnSwitchTheme","$mermaidElements","themes","mermaid","initialize","startOnLoad","theme","securityLevel","$mermaid","render","svgCode","_echartsOnSwitchTheme","_echartsArr","dispose","$echarts","chart","echarts","init","renderer","setOption","JSON","_echartsOnResize","resize","mapbox","mapboxgl","accessToken","setRTLTextPlugin","RTLTextPlugin","_mapboxArr","$mapbox","lng","lat","zoom","lightStyle","darkStyle","marked","navigation","geolocate","scale","fullscreen","Map","container","center","minZoom","attributionControl","Marker","setLngLat","addTo","addControl","NavigationControl","GeolocateControl","positionOptions","enableHighAccuracy","showUserLocation","trackUserLocation","ScaleControl","FullscreenControl","MapboxLanguage","_mapboxOnSwitchTheme","getContainer","setStyle","typeit","typeitConfig","speed","cursorSpeed","cursorChar","group","typeone","instance","TypeIt","strings","lifeLike","waitUntilVisible","afterComplete","duration","setTimeout","destroy","go","comments","images","$content","$imgs","$img","$link","append","cloneNode","replaceWith","selector","actualSize","hideBarsDelay","comment","artalk","Artalk","setDarkMode","lightgallery","initCommentLightGallery","gitalk","decodeURI","Gitalk","valine","Valine","waline","Waline","utterances","utterancesConfig","repo","issueTerm","label","darkTheme","lightTheme","crossOrigin","_utterancesOnSwitchTheme","message","contentWindow","postMessage","twikoo","twikooConfig","onCommentLoaded","commentCount","getCommentsCount","envId","region","urls","pathname","includeReply","twikooCommentCount","count","giscus","giscusConfig","_giscusOnSwitchTheme","setConfig","_this","giscus2parentMsg","$script","cookieconsent","initialise","setInterval","getSiteTime","hidden","enablePWA","serviceWorker","register","scope","registration","ready","watermark","enable","Watermark","appendTo","appendto","opacity","width","height","rowSpacing","rowspacing","colSpacing","colspacing","rotate","fontSize","fontsize","fontFamily","fontfamily","enablePangu","pangu","autoSpacingPage","$tocNodes","decryptor","FixItDecryptor","decrypted","initTwemoji","initDetails","initLightGallery","initHighlight","initTable","initHeaderLink","initMath","initMermaid","initEcharts","initTypeit","initMapbox","$element","initToc","initTocListener","initPangu","reset","encryption","shortcode","initShortcodes","all","mDevtools","orientation","vConsole","VConsole","target","_vConsoleOnSwitchTheme","eruda","defaults","_erudaOnSwitchTheme","evalCss","setTheme","$headers","$viewComments","$fixedButtons","ACCURACY","MINIMUM","preventDefault","$mask","scroll","click","resizeBefore","_resizeTimeout","initSearch","initFixItDecryptor","initSVGIcon","initMenu","initSwitchTheme","initCookieconsent","initSiteTime","initServiceWorker","initWatermark","initMDevtools","initComment","onScroll","onResize","onClickMask","themeInit","fixit"],"sources":["../../src/js/theme.js"],"sourcesContent":["class Util {\n forEach(elements, handler) {\n elements = elements || [];\n for(let i = 0; i < elements.length; i++){\n handler(elements[i]);\n }\n }\n\n getScrollTop() {\n return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n }\n\n isMobile() {\n return window.matchMedia('only screen and (max-width: 680px)').matches;\n }\n\n isTocStatic() {\n return window.matchMedia('only screen and (max-width: 960px)').matches;\n }\n\n /**\n * add animate to element\n * @param {Element} element animate element\n * @param {String|Array} animation animation name\n * @param {Boolean} reserved reserved animation\n * @param {Function} callback remove callback\n */\n animateCSS(element, animation, reserved, callback) {\n !Array.isArray(animation) && (animation = [animation]);\n element.classList.add('animate__animated', ...animation);\n const handler = () => {\n element.classList.remove('animate__animated', ...animation);\n element.removeEventListener('animationend', handler);\n typeof callback === 'function' && callback();\n };\n !reserved && element.addEventListener('animationend', handler, false);\n }\n \n /**\n * date validator\n * @param {*} date may be date or not\n * @returns {Boolean}\n */\n isValidDate(date) {\n return date instanceof Date && !isNaN(date.getTime());\n }\n}\n\nclass FixIt {\n constructor() {\n this.config = window.config;\n this.data = this.config.data;\n this.isDark = document.body.getAttribute('data-theme') === 'dark';\n this.util = new Util();\n this.newScrollTop = this.util.getScrollTop();\n this.oldScrollTop = this.newScrollTop;\n this.scrollEventSet = new Set();\n this.resizeEventSet = new Set();\n this.switchThemeEventSet = new Set();\n this.clickMaskEventSet = new Set();\n this.disableScrollEvent = false;\n window.objectFitImages && objectFitImages();\n }\n\n initSVGIcon() {\n this.util.forEach(document.querySelectorAll('[data-svg-src]'), ($icon) => {\n fetch($icon.getAttribute('data-svg-src'))\n .then((response) => response.text())\n .then((svg) => {\n const $temp = document.createElement('div');\n $temp.insertAdjacentHTML('afterbegin', svg);\n const $svg = $temp.firstChild;\n $svg.setAttribute('data-svg-src', $icon.getAttribute('data-svg-src'));\n $svg.classList.add('icon');\n const $titleElements = $svg.getElementsByTagName('title');\n $titleElements.length && $svg.removeChild($titleElements[0])\n $icon.parentElement.replaceChild($svg, $icon);\n })\n .catch((err) => {\n console.error(err);\n });\n });\n }\n\n initTwemoji() {\n this.config.twemoji && twemoji.parse(document.body);\n }\n\n initMenu() {\n this.initMenuDesktop();\n this.initMenuMobile();\n }\n\n initMenuDesktop() {\n // This is a dirty hack for fixing sub menu position error in desktop header\n this.util.forEach(document.querySelectorAll('.has-children, #header-desktop .language'), ($item) => {\n $item.addEventListener('mouseover', function(){\n this.querySelector('.sub-menu').style.left= `${this.getBoundingClientRect().left}px`;\n })\n $item.querySelector('.sub-menu').style.minWidth= `${$item.offsetWidth - 8}px`;\n });\n }\n\n initMenuMobile() {\n const $menuToggleMobile = document.getElementById('menu-toggle-mobile');\n const $menuMobile = document.getElementById('menu-mobile');\n $menuToggleMobile.addEventListener('click', (event) => {\n document.body.classList.toggle('blur');\n $menuToggleMobile.classList.toggle('active');\n $menuMobile.classList.toggle('active');\n this.disableScrollEvent = document.body.classList.contains('blur')\n }, false);\n this._menuMobileOnClickMask = this._menuMobileOnClickMask || (() => {\n $menuToggleMobile.classList.remove('active');\n $menuMobile.classList.remove('active');\n });\n this.clickMaskEventSet.add(this._menuMobileOnClickMask);\n // add nested menu toggler\n this.util.forEach(document.querySelectorAll('.menu-item>.nested-item'), ($nestedItem) => {\n $nestedItem.addEventListener('click', function () {\n this.parentNode.querySelector('.sub-menu').classList.toggle('open');\n this.querySelector('.dropdown-icon').classList.toggle('open');\n })\n });\n }\n\n initSwitchTheme() {\n this.util.forEach(document.getElementsByClassName('theme-switch'), ($themeSwitch) => {\n $themeSwitch.addEventListener('click', () => {\n document.body.setAttribute('data-theme', document.body.getAttribute('data-theme') === 'dark' ? 'light' : 'dark');\n this.isDark = !this.isDark;\n window.localStorage && localStorage.setItem('theme', this.isDark ? 'dark' : 'light');\n for (let event of this.switchThemeEventSet) {\n event();\n }\n }, false);\n });\n }\n\n initSearch() {\n const searchConfig = this.config.search;\n const isMobile = this.util.isMobile();\n if (!searchConfig || (isMobile && this._searchMobileOnce) || (!isMobile && this._searchDesktopOnce)) {\n return;\n }\n const maxResultLength = searchConfig.maxResultLength || 10;\n const snippetLength = searchConfig.snippetLength || 50;\n const highlightTag = searchConfig.highlightTag || 'em';\n const suffix = isMobile ? 'mobile' : 'desktop';\n const $header = document.getElementById(`header-${suffix}`);\n const $searchInput = document.getElementById(`search-input-${suffix}`);\n const $searchToggle = document.getElementById(`search-toggle-${suffix}`);\n const $searchLoading = document.getElementById(`search-loading-${suffix}`);\n const $searchClear = document.getElementById(`search-clear-${suffix}`);\n\n if (isMobile) {\n this._searchMobileOnce = true;\n $searchInput.addEventListener('focus', () => {\n this.disableScrollEvent = true;\n document.body.classList.add('blur');\n $header.classList.add('open');\n }, false);\n document.getElementById('search-cancel-mobile').addEventListener('click', () => {\n this.disableScrollEvent = false;\n $header.classList.remove('open');\n document.body.classList.remove('blur');\n document.getElementById('menu-toggle-mobile').classList.remove('active');\n document.getElementById('menu-mobile').classList.remove('active');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n }, false);\n $searchClear.addEventListener('click', () => {\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n }, false);\n this._searchMobileOnClickMask = this._searchMobileOnClickMask || (() => {\n $header.classList.remove('open');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n });\n this.clickMaskEventSet.add(this._searchMobileOnClickMask);\n } else {\n this._searchDesktopOnce = true;\n $searchToggle.addEventListener('click', () => {\n document.body.classList.add('blur');\n $header.classList.add('open');\n $searchInput.focus();\n }, false);\n $searchClear.addEventListener('click', () => {\n $searchClear.style.display = 'none';\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n }, false);\n this._searchDesktopOnClickMask = this._searchDesktopOnClickMask ||(() => {\n $header.classList.remove('open');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n });\n this.clickMaskEventSet.add(this._searchDesktopOnClickMask);\n }\n $searchInput.addEventListener('input', () => {\n if ($searchInput.value === '') $searchClear.style.display = 'none';\n else $searchClear.style.display = 'inline';\n }, false);\n\n const initAutosearch = () => {\n const autosearch = autocomplete(`#search-input-${suffix}`,\n {\n hint: false,\n autoselect: true,\n dropdownMenuContainer: `#search-dropdown-${suffix}`,\n clearOnSelected: true,\n cssClasses: { noPrefix: true },\n debug: true\n },\n {\n name: 'search',\n source: (query, callback) => {\n $searchLoading.style.display = 'inline';\n $searchClear.style.display = 'none';\n const finish = (results) => {\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'inline';\n callback(results);\n };\n if (searchConfig.type === 'lunr') {\n const search = () => {\n if (lunr.queryHandler) {\n query = lunr.queryHandler(query);\n }\n const results = {};\n this._index.search(query).forEach(({ ref, matchData: { metadata } }) => {\n const matchData = this._indexData[ref];\n let { uri, title, content: context } = matchData;\n if (results[uri]) {\n return;\n }\n let position = 0;\n Object.values(metadata).forEach(({ content }) => {\n if (content) {\n const matchPosition = content.position[0][0];\n if (matchPosition < position || position === 0) {\n position = matchPosition;\n }\n }\n });\n position -= snippetLength / 5;\n if (position > 0) {\n position += context.substr(position, 20).lastIndexOf(' ') + 1;\n context = '...' + context.substr(position, snippetLength);\n } else {\n context = context.substr(0, snippetLength);\n }\n Object.keys(metadata).forEach((key) => {\n title = title.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\n context = context.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\n });\n results[uri] = {\n uri: uri,\n title: title,\n date: matchData.date,\n context: context\n };\n });\n return Object.values(results).slice(0, maxResultLength);\n };\n if (!this._index) {\n fetch(searchConfig.lunrIndexURL)\n .then((response) => response.json())\n .then((data) => {\n const indexData = {};\n this._index = lunr(function () {\n if (searchConfig.lunrLanguageCode) this.use(lunr[searchConfig.lunrLanguageCode]);\n this.ref('objectID');\n this.field('title', { boost: 50 });\n this.field('tags', { boost: 20 });\n this.field('categories', { boost: 20 });\n this.field('content', { boost: 10 });\n this.metadataWhitelist = ['position'];\n data.forEach((record) => {\n indexData[record.objectID] = record;\n this.add(record);\n });\n });\n this._indexData = indexData;\n finish(search());\n })\n .catch((err) => {\n console.error(err);\n finish([]);\n });\n } else finish(search());\n } else if (searchConfig.type === 'algolia') {\n this._algoliaIndex =\n this._algoliaIndex || algoliasearch(searchConfig.algoliaAppID, searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);\n this._algoliaIndex\n .search(query, {\n offset: 0,\n length: maxResultLength * 8,\n attributesToHighlight: ['title'],\n attributesToSnippet: [`content:${snippetLength}`],\n highlightPreTag: `<${highlightTag}>`,\n highlightPostTag: ``\n })\n .then(({ hits }) => {\n const results = {};\n hits.forEach(({ uri, date, _highlightResult: { title }, _snippetResult: { content } }) => {\n if (results[uri] && results[uri].context.length > content.value) {\n return;\n }\n results[uri] = {\n uri: uri,\n title: title.value,\n date: date,\n context: content.value\n };\n });\n finish(Object.values(results).slice(0, maxResultLength));\n })\n .catch((err) => {\n console.error(err);\n finish([]);\n });\n }\n },\n templates: {\n suggestion: ({ title, date, context }) =>\n `
${title}${date}
${context}
`,\n empty: ({ query }) => `
${searchConfig.noResultsFound}: \"${query}\"
`,\n footer: ({}) => {\n const { searchType, icon, href } =\n searchConfig.type === 'algolia'\n ? {\n searchType: 'algolia',\n icon: '',\n href: 'https://www.algolia.com/'\n }\n : {\n searchType: 'Lunr.js',\n icon: '',\n href: 'https://lunrjs.com/'\n };\n return ``;\n }\n }\n }\n );\n autosearch.on('autocomplete:selected', (_event, suggestion, _dataset, _context) => {\n window.location.assign(suggestion.uri);\n });\n if (isMobile) {\n this._searchMobile = autosearch;\n } else {\n this._searchDesktop = autosearch;\n }\n };\n if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) {\n const script = document.createElement('script');\n script.id = 'lunr-segmentit';\n script.src = searchConfig.lunrSegmentitURL;\n script.async = true;\n if (script.readyState) {\n script.onreadystatechange = () => {\n if (script.readyState == 'loaded' || script.readyState == 'complete') {\n script.onreadystatechange = null;\n initAutosearch();\n }\n };\n } else {\n script.onload = () => {\n initAutosearch();\n };\n }\n document.body.appendChild(script);\n } else {\n initAutosearch();\n }\n }\n\n initDetails() {\n this.util.forEach(document.getElementsByClassName('details'), ($details) => {\n const $summary = $details.querySelector('.details-summary');\n $summary.addEventListener('click', () => {\n $details.classList.toggle('open');\n }, false);\n });\n }\n\n initLightGallery() {\n this.config.lightGallery && lightGallery(document.getElementById('content'), this.config.lightGallery);\n }\n\n initHighlight() {\n this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), ($preChroma) => {\n const $chroma = document.createElement('div');\n $chroma.className = $preChroma.className;\n const $table = document.createElement('table');\n $chroma.appendChild($table);\n const $tbody = document.createElement('tbody');\n $table.appendChild($tbody);\n const $tr = document.createElement('tr');\n $tbody.appendChild($tr);\n const $td = document.createElement('td');\n $tr.appendChild($td);\n $preChroma.parentElement.replaceChild($chroma, $preChroma);\n $td.appendChild($preChroma);\n });\n this.util.forEach(document.querySelectorAll('.highlight > .chroma'), ($chroma) => {\n const $codeElements = $chroma.querySelectorAll('pre.chroma > code');\n if ($codeElements.length) {\n const $code = $codeElements[$codeElements.length - 1];\n const $header = document.createElement('div');\n $header.className = 'code-header ' + $code.className.toLowerCase();\n // code title\n const $title = document.createElement('span');\n $title.classList.add('code-title');\n $title.insertAdjacentHTML('afterbegin', '');\n $title.addEventListener('click', () => {\n $chroma.classList.toggle('open');\n }, false);\n $header.appendChild($title);\n // ellipses icon\n const $ellipses = document.createElement('span');\n $ellipses.insertAdjacentHTML('afterbegin', '');\n $ellipses.classList.add('ellipses');\n $ellipses.addEventListener('click', () => {\n $chroma.classList.add('open');\n }, false);\n $header.appendChild($ellipses);\n // edit button\n if (this.config.code.editable) {\n const $edit = document.createElement('span');\n $edit.classList.add('edit');\n $edit.insertAdjacentHTML('afterbegin', ``);\n $edit.addEventListener('click', () => {\n const $iconKey = $edit.querySelector('.fa-key');\n const $iconLock = $edit.querySelector('.fa-lock');\n const $preChromas = $edit.parentElement.parentElement.querySelectorAll('pre.chroma');\n const $preChroma = $preChromas.length === 2 ? $preChromas[1] : $preChromas[0];\n if ($iconKey) {\n $iconKey.classList.add('fa-lock');\n $iconKey.classList.remove('fa-key');\n $iconKey.title = this.config.code.editLockTitle;\n $preChroma.setAttribute('contenteditable', true);\n $preChroma.focus();\n } else {\n $iconLock.classList.add('fa-key');\n $iconLock.classList.remove('fa-lock');\n $iconLock.title = this.config.code.editUnLockTitle;\n $preChroma.setAttribute('contenteditable', false);\n $preChroma.blur();\n }\n }, false);\n $header.appendChild($edit);\n }\n // copy button\n if (this.config.code.copyTitle) {\n const $copy = document.createElement('span');\n $copy.insertAdjacentHTML('afterbegin', '');\n $copy.classList.add('copy');\n const code = $code.innerText;\n if (this.config.code.maxShownLines < 0 || code.split('\\n').length < this.config.code.maxShownLines + 2) {\n $chroma.classList.add('open');\n }\n $copy.title = this.config.code.copyTitle;\n $copy.addEventListener('click', () => {\n navigator.clipboard.writeText(code).then(() => {\n this.util.animateCSS($code, 'animate__flash');\n }, () => {\n console.error('Clipboard write failed!', 'Your browser does not support clipboard API!');\n });\n }, false);\n $header.appendChild($copy);\n }\n $chroma.insertBefore($header, $chroma.firstChild);\n }\n });\n }\n\n initTable() {\n this.util.forEach(document.querySelectorAll('.content table'), ($table) => {\n const $wrapper = document.createElement('div');\n $wrapper.className = 'table-wrapper';\n $table.parentElement.replaceChild($wrapper, $table);\n $wrapper.appendChild($table);\n });\n }\n\n initHeaderLink() {\n for (let num = 1; num <= 6; num++) {\n this.util.forEach(document.querySelectorAll('.single .content > h' + num), ($header) => {\n $header.classList.add('header-link');\n $header.insertAdjacentHTML('afterbegin', ``);\n });\n }\n }\n /**\n * init table of contents\n */\n initToc() {\n const $tocCore = document.getElementById('TableOfContents');\n if ($tocCore === null) {\n return;\n }\n if (document.getElementById('toc-static').getAttribute('date-kept') === 'true' || this.util.isTocStatic()) {\n const $tocContentStatic = document.getElementById('toc-content-static');\n if ($tocCore.parentElement !== $tocContentStatic) {\n $tocCore.parentElement.removeChild($tocCore);\n $tocContentStatic.appendChild($tocCore);\n }\n this._tocOnScroll && this.scrollEventSet.delete(this._tocOnScroll);\n } else {\n const $tocContentAuto = document.getElementById('toc-content-auto');\n if ($tocCore.parentElement !== $tocContentAuto) {\n $tocCore.parentElement.removeChild($tocCore);\n $tocContentAuto.appendChild($tocCore);\n }\n const $toc = document.getElementById('toc-auto');\n $toc.style.visibility = 'visible';\n this.util.animateCSS($toc, ['animate__fadeIn', 'animate__faster'], true);\n $toc.style.marginTop = document.querySelector('.single-title').clientHeight + document.querySelector('.post-meta').clientHeight + 'px';\n $toc.style.marginBottom = document.getElementById('post-footer').clientHeight + 'px';\n const $tocLinkElements = $tocCore.querySelectorAll('a:first-child');\n const $tocLiElements = $tocCore.getElementsByTagName('li');\n const $headerLinkElements = document.getElementsByClassName('header-link');\n const headerIsFixed = document.body.getAttribute('data-header-desktop') !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n this._tocOnScroll = this._tocOnScroll || (() => {\n const $comments = document.getElementById('comments');\n if ($comments) {\n $toc.style.marginBottom = document.getElementById('post-footer').clientHeight + $comments.clientHeight + 'px';\n }\n this.util.forEach($tocLinkElements, ($tocLink) => {\n $tocLink.classList.remove('active');\n });\n this.util.forEach($tocLiElements, ($tocLi) => {\n $tocLi.classList.remove('has-active');\n });\n const INDEX_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n let activeTocIndex = $headerLinkElements.length - 1;\n for (let i = 0; i < $headerLinkElements.length - 1; i++) {\n const thisTop = $headerLinkElements[i].getBoundingClientRect().top;\n const nextTop = $headerLinkElements[i + 1].getBoundingClientRect().top;\n if ((i == 0 && thisTop > INDEX_SPACING) || (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) {\n activeTocIndex = i;\n break;\n }\n }\n if (activeTocIndex !== -1) {\n $tocLinkElements[activeTocIndex].classList.add('active');\n let $parent = $tocLinkElements[activeTocIndex].parentElement;\n while ($parent !== $tocCore) {\n $parent.classList.add('has-active');\n $parent = $parent.parentElement.parentElement;\n }\n }\n });\n this._tocOnScroll();\n this.scrollEventSet.add(this._tocOnScroll);\n }\n }\n\n initTocListener() {\n const $toc = document.getElementById('toc-auto');\n const $tocContentAuto = document.getElementById('toc-content-auto');\n document.querySelector('#toc-auto>.toc-title')?.addEventListener('click', () => {\n const animation = ['animate__faster']\n const tocHidden = $toc.classList.contains('toc-hidden');\n animation.push(tocHidden ? 'animate__fadeIn' : 'animate__fadeOut');\n $tocContentAuto.classList.remove(tocHidden ? 'animate__fadeOut' : 'animate__fadeIn');\n this.util.animateCSS($tocContentAuto, animation, true);\n $toc.classList.toggle('toc-hidden');\n }, false)\n }\n\n initMath() {\n if (this.config.math) {\n renderMathInElement(document.body, this.config.math);\n }\n }\n\n initMermaid() {\n this._mermaidOnSwitchTheme = this._mermaidOnSwitchTheme || (() => {\n const $mermaidElements = document.getElementsByClassName('mermaid');\n if ($mermaidElements.length) {\n const themes = this.config.mermaid.themes ?? ['neutral', 'dark'];\n mermaid.initialize({startOnLoad: false, theme: this.isDark ? themes[1] : themes[0], securityLevel: 'loose'});\n this.util.forEach($mermaidElements, $mermaid => {\n mermaid.render('svg-' + $mermaid.id, this.data[$mermaid.id], svgCode => {\n $mermaid.innerHTML = svgCode;\n }, $mermaid);\n });\n }\n });\n this.switchThemeEventSet.add(this._mermaidOnSwitchTheme);\n this._mermaidOnSwitchTheme();\n }\n\n initEcharts() {\n this._echartsOnSwitchTheme = this._echartsOnSwitchTheme || (() => {\n this._echartsArr = this._echartsArr || [];\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].dispose();\n }\n this._echartsArr = [];\n this.util.forEach(document.getElementsByClassName('echarts'), ($echarts) => {\n const chart = echarts.init($echarts, this.isDark ? 'dark' : 'macarons', {\n renderer: 'svg'\n });\n chart.setOption(JSON.parse(this.data[$echarts.id]));\n this._echartsArr.push(chart);\n });\n });\n this.switchThemeEventSet.add(this._echartsOnSwitchTheme);\n this._echartsOnSwitchTheme();\n this._echartsOnResize = this._echartsOnResize || (() => {\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].resize();\n }\n });\n this.resizeEventSet.add(this._echartsOnResize);\n }\n\n initMapbox() {\n if (this.config.mapbox) {\n mapboxgl.accessToken = this.config.mapbox.accessToken;\n mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);\n this._mapboxArr = this._mapboxArr || [];\n this.util.forEach(document.getElementsByClassName('mapbox'), ($mapbox) => {\n const { lng, lat, zoom, lightStyle, darkStyle, marked, navigation, geolocate, scale, fullscreen } = this.data[$mapbox.id];\n const mapbox = new mapboxgl.Map({\n container: $mapbox,\n center: [lng, lat],\n zoom: zoom,\n minZoom: 0.2,\n style: this.isDark ? darkStyle : lightStyle,\n attributionControl: false\n });\n if (marked) {\n new mapboxgl.Marker().setLngLat([lng, lat]).addTo(mapbox);\n }\n if (navigation) {\n mapbox.addControl(new mapboxgl.NavigationControl(), 'bottom-right');\n }\n if (geolocate) {\n mapbox.addControl(\n new mapboxgl.GeolocateControl({\n positionOptions: {\n enableHighAccuracy: true\n },\n showUserLocation: true,\n trackUserLocation: true\n }),\n 'bottom-right'\n );\n }\n if (scale) {\n mapbox.addControl(new mapboxgl.ScaleControl());\n }\n if (fullscreen) {\n mapbox.addControl(new mapboxgl.FullscreenControl());\n }\n mapbox.addControl(new MapboxLanguage());\n this._mapboxArr.push(mapbox);\n });\n this._mapboxOnSwitchTheme = this._mapboxOnSwitchTheme || (() => {\n this.util.forEach(this._mapboxArr, (mapbox) => {\n const $mapbox = mapbox.getContainer();\n const { lightStyle, darkStyle } = this.data[$mapbox.id];\n mapbox.setStyle(this.isDark ? darkStyle : lightStyle);\n mapbox.addControl(new MapboxLanguage());\n });\n });\n this.switchThemeEventSet.add(this._mapboxOnSwitchTheme);\n }\n }\n\n initTypeit() {\n if (this.config.typeit) {\n const typeitConfig = this.config.typeit;\n const speed = typeitConfig.speed || 100;\n const cursorSpeed = typeitConfig.cursorSpeed || 1000;\n const cursorChar = typeitConfig.cursorChar || '|';\n Object.values(typeitConfig.data).forEach((group) => {\n const typeone = (i) => {\n const id = group[i];\n const instance = new TypeIt(`#${id}`, {\n strings: this.data[id],\n speed: speed,\n lifeLike: true,\n cursorSpeed: cursorSpeed,\n cursorChar: cursorChar,\n waitUntilVisible: true,\n afterComplete: () => {\n if (i === group.length - 1 && typeitConfig.duration >= 0) {\n window.setTimeout(() => {\n instance.destroy();\n }, typeitConfig.duration);\n return;\n }\n instance.destroy();\n typeone(i + 1);\n }\n }).go();\n };\n typeone(0);\n });\n }\n }\n\n initCommentLightGallery(comments, images) {\n if (!this.config.lightGallery) {\n return;\n }\n document.querySelectorAll(comments).forEach(($content) => {\n const $imgs = $content.querySelectorAll(images + ':not([lightgallery-loaded])');\n $imgs.forEach(($img) => {\n $img.setAttribute('lightgallery-loaded', '');\n const $link = document.createElement('a');\n $link.setAttribute('class', 'comment-lightgallery');\n $link.setAttribute('href', $img.src);\n $link.append($img.cloneNode());\n $img.replaceWith($link);\n });\n if ($imgs.length) {\n lightGallery($content, {\n selector: '.comment-lightgallery',\n actualSize: false,\n hideBarsDelay: 2000,\n speed: 400\n });\n }\n });\n }\n\n initComment() {\n if (!this.config.comment) {\n return;\n }\n if (this.config.comment.artalk) {\n const artalk = new Artalk(this.config.comment.artalk);\n artalk.setDarkMode(this.isDark);\n this.switchThemeEventSet.add(() => {\n artalk.setDarkMode(this.isDark);\n });\n artalk.on('comments-loaded', () => {\n this.config.comment.artalk.lightgallery && this.initCommentLightGallery('.atk-comment .atk-content', 'img:not([atk-emoticon])');\n });\n return artalk;\n }\n if (this.config.comment.gitalk) {\n this.config.comment.gitalk.body = decodeURI(window.location.href);\n const gitalk = new Gitalk(this.config.comment.gitalk);\n gitalk.render('gitalk');\n return gitalk;\n }\n if (this.config.comment.valine) {\n return new Valine(this.config.comment.valine);\n }\n if (this.config.comment.waline) {\n return Waline.init(this.config.comment.waline);\n }\n if (this.config.comment.utterances) {\n const utterancesConfig = this.config.comment.utterances;\n const script = document.createElement('script');\n script.src = 'https://utteranc.es/client.js';\n script.setAttribute('repo', utterancesConfig.repo);\n script.setAttribute('issue-term', utterancesConfig.issueTerm);\n if (utterancesConfig.label) script.setAttribute('label', utterancesConfig.label);\n script.setAttribute('theme', this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme);\n script.crossOrigin = 'anonymous';\n script.async = true;\n document.getElementById('utterances').appendChild(script);\n this._utterancesOnSwitchTheme = this._utterancesOnSwitchTheme || (() => {\n const message = {\n type: 'set-theme',\n theme: this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme\n };\n document.querySelector('.utterances-frame')?.contentWindow.postMessage(message, 'https://utteranc.es');\n });\n this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);\n return;\n }\n if (this.config.comment.twikoo) {\n const twikooConfig = this.config.comment.twikoo;\n if (twikooConfig.lightgallery) {\n twikooConfig.onCommentLoaded = () => {\n this.initCommentLightGallery('.tk-comments .tk-content', 'img:not(.tk-owo-emotion)');\n };\n }\n twikoo.init(twikooConfig);\n if (twikooConfig.commentCount) {\n // https://twikoo.js.org/api.html#get-comments-count\n twikoo\n .getCommentsCount({\n envId: twikooConfig.envId,\n region: twikooConfig.region,\n urls: [window.location.pathname],\n includeReply: false\n })\n .then(function (response) {\n const twikooCommentCount = document.getElementById('twikoo-comment-count');\n if (twikooCommentCount) twikooCommentCount.innerHTML = response[0].count;\n });\n }\n return;\n }\n if (this.config.comment.giscus) {\n const giscusConfig = this.config.comment.giscus;\n this._giscusOnSwitchTheme = this._giscusOnSwitchTheme || (() => {\n const message = { setConfig: { theme: this.isDark ? giscusConfig.darkTheme : giscusConfig.lightTheme }};\n document.querySelector('.giscus-frame')?.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');\n });\n this.switchThemeEventSet.add(this._giscusOnSwitchTheme);\n const _this = this;\n _this.giscus2parentMsg = window.addEventListener('message', (event) => {\n const $script = document.querySelector('#giscus>script');\n if ($script){\n _this._giscusOnSwitchTheme();\n $script.parentElement.removeChild($script);\n }\n window.removeEventListener('message', _this.giscus2parentMsg);\n });\n return;\n }\n }\n\n initCookieconsent() {\n this.config.cookieconsent && cookieconsent.initialise(this.config.cookieconsent);\n }\n\n getSiteTime = () => {\n let now = new Date();\n let run = new Date(this.config.siteTime);\n let $runTimes = document.querySelector('.run-times');\n if (!this.util.isValidDate(run) || !$runTimes) {\n clearInterval(this.siteTime);\n $runTimes && $runTimes.parentNode.remove();\n return;\n }\n let runTime = (now - run) / 1000,\n days = Math.floor(runTime / 60 / 60 / 24),\n hours = Math.floor(runTime / 60 / 60 - 24 * days),\n minutes = Math.floor(runTime / 60 - 24 * 60 * days - 60 * hours),\n seconds = Math.floor((now - run) / 1000 - 24 * 60 * 60 * days - 60 * 60 * hours - 60 * minutes);\n $runTimes.innerHTML = `${days}, ${String(hours).padStart(2, 0)}:${String(minutes).padStart(2, 0)}:${String(seconds).padStart(2, 0)}`;\n }\n\n initSiteTime() {\n if (this.config.siteTime) {\n this.siteTime = setInterval(this.getSiteTime, 500);\n document.addEventListener('visibilitychange', () => {\n if (document.hidden) {\n return clearInterval(this.siteTime);\n }\n this.siteTime = setInterval(this.getSiteTime, 500);\n }, false);\n }\n }\n\n initServiceWorker() {\n if (this.config.enablePWA && 'serviceWorker' in navigator) {\n navigator.serviceWorker\n .register('/service-worker.min.js', { scope: '/' })\n .then(function (registration) {\n // console.log('Service Worker Registered');\n })\n .catch(function (error) {\n console.error('error: ', error);\n });\n navigator.serviceWorker\n .ready\n .then(function (registration) {\n // console.log('Service Worker Ready');\n });\n }\n }\n\n initWatermark() {\n this.config.watermark?.enable &&\n new Watermark({\n content: this.config.watermark.content || '\"FixIt FixIt Theme',\n appendTo: this.config.watermark.appendto || '.wrapper>main',\n opacity: this.config.watermark.opacity,\n width: this.config.watermark.width,\n height: this.config.watermark.height,\n rowSpacing: this.config.watermark.rowspacing,\n colSpacing: this.config.watermark.colspacing,\n rotate: this.config.watermark.rotate,\n fontSize: this.config.watermark.fontsize,\n fontFamily: this.config.watermark.fontfamily\n });\n }\n\n initPangu() {\n // TODO 待优化:只渲染\n this.config.enablePangu && pangu.autoSpacingPage();\n }\n\n initFixItDecryptor() {\n const $tocNodes = document.querySelectorAll('#toc-auto>.d-none, #toc-static.d-none');\n this.decryptor = new FixItDecryptor({\n decrypted: () => {\n this.initTwemoji();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n this.util.forEach($tocNodes, ($element) => {\n $element.classList.remove('d-none');\n });\n this.initToc();\n this.initTocListener();\n this.initPangu();\n },\n reset: () => {\n this.util.forEach($tocNodes, ($element) => {\n $element.classList.add('d-none');\n });\n }\n });\n if (this.config.encryption?.shortcode) {\n this.decryptor.addEventListener('decrypted', () => {\n this.decryptor.initShortcodes();\n })\n this.decryptor.initShortcodes();\n }\n this.config.encryption?.all && this.decryptor.init();\n }\n\n initMDevtools() {\n const type = this.config?.mDevtools\n if (typeof window.orientation === 'undefined') {\n return;\n }\n if(type === 'vConsole') {\n const vConsole = new VConsole({\n target: '.widgets',\n theme: this.isDark ? 'dark' : 'light'\n });\n this._vConsoleOnSwitchTheme = this._vConsoleOnSwitchTheme || (() => {\n vConsole.setOption('theme', this.isDark ? 'dark' : 'light');\n });\n this.switchThemeEventSet.add(this._vConsoleOnSwitchTheme);\n }\n if(type === 'eruda') {\n eruda.init({\n defaults: { theme: this.isDark ? 'Dark' : 'Light' }\n });\n this._erudaOnSwitchTheme = this._erudaOnSwitchTheme || (() => {\n eruda.util.evalCss.setTheme(this.isDark ? 'Dark' : 'Light');\n });\n this.switchThemeEventSet.add(this._erudaOnSwitchTheme);\n }\n }\n\n onScroll() {\n const $headers = [];\n if (document.body.getAttribute('data-header-desktop') === 'auto') {\n $headers.push(document.getElementById('header-desktop'));\n }\n if (document.body.getAttribute('data-header-mobile') === 'auto') {\n $headers.push(document.getElementById('header-mobile'));\n }\n if (document.getElementById('comments')) {\n const $viewComments = document.getElementById('view-comments');\n $viewComments.href = `#comments`;\n $viewComments.style.display = 'block';\n }\n const $fixedButtons = document.getElementById('fixed-buttons');\n const ACCURACY = 20, MINIMUM = 100;\n window.addEventListener('scroll', (event) => {\n if (this.disableScrollEvent) {\n event.preventDefault();\n return;\n }\n const $mask = document.getElementById('mask');\n this.newScrollTop = this.util.getScrollTop();\n const scroll = this.newScrollTop - this.oldScrollTop;\n const isMobile = this.util.isMobile();\n this.util.forEach($headers, ($header) => {\n if (scroll > ACCURACY) {\n $header.classList.remove('animate__fadeInDown');\n this.util.animateCSS($header, ['animate__fadeOutUp', 'animate__faster'], true);\n $mask.click();\n } else if (scroll < -ACCURACY) {\n $header.classList.remove('animate__fadeOutUp');\n this.util.animateCSS($header, ['animate__fadeInDown', 'animate__faster'], true);\n $mask.click();\n }\n });\n // whether to show b2t button\n if (this.newScrollTop > MINIMUM) {\n if (isMobile && scroll > ACCURACY) {\n $fixedButtons.classList.remove('animate__fadeIn');\n this.util.animateCSS($fixedButtons, ['animate__fadeOut', 'animate__faster'], true);\n } else if (!isMobile || scroll < -ACCURACY) {\n $fixedButtons.style.display = 'block';\n $fixedButtons.classList.remove('animate__fadeOut');\n this.util.animateCSS($fixedButtons, ['animate__fadeIn', 'animate__faster'], true);\n }\n } else {\n if (!isMobile) {\n $fixedButtons.classList.remove('animate__fadeIn');\n this.util.animateCSS($fixedButtons, ['animate__fadeOut', 'animate__faster'], true);\n }\n $fixedButtons.style.display = 'none';\n }\n for (let event of this.scrollEventSet) {\n event();\n }\n this.oldScrollTop = this.newScrollTop;\n }, false);\n }\n\n onResize() {\n let resizeBefore = this.util.isMobile();\n window.addEventListener('resize', () => {\n if (!this._resizeTimeout) {\n this._resizeTimeout = window.setTimeout(() => {\n this._resizeTimeout = null;\n for (let event of this.resizeEventSet) {\n event();\n }\n this.initToc();\n this.initMermaid();\n this.initSearch();\n\n const isMobile = this.util.isMobile()\n if (isMobile !== resizeBefore) {\n document.getElementById('mask').click();\n resizeBefore = isMobile;\n }\n }, 100);\n }\n }, false);\n }\n\n onClickMask() {\n document.getElementById('mask').addEventListener('click', () => {\n if (!document.body.classList.contains('blur')) {\n return;\n }\n for (let event of this.clickMaskEventSet) {\n event();\n }\n this.disableScrollEvent = false;\n document.body.classList.remove('blur');\n }, false);\n }\n\n init() {\n try {\n if (this.config.encryption) {\n this.initFixItDecryptor();\n } else if(!this.config.encryption?.all) {\n this.initTwemoji();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n this.initPangu();\n }\n this.initSVGIcon();\n this.initMenu();\n this.initSwitchTheme();\n this.initSearch();\n this.initCookieconsent();\n this.initSiteTime();\n this.initServiceWorker();\n this.initWatermark();\n this.initMDevtools();\n\n window.setTimeout(() => {\n this.initComment();\n if (!this.config.encryption?.all) {\n this.initToc();\n this.initTocListener();\n }\n this.onScroll();\n this.onResize();\n this.onClickMask();\n }, 100);\n } catch (err) {\n console.error(err);\n }\n }\n}\n\nconst themeInit = () => {\n window.fixit = new FixIt();\n window.fixit.init();\n};\n\nif (document.readyState !== 'loading') {\n themeInit();\n} else {\n document.addEventListener('DOMContentLoaded', themeInit, false);\n}\n"],"mappings":"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"} \ No newline at end of file diff --git a/layouts/404.html b/layouts/404.html index 9484f50d..f22a24b2 100644 --- a/layouts/404.html +++ b/layouts/404.html @@ -10,7 +10,7 @@

- + {{- /* Body wrapper */ -}}
{{- partial "header.html" . -}} diff --git a/layouts/partials/plugin/analytics.html b/layouts/partials/plugin/analytics.html index f08e85a1..58f9bf0b 100644 --- a/layouts/partials/plugin/analytics.html +++ b/layouts/partials/plugin/analytics.html @@ -3,7 +3,7 @@ {{- if $analytics.enable -}} {{- /* Google Analytics */ -}} {{- with $analytics.google.id -}} - @@ -12,7 +12,7 @@ {{- /* Fathom Analytics */ -}} {{- with $analytics.fathom.id -}} - + {{- else if strings.HasPrefix .Source " + {{- end -}} {{- end -}} diff --git a/src/js/theme.js b/src/js/theme.js index 405563ab..2faed9c4 100644 --- a/src/js/theme.js +++ b/src/js/theme.js @@ -359,7 +359,6 @@ class FixIt { if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) { const script = document.createElement('script'); script.id = 'lunr-segmentit'; - script.type = 'text/javascript'; script.src = searchConfig.lunrSegmentitURL; script.async = true; if (script.readyState) { @@ -767,7 +766,6 @@ class FixIt { const utterancesConfig = this.config.comment.utterances; const script = document.createElement('script'); script.src = 'https://utteranc.es/client.js'; - script.type = 'text/javascript'; script.setAttribute('repo', utterancesConfig.repo); script.setAttribute('issue-term', utterancesConfig.issueTerm); if (utterancesConfig.label) script.setAttribute('label', utterancesConfig.label);