From 6df8f283f240fd8f24cf8787318f4946eb200b69 Mon Sep 17 00:00:00 2001 From: Cell <1024@lruihao.cn> Date: Sun, 11 Jun 2023 18:43:08 +0800 Subject: [PATCH] :sparkles: Feat: add code block attributes support (#330) --- CHANGELOG.md | 4 ++++ assets/css/_partials/_single/_code.scss | 6 ++++++ assets/js/theme.min.js | 2 +- assets/js/theme.min.js.map | 2 +- docs | 2 +- layouts/_default/_markup/render-codeblock.html | 3 +++ src/js/theme.js | 5 +++-- 7 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 layouts/_default/_markup/render-codeblock.html diff --git a/CHANGELOG.md b/CHANGELOG.md index 638a68c24..3b241dad0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. +## v0.2.18-lts + +- :sparkles: Feat: add code block attributes support ([#330](https://github.com/hugo-fixit/FixIt/issues/330)) + ## v0.2.18 [2023.3.31] > **Note** diff --git a/assets/css/_partials/_single/_code.scss b/assets/css/_partials/_single/_code.scss index c268ae7fd..9410772be 100644 --- a/assets/css/_partials/_single/_code.scss +++ b/assets/css/_partials/_single/_code.scss @@ -114,6 +114,12 @@ pre { padding: 0 0.2rem; @include transition(transform 0.2s ease); } + + .title-inner { + position: absolute; + left: 50%; + transform: translateX(-50%); + } } .code-title::after { diff --git a/assets/js/theme.min.js b/assets/js/theme.min.js index 93673c5c2..f8903119c 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 "+obj)}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){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(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(){var _window$localStorage;document.body.dataset.theme=document.body.dataset.theme==="dark"?"light":"dark";_this4.isDark=!_this4.isDark;(_window$localStorage=window.localStorage)===null||_window$localStorage===void 0?void 0:_window$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 _searchConfig$maxResu,_searchConfig$snippet,_searchConfig$highlig,_searchConfig$isCaseS,_searchConfig$minMatc,_searchConfig$findAll,_searchConfig$locatio,_searchConfig$thresho,_searchConfig$distanc,_searchConfig$ignoreL,_searchConfig$useExte,_searchConfig$ignoreF,_this5=this;var searchConfig=this.config.search;var isMobile=this.util.isMobile();if(!searchConfig||isMobile&&this._searchMobileOnce||!isMobile&&this._searchDesktopOnce){return}var maxResultLength=(_searchConfig$maxResu=searchConfig.maxResultLength)!==null&&_searchConfig$maxResu!==void 0?_searchConfig$maxResu:10;var snippetLength=(_searchConfig$snippet=searchConfig.snippetLength)!==null&&_searchConfig$snippet!==void 0?_searchConfig$snippet:50;var highlightTag=(_searchConfig$highlig=searchConfig.highlightTag)!==null&&_searchConfig$highlig!==void 0?_searchConfig$highlig:"em";var isCaseSensitive=(_searchConfig$isCaseS=searchConfig.isCaseSensitive)!==null&&_searchConfig$isCaseS!==void 0?_searchConfig$isCaseS:false;var minMatchCharLength=(_searchConfig$minMatc=searchConfig.minMatchCharLength)!==null&&_searchConfig$minMatc!==void 0?_searchConfig$minMatc:1;var findAllMatches=(_searchConfig$findAll=searchConfig.findAllMatches)!==null&&_searchConfig$findAll!==void 0?_searchConfig$findAll:false;var location=(_searchConfig$locatio=searchConfig.location)!==null&&_searchConfig$locatio!==void 0?_searchConfig$locatio:0;var threshold=(_searchConfig$thresho=searchConfig.threshold)!==null&&_searchConfig$thresho!==void 0?_searchConfig$thresho:0.3;var distance=(_searchConfig$distanc=searchConfig.distance)!==null&&_searchConfig$distanc!==void 0?_searchConfig$distanc:100;var ignoreLocation=(_searchConfig$ignoreL=searchConfig.ignoreLocation)!==null&&_searchConfig$ignoreL!==void 0?_searchConfig$ignoreL:false;var useExtendedSearch=(_searchConfig$useExte=searchConfig.useExtendedSearch)!==null&&_searchConfig$useExte!==void 0?_searchConfig$useExte:false;var ignoreFieldNorm=(_searchConfig$ignoreF=searchConfig.ignoreFieldNorm)!==null&&_searchConfig$ignoreF!==void 0?_searchConfig$ignoreF:false;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([])})}else if(searchConfig.type==="fuse"){var _search=function _search(){var results={};window._index.search(query).forEach(function(_ref5){var item=_ref5.item,refIndex=_ref5.refIndex,matches=_ref5.matches;var title=item.title;var content=item.content;matches.forEach(function(_ref6){var indices=_ref6.indices,value=_ref6.value,key=_ref6.key;if(key==="content"){var offset=0;for(var i=0;i")+substr+"");content=content.substring(0,indices[i][0]+offset)+tag+content.substring(indices[i][1]+1+offset,content.length);offset+=highlightTag.length*2+5}}else if(key==="title"){var _offset=0;for(var _i=0;_i")+_substr+"");title=title.substring(0,indices[_i][0]+_offset)+_tag+title.substring(indices[_i][1]+1+_offset,content.length);_offset+=highlightTag.length*2+5}}});results[item.uri]={uri:item.uri,title:title,date:item.date,context:content}});return Object.values(results).slice(0,maxResultLength)};if(!window._index){fetch(searchConfig.fuseIndexURL).then(function(response){return response.json()}).then(function(data){var options={isCaseSensitive:isCaseSensitive,findAllMatches:findAllMatches,minMatchCharLength:minMatchCharLength,location:location,threshold:threshold,distance:distance,ignoreLocation:ignoreLocation,useExtendedSearch:useExtendedSearch,ignoreFieldNorm:ignoreFieldNorm,includeScore:false,shouldSort:true,includeMatches:true,keys:["content","title"]};window._index=new Fuse(data,options);finish(_search())}).catch(function(err){console.error(err);finish([])})}else finish(_search())}},templates:{suggestion:function suggestion(_ref7){var title=_ref7.title,date=_ref7.date,context=_ref7.context;return"
".concat(title,"").concat(date,"
").concat(context,"
")},empty:function empty(_ref8){var query=_ref8.query;return"
".concat(searchConfig.noResultsFound,": \"").concat(query,"\"
")},footer:function footer(_ref9){_objectDestructuringEmpty(_ref9);var _ref10=searchConfig.type==="algolia"?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:searchConfig.type==="lunr"?{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"}:{searchType:"Fuse.js",icon:"",href:"https://fusejs.io/"},searchType=_ref10.searchType,icon=_ref10.icon,href=_ref10.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(){if(this.config.lightgallery){lightGallery(document.getElementById("content"),{plugins:[lgThumbnail,lgZoom],selector:".lightgallery",speed:400,hideBarsDelay:2000,allowMediaOverlap:true,exThumbImage:"data-thumbnail",toggleThumb:true,thumbWidth:80,thumbHeight:"60px",actualSize:false,showZoomInOutIcons:true,licenseKey:"none"})}}},{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.trim();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(typeof APlayer==="function"){var $newTocCore=$tocCore.cloneNode(true);$tocCore.parentElement.replaceChild($newTocCore,$tocCore);$tocCore=$newTocCore}if(document.getElementById("toc-static").dataset.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);var $postMeta=document.querySelector(".post-meta");$toc.style.marginTop="".concat($postMeta.offsetTop+$postMeta.clientHeight,"px");var $tocLinkElements=$tocCore.querySelectorAll("a:first-child");var $tocLiElements=$tocCore.getElementsByTagName("li");var $headerLinkElements=document.getElementsByClassName("header-link");var headerIsFixed=document.body.dataset.headerDesktop!=="normal";var headerHeight=document.getElementById("header-desktop").offsetHeight;document.querySelector(".container").addEventListener("resize",function(){$toc.style.marginBottom="".concat(document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop,"px")});this._tocOnScroll=this._tocOnScroll||function(){$toc.style.marginBottom="".concat(document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop,"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$querySelect2,_this9=this;var $toc=document.getElementById("toc-auto");var $tocContentAuto=document.getElementById("toc-content-auto");(_document$querySelect2=document.querySelector("#toc-auto>.toc-title"))===null||_document$querySelect2===void 0?void 0:_document$querySelect2.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:"switchMermaidTheme",value:function switchMermaidTheme(theme){var _this10=this;var $mermaidElements=document.getElementsByClassName("mermaid");if($mermaidElements.length){var _this$config$mermaid$;var themes=(_this$config$mermaid$=this.config.mermaid.themes)!==null&&_this$config$mermaid$!==void 0?_this$config$mermaid$:["default","dark","neutral"];mermaid.initialize({startOnLoad:false,theme:theme!==null&&theme!==void 0?theme:this.isDark?themes[1]:themes[0],securityLevel:"loose"});this.util.forEach($mermaidElements,function($mermaid){mermaid.render("svg-"+$mermaid.id,_this10.data[$mermaid.id],function(svgCode){$mermaid.innerHTML=svgCode},$mermaid)})}}},{key:"initMermaid",value:function initMermaid(){var _this11=this;this.switchMermaidTheme();this.switchThemeEventSet.add(function(){_this11.switchMermaidTheme()});this.beforeprintEventSet.add(function(){_this11.switchMermaidTheme("neutral")})}},{key:"initEcharts",value:function initEcharts(){var _this12=this;if(!this.config.echarts){return}echarts.registerTheme("light",this.config.echarts.lightTheme);echarts.registerTheme("dark",this.config.echarts.darkTheme);this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){_this12._echartsArr=_this12._echartsArr||[];for(var i=0;i<_this12._echartsArr.length;i++){_this12._echartsArr[i].dispose()}_this12._echartsArr=[];_this12.util.forEach(document.getElementsByClassName("echarts"),function($echarts){var chart=echarts.init($echarts,_this12.isDark?"dark":"light",{renderer:"svg"});chart.setOption(JSON.parse(_this12.data[$echarts.id]));_this12._echartsArr.push(chart)})};this.switchThemeEventSet.add(this._echartsOnSwitchTheme);this._echartsOnSwitchTheme();this._echartsOnResize=this._echartsOnResize||function(){for(var i=0;i<_this12._echartsArr.length;i++){_this12._echartsArr[i].resize()}};this.resizeEventSet.add(this._echartsOnResize)}},{key:"initMapbox",value:function initMapbox(){var _this13=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 _this13$data$$mapbox$=_this13.data[$mapbox.id],lng=_this13$data$$mapbox$.lng,lat=_this13$data$$mapbox$.lat,zoom=_this13$data$$mapbox$.zoom,lightStyle=_this13$data$$mapbox$.lightStyle,darkStyle=_this13$data$$mapbox$.darkStyle,marked=_this13$data$$mapbox$.marked,navigation=_this13$data$$mapbox$.navigation,geolocate=_this13$data$$mapbox$.geolocate,scale=_this13$data$$mapbox$.scale,fullscreen=_this13$data$$mapbox$.fullscreen;var mapbox=new mapboxgl.Map({container:$mapbox,center:[lng,lat],zoom:zoom,minZoom:0.2,style:_this13.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);_this13._mapboxArr.push(mapbox)});this._mapboxOnSwitchTheme=this._mapboxOnSwitchTheme||function(){_this13.util.forEach(_this13._mapboxArr,function(mapbox){var $mapbox=mapbox.getContainer();var _this13$data$$mapbox$2=_this13.data[$mapbox.id],lightStyle=_this13$data$$mapbox$2.lightStyle,darkStyle=_this13$data$$mapbox$2.darkStyle;mapbox.setStyle(_this13.isDark?darkStyle:lightStyle);mapbox.addControl(new MapboxLanguage)})};this.switchThemeEventSet.add(this._mapboxOnSwitchTheme)}}},{key:"initTypeit",value:function initTypeit(){var _this14=this;if(this.config.typeit){var _typeitConfig$loop;var typeitConfig=this.config.typeit;var speed=typeitConfig.speed||100;var cursorSpeed=typeitConfig.cursorSpeed||1000;var cursorChar=typeitConfig.cursorChar||"|";var loop=(_typeitConfig$loop=typeitConfig.loop)!==null&&_typeitConfig$loop!==void 0?_typeitConfig$loop:false;Object.values(typeitConfig.data).forEach(function(group){var typeone=function typeone(i){var id=group[i];var shortcodeLoop=document.querySelector("#".concat(id)).parentElement.dataset.loop;var instance=new TypeIt("#".concat(id),{strings:_this14.data[id],speed:speed,lifeLike:true,cursorSpeed:cursorSpeed,cursorChar:cursorChar,waitUntilVisible:true,loop:shortcodeLoop?JSON.parse(shortcodeLoop):loop,afterComplete:function afterComplete(){if(i===group.length-1){if(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){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 _this$config$comment,_this15=this;if(!((_this$config$comment=this.config.comment)!==null&&_this$config$comment!==void 0&&_this$config$comment.enable)){return}if(document.querySelector("#comments")){var $viewCommentsBtn=document.querySelector(".view-comments");$viewCommentsBtn.classList.remove("d-none");$viewCommentsBtn.addEventListener("click",function(){_this15.util.scrollIntoView("#comments")},false)}this.config.comment.expired&&document.querySelector("#comments").remove();if(this.config.comment.artalk){if(this.config.comment.expired){return Artalk.LoadCountWidget({server:this.config.comment.artalk.server,site:this.config.comment.artalk.site,pvEl:this.config.comment.artalk.pvEl,countEl:this.config.comment.artalk.countEl})}var artalk=Artalk.init(this.config.comment.artalk);artalk.setDarkMode(this.isDark);this.switchThemeEventSet.add(function(){artalk.setDarkMode(_this15.isDark)});artalk.on("comments-loaded",function(){_this15.config.comment.artalk.lightgallery&&_this15.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){if(this.config.comment.expired){this.config.comment.waline.pageview&&Waline.pageviewCount({serverURL:this.config.comment.waline.serverURL,path:window.location.pathname});return}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$querySelect3;var message={type:"set-theme",theme:_this15.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme};(_document$querySelect3=document.querySelector(".utterances-frame"))===null||_document$querySelect3===void 0?void 0:_document$querySelect3.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(){_this15.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$querySelect4;var message={setConfig:{theme:_this15.isDark?giscusConfig.darkTheme:giscusConfig.lightTheme}};(_document$querySelect4=document.querySelector(".giscus-frame"))===null||_document$querySelect4===void 0?void 0:_document$querySelect4.contentWindow.postMessage({giscus:message},"https://giscus.app")};this.switchThemeEventSet.add(this._giscusOnSwitchTheme);this.giscus2parentMsg=window.addEventListener("message",function(event){var $script=document.querySelector("#giscus>script");if($script){_this15._giscusOnSwitchTheme();$script.parentElement.removeChild($script)}},{once:true});return}}},{key:"initCookieconsent",value:function initCookieconsent(){this.config.cookieconsent&&cookieconsent.initialise(this.config.cookieconsent)}},{key:"initSiteTime",value:function initSiteTime(){var _this16=this;if(this.config.siteTime){this.siteTime=setInterval(this.getSiteTime,500);document.addEventListener("visibilitychange",function(){if(document.hidden){return clearInterval(_this16.siteTime)}_this16.siteTime=setInterval(_this16.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,_document$querySelect5,_document$querySelect6;((_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||"".concat((_document$querySelect5=(_document$querySelect6=document.querySelector("footer .fixit-icon"))===null||_document$querySelect6===void 0?void 0:_document$querySelect6.outerHTML)!==null&&_document$querySelect5!==void 0?_document$querySelect5:""," 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(){var _this$config$pangu;if(!((_this$config$pangu=this.config.pangu)!==null&&_this$config$pangu!==void 0&&_this$config$pangu.enable)){return}var selector=this.config.pangu.selector;if(selector){if(selector.startsWith("#")){pangu.spacingElementById(selector.slice(1))}else if(selector.startsWith(".")){pangu.spacingElementByClassName(selector.slice(1))}else{pangu.spacingElementByTagName(selector)}return}pangu.autoSpacingPage()}},{key:"initFixItDecryptor",value:function initFixItDecryptor(){var _this17=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(){_this17.initTwemoji();_this17.initDetails();_this17.initLightGallery();_this17.initHighlight();_this17.initTable();_this17.initHeaderLink();_this17.initMath();_this17.initMermaid();_this17.initEcharts();_this17.initTypeit();_this17.initMapbox();_this17.util.forEach($tocNodes,function($element){$element.classList.remove("d-none")});_this17.initToc();_this17.initTocListener();_this17.initPangu()},reset:function reset(){_this17.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(){_this17.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,_this18=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",_this18.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(_this18.isDark?"Dark":"Light")};this.switchThemeEventSet.add(this._erudaOnSwitchTheme)}}},{key:"initAutoMark",value:function initAutoMark(){var _this19=this,_window$localStorage3;if(!this.config.autoBookmark){return}window.addEventListener("beforeunload",function(){var _window$localStorage2;(_window$localStorage2=window.localStorage)===null||_window$localStorage2===void 0?void 0:_window$localStorage2.setItem("fixit-bookmark/#".concat(location.pathname),_this19.util.getScrollTop())});var scrollTop=Number((_window$localStorage3=window.localStorage)===null||_window$localStorage3===void 0?void 0:_window$localStorage3.getItem("fixit-bookmark/#".concat(location.pathname)));if(scrollTop&&location.hash===""){window.scrollTo({top:scrollTop,behavior:"smooth"})}}},{key:"initReward",value:function initReward(){var _this20=this;var $rewards=document.querySelectorAll(".post-reward [data-mode=\"fixed\"]");if(!$rewards.length){return}if(this.util.isMobile()){this.util.forEach($rewards,function($reward){$reward.removeAttribute("data-mode")});return}var _closeRewardExclude=function _closeRewardExclude(id){_this20.util.forEach($rewards,function($reward){var $rewardInput=$reward.parentElement.querySelector(".reward-input");if($rewardInput.id!==id){$rewardInput.checked=false}})};this.util.forEach($rewards,function($reward){$reward.previousElementSibling.addEventListener("click",function(){_closeRewardExclude(this.getAttribute("for"))},false)});this.scrollEventSet.add(_closeRewardExclude)}},{key:"onScroll",value:function onScroll(){var _this21=this;var $headers=[];var ACCURACY=20;var $fixedButtons=document.querySelector(".fixed-buttons");var $backToTop=document.querySelector(".back-to-top");var $readingProgressBar=document.querySelector(".reading-progress-bar");var scrollTimer=void 0;if(document.body.dataset.headerDesktop==="auto"){$headers.push(document.getElementById("header-desktop"))}if(document.body.dataset.headerMobile==="auto"){$headers.push(document.getElementById("header-mobile"))}$backToTop===null||$backToTop===void 0?void 0:$backToTop.addEventListener("click",function(){_this21.util.scrollIntoView("body")});window.addEventListener("scroll",function(event){if(_this21.disableScrollEvent){event.preventDefault();return}var $mask=document.getElementById("mask");_this21.newScrollTop=_this21.util.getScrollTop();var scroll=_this21.newScrollTop-_this21.oldScrollTop;document.body.toggleAttribute("data-scroll",true);scrollTimer&&window.clearTimeout(scrollTimer);scrollTimer=window.setTimeout(function(){document.body.toggleAttribute("data-scroll")},500);_this21.util.forEach($headers,function($header){if(scroll>ACCURACY){$header.classList.remove("animate__fadeInDown");_this21.util.animateCSS($header,["animate__fadeOutUp"],true);$mask.click()}else if(scroll<-ACCURACY){$header.classList.remove("animate__fadeOutUp");_this21.util.animateCSS($header,["animate__fadeInDown"],true);$mask.click()}});var contentHeight=document.body.scrollHeight-window.innerHeight;var scrollPercent=Math.max(Math.min(100*Math.max(_this21.newScrollTop,0)/contentHeight,100),0);if($readingProgressBar){$readingProgressBar.style.setProperty("--progress","".concat(scrollPercent.toFixed(2),"%"))}if($fixedButtons){if(scrollPercent>1){$fixedButtons.classList.remove("d-none","animate__fadeOut");_this21.util.animateCSS($fixedButtons,["animate__fadeIn"],true)}else{$fixedButtons.classList.remove("animate__fadeIn");_this21.util.animateCSS($fixedButtons,["animate__fadeOut"],true,function(){$fixedButtons.classList.contains("animate__fadeOut")&&$fixedButtons.classList.add("d-none")})}if($backToTop){$backToTop.querySelector("span").innerText="".concat(Math.round(scrollPercent),"%")}}var _iterator2=_createForOfIteratorHelper(_this21.scrollEventSet),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var _event2=_step2.value;_event2()}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}_this21.oldScrollTop=_this21.newScrollTop},false)}},{key:"onResize",value:function onResize(){var _this22=this;var resizeBefore=this.util.isMobile();window.addEventListener("resize",function(){if(!_this22._resizeTimeout){_this22._resizeTimeout=window.setTimeout(function(){_this22._resizeTimeout=null;var _iterator3=_createForOfIteratorHelper(_this22.resizeEventSet),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var event=_step3.value;event()}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}_this22.initToc();_this22.switchMermaidTheme();_this22.initSearch();var isMobile=_this22.util.isMobile();if(isMobile!==resizeBefore){document.getElementById("mask").click();resizeBefore=isMobile}},100)}},false)}},{key:"onClickMask",value:function onClickMask(){var _this23=this;document.getElementById("mask").addEventListener("click",function(){if(!document.body.classList.contains("blur")){return}var _iterator4=_createForOfIteratorHelper(_this23.clickMaskEventSet),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var event=_step4.value;event()}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}_this23.disableScrollEvent=false;document.body.classList.remove("blur")},false)}},{key:"beforeprint",value:function beforeprint(){var _this24=this;window.addEventListener("beforeprint",function(){_this24.util.forEach(document.querySelectorAll(".chroma"),function($el){$el.classList.toggle("open",true)});var _iterator5=_createForOfIteratorHelper(_this24.beforeprintEventSet),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var event=_step5.value;event()}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}},false)}},{key:"init",value:function init(){var _this25=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.initThemeColor();this.initSVGIcon();this.initMenu();this.initSwitchTheme();this.initSearch();this.initCookieconsent();this.initSiteTime();this.initServiceWorker();this.initWatermark();this.initMDevtools();this.initAutoMark();this.initReward();window.setTimeout(function(){var _this25$config$encryp;_this25.initComment();if(!((_this25$config$encryp=_this25.config.encryption)!==null&&_this25$config$encryp!==void 0&&_this25$config$encryp.all)){_this25.initToc();_this25.initTocListener()}_this25.onScroll();_this25.onResize();_this25.onClickMask();_this25.beforeprint()},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 "+obj)}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){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(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(){var _window$localStorage;document.body.dataset.theme=document.body.dataset.theme==="dark"?"light":"dark";_this4.isDark=!_this4.isDark;(_window$localStorage=window.localStorage)===null||_window$localStorage===void 0?void 0:_window$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 _searchConfig$maxResu,_searchConfig$snippet,_searchConfig$highlig,_searchConfig$isCaseS,_searchConfig$minMatc,_searchConfig$findAll,_searchConfig$locatio,_searchConfig$thresho,_searchConfig$distanc,_searchConfig$ignoreL,_searchConfig$useExte,_searchConfig$ignoreF,_this5=this;var searchConfig=this.config.search;var isMobile=this.util.isMobile();if(!searchConfig||isMobile&&this._searchMobileOnce||!isMobile&&this._searchDesktopOnce){return}var maxResultLength=(_searchConfig$maxResu=searchConfig.maxResultLength)!==null&&_searchConfig$maxResu!==void 0?_searchConfig$maxResu:10;var snippetLength=(_searchConfig$snippet=searchConfig.snippetLength)!==null&&_searchConfig$snippet!==void 0?_searchConfig$snippet:50;var highlightTag=(_searchConfig$highlig=searchConfig.highlightTag)!==null&&_searchConfig$highlig!==void 0?_searchConfig$highlig:"em";var isCaseSensitive=(_searchConfig$isCaseS=searchConfig.isCaseSensitive)!==null&&_searchConfig$isCaseS!==void 0?_searchConfig$isCaseS:false;var minMatchCharLength=(_searchConfig$minMatc=searchConfig.minMatchCharLength)!==null&&_searchConfig$minMatc!==void 0?_searchConfig$minMatc:1;var findAllMatches=(_searchConfig$findAll=searchConfig.findAllMatches)!==null&&_searchConfig$findAll!==void 0?_searchConfig$findAll:false;var location=(_searchConfig$locatio=searchConfig.location)!==null&&_searchConfig$locatio!==void 0?_searchConfig$locatio:0;var threshold=(_searchConfig$thresho=searchConfig.threshold)!==null&&_searchConfig$thresho!==void 0?_searchConfig$thresho:0.3;var distance=(_searchConfig$distanc=searchConfig.distance)!==null&&_searchConfig$distanc!==void 0?_searchConfig$distanc:100;var ignoreLocation=(_searchConfig$ignoreL=searchConfig.ignoreLocation)!==null&&_searchConfig$ignoreL!==void 0?_searchConfig$ignoreL:false;var useExtendedSearch=(_searchConfig$useExte=searchConfig.useExtendedSearch)!==null&&_searchConfig$useExte!==void 0?_searchConfig$useExte:false;var ignoreFieldNorm=(_searchConfig$ignoreF=searchConfig.ignoreFieldNorm)!==null&&_searchConfig$ignoreF!==void 0?_searchConfig$ignoreF:false;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([])})}else if(searchConfig.type==="fuse"){var _search=function _search(){var results={};window._index.search(query).forEach(function(_ref5){var item=_ref5.item,refIndex=_ref5.refIndex,matches=_ref5.matches;var title=item.title;var content=item.content;matches.forEach(function(_ref6){var indices=_ref6.indices,value=_ref6.value,key=_ref6.key;if(key==="content"){var offset=0;for(var i=0;i")+substr+"");content=content.substring(0,indices[i][0]+offset)+tag+content.substring(indices[i][1]+1+offset,content.length);offset+=highlightTag.length*2+5}}else if(key==="title"){var _offset=0;for(var _i=0;_i")+_substr+"");title=title.substring(0,indices[_i][0]+_offset)+_tag+title.substring(indices[_i][1]+1+_offset,content.length);_offset+=highlightTag.length*2+5}}});results[item.uri]={uri:item.uri,title:title,date:item.date,context:content}});return Object.values(results).slice(0,maxResultLength)};if(!window._index){fetch(searchConfig.fuseIndexURL).then(function(response){return response.json()}).then(function(data){var options={isCaseSensitive:isCaseSensitive,findAllMatches:findAllMatches,minMatchCharLength:minMatchCharLength,location:location,threshold:threshold,distance:distance,ignoreLocation:ignoreLocation,useExtendedSearch:useExtendedSearch,ignoreFieldNorm:ignoreFieldNorm,includeScore:false,shouldSort:true,includeMatches:true,keys:["content","title"]};window._index=new Fuse(data,options);finish(_search())}).catch(function(err){console.error(err);finish([])})}else finish(_search())}},templates:{suggestion:function suggestion(_ref7){var title=_ref7.title,date=_ref7.date,context=_ref7.context;return"
".concat(title,"").concat(date,"
").concat(context,"
")},empty:function empty(_ref8){var query=_ref8.query;return"
".concat(searchConfig.noResultsFound,": \"").concat(query,"\"
")},footer:function footer(_ref9){_objectDestructuringEmpty(_ref9);var _ref10=searchConfig.type==="algolia"?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:searchConfig.type==="lunr"?{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"}:{searchType:"Fuse.js",icon:"",href:"https://fusejs.io/"},searchType=_ref10.searchType,icon=_ref10.icon,href=_ref10.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(){if(this.config.lightgallery){lightGallery(document.getElementById("content"),{plugins:[lgThumbnail,lgZoom],selector:".lightgallery",speed:400,hideBarsDelay:2000,allowMediaOverlap:true,exThumbImage:"data-thumbnail",toggleThumb:true,thumbWidth:80,thumbHeight:"60px",actualSize:false,showZoomInOutIcons:true,licenseKey:"none"})}}},{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 _hlAttrs$title;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");var hlAttrs=_this7.data[$chroma.parentNode.id];$title.insertAdjacentHTML("afterbegin","".concat((_hlAttrs$title=hlAttrs===null||hlAttrs===void 0?void 0:hlAttrs.title)!==null&&_hlAttrs$title!==void 0?_hlAttrs$title:"",""));$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.trim();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(typeof APlayer==="function"){var $newTocCore=$tocCore.cloneNode(true);$tocCore.parentElement.replaceChild($newTocCore,$tocCore);$tocCore=$newTocCore}if(document.getElementById("toc-static").dataset.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);var $postMeta=document.querySelector(".post-meta");$toc.style.marginTop="".concat($postMeta.offsetTop+$postMeta.clientHeight,"px");var $tocLinkElements=$tocCore.querySelectorAll("a:first-child");var $tocLiElements=$tocCore.getElementsByTagName("li");var $headerLinkElements=document.getElementsByClassName("header-link");var headerIsFixed=document.body.dataset.headerDesktop!=="normal";var headerHeight=document.getElementById("header-desktop").offsetHeight;document.querySelector(".container").addEventListener("resize",function(){$toc.style.marginBottom="".concat(document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop,"px")});this._tocOnScroll=this._tocOnScroll||function(){$toc.style.marginBottom="".concat(document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop,"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$querySelect2,_this9=this;var $toc=document.getElementById("toc-auto");var $tocContentAuto=document.getElementById("toc-content-auto");(_document$querySelect2=document.querySelector("#toc-auto>.toc-title"))===null||_document$querySelect2===void 0?void 0:_document$querySelect2.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:"switchMermaidTheme",value:function switchMermaidTheme(theme){var _this10=this;var $mermaidElements=document.getElementsByClassName("mermaid");if($mermaidElements.length){var _this$config$mermaid$;var themes=(_this$config$mermaid$=this.config.mermaid.themes)!==null&&_this$config$mermaid$!==void 0?_this$config$mermaid$:["default","dark","neutral"];mermaid.initialize({startOnLoad:false,theme:theme!==null&&theme!==void 0?theme:this.isDark?themes[1]:themes[0],securityLevel:"loose"});this.util.forEach($mermaidElements,function($mermaid){mermaid.render("svg-"+$mermaid.id,_this10.data[$mermaid.id],function(svgCode){$mermaid.innerHTML=svgCode},$mermaid)})}}},{key:"initMermaid",value:function initMermaid(){var _this11=this;this.switchMermaidTheme();this.switchThemeEventSet.add(function(){_this11.switchMermaidTheme()});this.beforeprintEventSet.add(function(){_this11.switchMermaidTheme("neutral")})}},{key:"initEcharts",value:function initEcharts(){var _this12=this;if(!this.config.echarts){return}echarts.registerTheme("light",this.config.echarts.lightTheme);echarts.registerTheme("dark",this.config.echarts.darkTheme);this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){_this12._echartsArr=_this12._echartsArr||[];for(var i=0;i<_this12._echartsArr.length;i++){_this12._echartsArr[i].dispose()}_this12._echartsArr=[];_this12.util.forEach(document.getElementsByClassName("echarts"),function($echarts){var chart=echarts.init($echarts,_this12.isDark?"dark":"light",{renderer:"svg"});chart.setOption(JSON.parse(_this12.data[$echarts.id]));_this12._echartsArr.push(chart)})};this.switchThemeEventSet.add(this._echartsOnSwitchTheme);this._echartsOnSwitchTheme();this._echartsOnResize=this._echartsOnResize||function(){for(var i=0;i<_this12._echartsArr.length;i++){_this12._echartsArr[i].resize()}};this.resizeEventSet.add(this._echartsOnResize)}},{key:"initMapbox",value:function initMapbox(){var _this13=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 _this13$data$$mapbox$=_this13.data[$mapbox.id],lng=_this13$data$$mapbox$.lng,lat=_this13$data$$mapbox$.lat,zoom=_this13$data$$mapbox$.zoom,lightStyle=_this13$data$$mapbox$.lightStyle,darkStyle=_this13$data$$mapbox$.darkStyle,marked=_this13$data$$mapbox$.marked,navigation=_this13$data$$mapbox$.navigation,geolocate=_this13$data$$mapbox$.geolocate,scale=_this13$data$$mapbox$.scale,fullscreen=_this13$data$$mapbox$.fullscreen;var mapbox=new mapboxgl.Map({container:$mapbox,center:[lng,lat],zoom:zoom,minZoom:0.2,style:_this13.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);_this13._mapboxArr.push(mapbox)});this._mapboxOnSwitchTheme=this._mapboxOnSwitchTheme||function(){_this13.util.forEach(_this13._mapboxArr,function(mapbox){var $mapbox=mapbox.getContainer();var _this13$data$$mapbox$2=_this13.data[$mapbox.id],lightStyle=_this13$data$$mapbox$2.lightStyle,darkStyle=_this13$data$$mapbox$2.darkStyle;mapbox.setStyle(_this13.isDark?darkStyle:lightStyle);mapbox.addControl(new MapboxLanguage)})};this.switchThemeEventSet.add(this._mapboxOnSwitchTheme)}}},{key:"initTypeit",value:function initTypeit(){var _this14=this;if(this.config.typeit){var _typeitConfig$loop;var typeitConfig=this.config.typeit;var speed=typeitConfig.speed||100;var cursorSpeed=typeitConfig.cursorSpeed||1000;var cursorChar=typeitConfig.cursorChar||"|";var loop=(_typeitConfig$loop=typeitConfig.loop)!==null&&_typeitConfig$loop!==void 0?_typeitConfig$loop:false;Object.values(typeitConfig.data).forEach(function(group){var typeone=function typeone(i){var id=group[i];var shortcodeLoop=document.querySelector("#".concat(id)).parentElement.dataset.loop;var instance=new TypeIt("#".concat(id),{strings:_this14.data[id],speed:speed,lifeLike:true,cursorSpeed:cursorSpeed,cursorChar:cursorChar,waitUntilVisible:true,loop:shortcodeLoop?JSON.parse(shortcodeLoop):loop,afterComplete:function afterComplete(){if(i===group.length-1){if(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){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 _this$config$comment,_this15=this;if(!((_this$config$comment=this.config.comment)!==null&&_this$config$comment!==void 0&&_this$config$comment.enable)){return}if(document.querySelector("#comments")){var $viewCommentsBtn=document.querySelector(".view-comments");$viewCommentsBtn.classList.remove("d-none");$viewCommentsBtn.addEventListener("click",function(){_this15.util.scrollIntoView("#comments")},false)}this.config.comment.expired&&document.querySelector("#comments").remove();if(this.config.comment.artalk){if(this.config.comment.expired){return Artalk.LoadCountWidget({server:this.config.comment.artalk.server,site:this.config.comment.artalk.site,pvEl:this.config.comment.artalk.pvEl,countEl:this.config.comment.artalk.countEl})}var artalk=Artalk.init(this.config.comment.artalk);artalk.setDarkMode(this.isDark);this.switchThemeEventSet.add(function(){artalk.setDarkMode(_this15.isDark)});artalk.on("comments-loaded",function(){_this15.config.comment.artalk.lightgallery&&_this15.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){if(this.config.comment.expired){this.config.comment.waline.pageview&&Waline.pageviewCount({serverURL:this.config.comment.waline.serverURL,path:window.location.pathname});return}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$querySelect3;var message={type:"set-theme",theme:_this15.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme};(_document$querySelect3=document.querySelector(".utterances-frame"))===null||_document$querySelect3===void 0?void 0:_document$querySelect3.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(){_this15.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$querySelect4;var message={setConfig:{theme:_this15.isDark?giscusConfig.darkTheme:giscusConfig.lightTheme}};(_document$querySelect4=document.querySelector(".giscus-frame"))===null||_document$querySelect4===void 0?void 0:_document$querySelect4.contentWindow.postMessage({giscus:message},"https://giscus.app")};this.switchThemeEventSet.add(this._giscusOnSwitchTheme);this.giscus2parentMsg=window.addEventListener("message",function(event){var $script=document.querySelector("#giscus>script");if($script){_this15._giscusOnSwitchTheme();$script.parentElement.removeChild($script)}},{once:true});return}}},{key:"initCookieconsent",value:function initCookieconsent(){this.config.cookieconsent&&cookieconsent.initialise(this.config.cookieconsent)}},{key:"initSiteTime",value:function initSiteTime(){var _this16=this;if(this.config.siteTime){this.siteTime=setInterval(this.getSiteTime,500);document.addEventListener("visibilitychange",function(){if(document.hidden){return clearInterval(_this16.siteTime)}_this16.siteTime=setInterval(_this16.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,_document$querySelect5,_document$querySelect6;((_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||"".concat((_document$querySelect5=(_document$querySelect6=document.querySelector("footer .fixit-icon"))===null||_document$querySelect6===void 0?void 0:_document$querySelect6.outerHTML)!==null&&_document$querySelect5!==void 0?_document$querySelect5:""," 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(){var _this$config$pangu;if(!((_this$config$pangu=this.config.pangu)!==null&&_this$config$pangu!==void 0&&_this$config$pangu.enable)){return}var selector=this.config.pangu.selector;if(selector){if(selector.startsWith("#")){pangu.spacingElementById(selector.slice(1))}else if(selector.startsWith(".")){pangu.spacingElementByClassName(selector.slice(1))}else{pangu.spacingElementByTagName(selector)}return}pangu.autoSpacingPage()}},{key:"initFixItDecryptor",value:function initFixItDecryptor(){var _this17=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(){_this17.initTwemoji();_this17.initDetails();_this17.initLightGallery();_this17.initHighlight();_this17.initTable();_this17.initHeaderLink();_this17.initMath();_this17.initMermaid();_this17.initEcharts();_this17.initTypeit();_this17.initMapbox();_this17.util.forEach($tocNodes,function($element){$element.classList.remove("d-none")});_this17.initToc();_this17.initTocListener();_this17.initPangu()},reset:function reset(){_this17.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(){_this17.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,_this18=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",_this18.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(_this18.isDark?"Dark":"Light")};this.switchThemeEventSet.add(this._erudaOnSwitchTheme)}}},{key:"initAutoMark",value:function initAutoMark(){var _this19=this,_window$localStorage3;if(!this.config.autoBookmark){return}window.addEventListener("beforeunload",function(){var _window$localStorage2;(_window$localStorage2=window.localStorage)===null||_window$localStorage2===void 0?void 0:_window$localStorage2.setItem("fixit-bookmark/#".concat(location.pathname),_this19.util.getScrollTop())});var scrollTop=Number((_window$localStorage3=window.localStorage)===null||_window$localStorage3===void 0?void 0:_window$localStorage3.getItem("fixit-bookmark/#".concat(location.pathname)));if(scrollTop&&location.hash===""){window.scrollTo({top:scrollTop,behavior:"smooth"})}}},{key:"initReward",value:function initReward(){var _this20=this;var $rewards=document.querySelectorAll(".post-reward [data-mode=\"fixed\"]");if(!$rewards.length){return}if(this.util.isMobile()){this.util.forEach($rewards,function($reward){$reward.removeAttribute("data-mode")});return}var _closeRewardExclude=function _closeRewardExclude(id){_this20.util.forEach($rewards,function($reward){var $rewardInput=$reward.parentElement.querySelector(".reward-input");if($rewardInput.id!==id){$rewardInput.checked=false}})};this.util.forEach($rewards,function($reward){$reward.previousElementSibling.addEventListener("click",function(){_closeRewardExclude(this.getAttribute("for"))},false)});this.scrollEventSet.add(_closeRewardExclude)}},{key:"onScroll",value:function onScroll(){var _this21=this;var $headers=[];var ACCURACY=20;var $fixedButtons=document.querySelector(".fixed-buttons");var $backToTop=document.querySelector(".back-to-top");var $readingProgressBar=document.querySelector(".reading-progress-bar");var scrollTimer=void 0;if(document.body.dataset.headerDesktop==="auto"){$headers.push(document.getElementById("header-desktop"))}if(document.body.dataset.headerMobile==="auto"){$headers.push(document.getElementById("header-mobile"))}$backToTop===null||$backToTop===void 0?void 0:$backToTop.addEventListener("click",function(){_this21.util.scrollIntoView("body")});window.addEventListener("scroll",function(event){if(_this21.disableScrollEvent){event.preventDefault();return}var $mask=document.getElementById("mask");_this21.newScrollTop=_this21.util.getScrollTop();var scroll=_this21.newScrollTop-_this21.oldScrollTop;document.body.toggleAttribute("data-scroll",true);scrollTimer&&window.clearTimeout(scrollTimer);scrollTimer=window.setTimeout(function(){document.body.toggleAttribute("data-scroll")},500);_this21.util.forEach($headers,function($header){if(scroll>ACCURACY){$header.classList.remove("animate__fadeInDown");_this21.util.animateCSS($header,["animate__fadeOutUp"],true);$mask.click()}else if(scroll<-ACCURACY){$header.classList.remove("animate__fadeOutUp");_this21.util.animateCSS($header,["animate__fadeInDown"],true);$mask.click()}});var contentHeight=document.body.scrollHeight-window.innerHeight;var scrollPercent=Math.max(Math.min(100*Math.max(_this21.newScrollTop,0)/contentHeight,100),0);if($readingProgressBar){$readingProgressBar.style.setProperty("--progress","".concat(scrollPercent.toFixed(2),"%"))}if($fixedButtons){if(scrollPercent>1){$fixedButtons.classList.remove("d-none","animate__fadeOut");_this21.util.animateCSS($fixedButtons,["animate__fadeIn"],true)}else{$fixedButtons.classList.remove("animate__fadeIn");_this21.util.animateCSS($fixedButtons,["animate__fadeOut"],true,function(){$fixedButtons.classList.contains("animate__fadeOut")&&$fixedButtons.classList.add("d-none")})}if($backToTop){$backToTop.querySelector("span").innerText="".concat(Math.round(scrollPercent),"%")}}var _iterator2=_createForOfIteratorHelper(_this21.scrollEventSet),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var _event2=_step2.value;_event2()}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}_this21.oldScrollTop=_this21.newScrollTop},false)}},{key:"onResize",value:function onResize(){var _this22=this;var resizeBefore=this.util.isMobile();window.addEventListener("resize",function(){if(!_this22._resizeTimeout){_this22._resizeTimeout=window.setTimeout(function(){_this22._resizeTimeout=null;var _iterator3=_createForOfIteratorHelper(_this22.resizeEventSet),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var event=_step3.value;event()}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}_this22.initToc();_this22.switchMermaidTheme();_this22.initSearch();var isMobile=_this22.util.isMobile();if(isMobile!==resizeBefore){document.getElementById("mask").click();resizeBefore=isMobile}},100)}},false)}},{key:"onClickMask",value:function onClickMask(){var _this23=this;document.getElementById("mask").addEventListener("click",function(){if(!document.body.classList.contains("blur")){return}var _iterator4=_createForOfIteratorHelper(_this23.clickMaskEventSet),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var event=_step4.value;event()}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}_this23.disableScrollEvent=false;document.body.classList.remove("blur")},false)}},{key:"beforeprint",value:function beforeprint(){var _this24=this;window.addEventListener("beforeprint",function(){_this24.util.forEach(document.querySelectorAll(".chroma"),function($el){$el.classList.toggle("open",true)});var _iterator5=_createForOfIteratorHelper(_this24.beforeprintEventSet),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var event=_step5.value;event()}}catch(err){_iterator5.e(err)}finally{_iterator5.f()}},false)}},{key:"init",value:function init(){var _this25=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.initThemeColor();this.initSVGIcon();this.initMenu();this.initSwitchTheme();this.initSearch();this.initCookieconsent();this.initSiteTime();this.initServiceWorker();this.initWatermark();this.initMDevtools();this.initAutoMark();this.initReward();window.setTimeout(function(){var _this25$config$encryp;_this25.initComment();if(!((_this25$config$encryp=_this25.config.encryption)!==null&&_this25$config$encryp!==void 0&&_this25$config$encryp.all)){_this25.initToc();_this25.initTocListener()}_this25.onScroll();_this25.onResize();_this25.onClickMask();_this25.beforeprint()},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 644c7c43e..63b5feabb 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","_classCallCheck","_createClass","key","value","forEach","elements","handler","i","length","getScrollTop","_document$documentEle","document","documentElement","body","scrollTop","isMobile","window","matchMedia","matches","isTocStatic","animateCSS","element","animation","reserved","callback","_element$classList","Array","isArray","classList","add","apply","concat","_toConsumableArray","addEventListener","_element$classList2","remove","once","isValidDate","date","Date","isNaN","getTime","scrollIntoView","selector","startsWith","getElementById","slice","querySelector","behavior","FixIt","_this","_defineProperty","_document$querySelect","now","run","config","siteTime","$runTimes","util","clearInterval","parentNode","runTime","days","Math","floor","hours","minutes","seconds","innerHTML","String","padStart","data","isDark","dataset","theme","newScrollTop","oldScrollTop","scrollEventSet","Set","resizeEventSet","switchThemeEventSet","clickMaskEventSet","beforeprintEventSet","disableScrollEvent","objectFitImages","initThemeColor","_this2","$meta","_themeColorOnSwitchTheme","content","dark","light","initSVGIcon","querySelectorAll","$icon","fetch","svgSrc","then","response","text","svg","$temp","createElement","insertAdjacentHTML","$svg","firstChild","$titleElements","getElementsByTagName","removeChild","parentElement","replaceChild","catch","err","console","error","initTwemoji","twemoji","parse","initMenu","initMenuDesktop","initMenuMobile","$item","style","minWidth","offsetWidth","_this3","$menuToggleMobile","$menuMobile","event","toggle","contains","_menuMobileOnClickMask","$nestedItem","initSwitchTheme","_this4","getElementsByClassName","$themeSwitch","_window$localStorage","localStorage","setItem","_iterator","_createForOfIteratorHelper","_step","s","n","done","e","f","initSearch","_searchConfig$maxResu","_searchConfig$snippet","_searchConfig$highlig","_searchConfig$isCaseS","_searchConfig$minMatc","_searchConfig$findAll","_searchConfig$locatio","_searchConfig$thresho","_searchConfig$distanc","_searchConfig$ignoreL","_searchConfig$useExte","_searchConfig$ignoreF","_this5","searchConfig","search","_searchMobileOnce","_searchDesktopOnce","maxResultLength","snippetLength","highlightTag","isCaseSensitive","minMatchCharLength","findAllMatches","location","threshold","distance","ignoreLocation","useExtendedSearch","ignoreFieldNorm","suffix","$header","$searchInput","$searchToggle","$searchLoading","$searchClear","display","_searchMobile","autocomplete","setVal","_searchMobileOnClickMask","focus","_searchDesktop","_searchDesktopOnClickMask","initAutosearch","autosearch","hint","autoselect","dropdownMenuContainer","clearOnSelected","cssClasses","noPrefix","debug","name","source","query","finish","results","type","lunr","queryHandler","_index","_ref","ref","metadata","matchData","_indexData","uri","title","context","position","Object","values","_ref2","matchPosition","substr","lastIndexOf","keys","replace","RegExp","lunrIndexURL","json","indexData","_this6","lunrLanguageCode","use","field","boost","metadataWhitelist","record","objectID","_algoliaIndex","algoliasearch","algoliaAppID","algoliaSearchKey","initIndex","algoliaIndex","offset","attributesToHighlight","attributesToSnippet","highlightPreTag","highlightPostTag","_ref3","hits","_ref4","_highlightResult","_snippetResult","_ref5","item","refIndex","_ref6","indices","substring","tag","fuseIndexURL","options","includeScore","shouldSort","includeMatches","Fuse","templates","suggestion","_ref7","empty","_ref8","noResultsFound","footer","_ref9","_objectDestructuringEmpty","_ref10","searchType","icon","href","on","_event","_dataset","_context","assign","lunrSegmentitURL","script","id","src","async","readyState","onreadystatechange","onload","appendChild","initDetails","$details","$summary","initLightGallery","lightgallery","lightGallery","plugins","lgThumbnail","lgZoom","speed","hideBarsDelay","allowMediaOverlap","exThumbImage","toggleThumb","thumbWidth","thumbHeight","actualSize","showZoomInOutIcons","licenseKey","initHighlight","_this7","$preChroma","$chroma","className","$table","$tbody","$tr","$td","$codeElements","$code","toLowerCase","$title","$ellipses","code","editable","$edit","editUnLockTitle","$iconKey","$iconLock","$preChromas","editLockTitle","setAttribute","blur","copyTitle","$copy","innerText","trim","maxShownLines","split","navigator","clipboard","writeText","insertBefore","initTable","$wrapper","initHeaderLink","num","initToc","_this8","$tocCore","APlayer","$newTocCore","cloneNode","kept","$tocContentStatic","_tocOnScroll","delete","$tocContentAuto","$toc","visibility","$postMeta","marginTop","offsetTop","clientHeight","$tocLinkElements","$tocLiElements","$headerLinkElements","headerIsFixed","headerDesktop","headerHeight","offsetHeight","marginBottom","$tocLink","$tocLi","INDEX_SPACING","activeTocIndex","thisTop","getBoundingClientRect","top","nextTop","$parent","initTocListener","_document$querySelect2","_this9","tocHidden","push","initMath","math","renderMathInElement","switchMermaidTheme","_this10","$mermaidElements","_this$config$mermaid$","themes","mermaid","initialize","startOnLoad","securityLevel","$mermaid","render","svgCode","initMermaid","_this11","initEcharts","_this12","echarts","registerTheme","lightTheme","darkTheme","_echartsOnSwitchTheme","_echartsArr","dispose","$echarts","chart","init","renderer","setOption","JSON","_echartsOnResize","resize","initMapbox","_this13","mapbox","mapboxgl","accessToken","setRTLTextPlugin","RTLTextPlugin","_mapboxArr","$mapbox","_this13$data$$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","_this13$data$$mapbox$2","setStyle","initTypeit","_this14","typeit","_typeitConfig$loop","typeitConfig","cursorSpeed","cursorChar","loop","group","typeone","shortcodeLoop","instance","TypeIt","strings","lifeLike","waitUntilVisible","afterComplete","duration","setTimeout","destroy","go","initCommentLightGallery","comments","images","$content","$imgs","$img","$link","append","replaceWith","initComment","_this$config$comment","_this15","comment","enable","$viewCommentsBtn","expired","artalk","Artalk","LoadCountWidget","server","site","pvEl","countEl","setDarkMode","gitalk","decodeURI","Gitalk","valine","Valine","waline","pageview","Waline","pageviewCount","serverURL","path","pathname","utterances","utterancesConfig","repo","issueTerm","label","crossOrigin","_utterancesOnSwitchTheme","_document$querySelect3","message","contentWindow","postMessage","twikoo","twikooConfig","onCommentLoaded","commentCount","getCommentsCount","envId","region","urls","includeReply","twikooCommentCount","count","giscus","giscusConfig","_giscusOnSwitchTheme","_document$querySelect4","setConfig","giscus2parentMsg","$script","initCookieconsent","cookieconsent","initialise","initSiteTime","_this16","setInterval","getSiteTime","hidden","initServiceWorker","enablePWA","serviceWorker","register","scope","registration","ready","initWatermark","_this$config$watermar","_document$querySelect5","_document$querySelect6","watermark","Watermark","outerHTML","appendTo","appendto","opacity","width","height","rowSpacing","rowspacing","colSpacing","colspacing","rotate","fontSize","fontsize","fontFamily","fontfamily","initPangu","_this$config$pangu","pangu","spacingElementById","spacingElementByClassName","spacingElementByTagName","autoSpacingPage","initFixItDecryptor","_this17","_this$config$encrypti","_this$config$encrypti2","$tocNodes","decryptor","FixItDecryptor","decrypted","$element","reset","encryption","shortcode","initShortcodes","all","initMDevtools","_this$config","_this18","mDevtools","orientation","vConsole","VConsole","target","_vConsoleOnSwitchTheme","eruda","defaults","_erudaOnSwitchTheme","evalCss","setTheme","initAutoMark","_this19","_window$localStorage3","autoBookmark","_window$localStorage2","Number","getItem","hash","scrollTo","initReward","_this20","$rewards","$reward","removeAttribute","_closeRewardExclude","$rewardInput","checked","previousElementSibling","getAttribute","onScroll","_this21","$headers","ACCURACY","$fixedButtons","$backToTop","$readingProgressBar","scrollTimer","headerMobile","preventDefault","$mask","scroll","toggleAttribute","clearTimeout","click","contentHeight","scrollHeight","innerHeight","scrollPercent","max","min","setProperty","toFixed","round","_iterator2","_step2","onResize","_this22","resizeBefore","_resizeTimeout","_iterator3","_step3","onClickMask","_this23","_iterator4","_step4","beforeprint","_this24","$el","_iterator5","_step5","_this25","_this$config$encrypti3","_this25$config$encryp","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.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 element.addEventListener('animationend', () => {\n !reserved && element.classList.remove('animate__animated', ...animation);\n typeof callback === 'function' && callback();\n }, { once: true });\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 /**\n * scroll some element into view\n * @param {String} selector element to scroll\n */\n scrollIntoView(selector) {\n const element = selector.startsWith('#')\n ? document.getElementById(selector.slice(1))\n : document.querySelector(selector);\n element?.scrollIntoView({\n behavior: 'smooth'\n });\n }\n}\n\nclass FixIt {\n constructor() {\n this.config = window.config;\n this.data = this.config.data;\n this.isDark = document.body.dataset.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.beforeprintEventSet = new Set();\n this.disableScrollEvent = false;\n window.objectFitImages && objectFitImages();\n }\n\n initThemeColor() {\n const $meta = document.querySelector('[name=\"theme-color\"]');\n if (!$meta) {\n return;\n }\n this._themeColorOnSwitchTheme = this._themeColorOnSwitchTheme || (() => {\n $meta.content = this.isDark ? $meta.dataset.dark : $meta.dataset.light;\n });\n this.switchThemeEventSet.add(this._themeColorOnSwitchTheme);\n this._themeColorOnSwitchTheme();\n }\n\n initSVGIcon() {\n this.util.forEach(document.querySelectorAll('[data-svg-src]'), ($icon) => {\n fetch($icon.dataset.svgSrc)\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.dataset.svgSrc = $icon.dataset.svgSrc\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.util.forEach(document.querySelectorAll('.has-children'), ($item) => {\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.dataset.theme = document.body.dataset.theme === 'dark' ? 'light' : 'dark';\n this.isDark = !this.isDark;\n window.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 // Initialize default search config\n const maxResultLength = searchConfig.maxResultLength ?? 10;\n const snippetLength = searchConfig.snippetLength ?? 50;\n const highlightTag = searchConfig.highlightTag ?? 'em';\n const isCaseSensitive = searchConfig.isCaseSensitive ?? false;\n const minMatchCharLength = searchConfig.minMatchCharLength ?? 1;\n const findAllMatches = searchConfig.findAllMatches ?? false;\n const location = searchConfig.location ?? 0;\n const threshold = searchConfig.threshold ?? 0.3;\n const distance = searchConfig.distance ?? 100;\n const ignoreLocation = searchConfig.ignoreLocation ?? false;\n const useExtendedSearch = searchConfig.useExtendedSearch ?? false;\n const ignoreFieldNorm = searchConfig.ignoreFieldNorm ?? false;\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 } else if (searchConfig.type === 'fuse') {\n const search = () => {\n const results = {};\n window._index.search(query).forEach(({ item, refIndex, matches }) => {\n let title = item.title;\n let content = item.content;\n matches.forEach(({ indices, value, key }) => {\n if (key === 'content') {\n let offset = 0;\n for (let i = 0; i < indices.length; i++) {\n const substr = content.substring(indices[i][0] + offset, indices[i][1] + 1 + offset);\n const tag = `<${highlightTag}>` + substr + ``;\n content = content.substring(0, indices[i][0] + offset) + tag + content.substring(indices[i][1] + 1 + offset, content.length);\n offset += highlightTag.length * 2 + 5;\n }\n } else if (key === 'title') {\n let offset = 0;\n for (let i = 0; i < indices.length; i++) {\n const substr = title.substring(indices[i][0] + offset, indices[i][1] + 1 + offset);\n const tag = `<${highlightTag}>` + substr + ``;\n title = title.substring(0, indices[i][0] + offset) + tag + title.substring(indices[i][1] + 1 + offset, content.length);\n offset += highlightTag.length * 2 + 5;\n }\n }\n });\n results[item.uri] = {\n uri: item.uri,\n title: title,\n date: item.date,\n context: content\n };\n });\n return Object.values(results).slice(0, maxResultLength);\n };\n if (!window._index) {\n fetch(searchConfig.fuseIndexURL)\n .then((response) => response.json())\n .then((data) => {\n const options = {\n isCaseSensitive: isCaseSensitive,\n findAllMatches: findAllMatches,\n minMatchCharLength: minMatchCharLength,\n location: location,\n threshold: threshold,\n distance: distance,\n ignoreLocation: ignoreLocation,\n useExtendedSearch: useExtendedSearch,\n ignoreFieldNorm: ignoreFieldNorm,\n includeScore: false,\n shouldSort: true,\n includeMatches: true,\n keys: ['content', 'title']\n };\n window._index = new Fuse(data, options);\n finish(search());\n })\n .catch((err) => {\n console.error(err);\n finish([]);\n });\n } else finish(search());\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 : (searchConfig.type === 'lunr'\n ? {\n searchType: 'Lunr.js',\n icon: '',\n href: 'https://lunrjs.com/'\n }\n : {\n searchType: 'Fuse.js',\n icon: '',\n href: 'https://fusejs.io/'\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 if (this.config.lightgallery) {\n lightGallery(document.getElementById('content'), {\n plugins: [lgThumbnail, lgZoom],\n selector: '.lightgallery',\n speed: 400,\n hideBarsDelay: 2000,\n allowMediaOverlap: true,\n exThumbImage: 'data-thumbnail',\n toggleThumb: true,\n thumbWidth: 80,\n thumbHeight: '60px',\n actualSize: false,\n showZoomInOutIcons: true,\n licenseKey: 'none'\n });\n }\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 // remove the leading and trailing whitespace of the code string\n const code = $code.innerText.trim();\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 let $tocCore = document.getElementById('TableOfContents');\n if ($tocCore === null) {\n return;\n }\n // It's a dirty hack to fix the bug of APlayer, see https://github.com/hugo-fixit/FixIt/issues/292\n if (typeof APlayer === 'function') {\n const $newTocCore = $tocCore.cloneNode(true);\n $tocCore.parentElement.replaceChild($newTocCore, $tocCore);\n $tocCore = $newTocCore;\n }\n if (document.getElementById('toc-static').dataset.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 const $postMeta = document.querySelector('.post-meta');\n $toc.style.marginTop = `${$postMeta.offsetTop + $postMeta.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.dataset.headerDesktop !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n document.querySelector('.container').addEventListener('resize', () => {\n $toc.style.marginBottom = `${document.querySelector('.container').clientHeight - document.querySelector('.post-footer').offsetTop}px`;\n });\n this._tocOnScroll = this._tocOnScroll || (() => {\n $toc.style.marginBottom = `${document.querySelector('.container').clientHeight - document.querySelector('.post-footer').offsetTop}px`;\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 switchMermaidTheme(theme) {\n const $mermaidElements = document.getElementsByClassName('mermaid');\n if ($mermaidElements.length) {\n // TODO perf\n const themes = this.config.mermaid.themes ?? ['default', 'dark', 'neutral'];\n mermaid.initialize({ startOnLoad: false, theme: 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\n initMermaid() {\n this.switchMermaidTheme();\n this.switchThemeEventSet.add(() => { this.switchMermaidTheme(); });\n this.beforeprintEventSet.add(() => { this.switchMermaidTheme('neutral'); });\n }\n\n initEcharts() {\n if (!this.config.echarts) {\n return;\n }\n echarts.registerTheme('light', this.config.echarts.lightTheme);\n echarts.registerTheme('dark', this.config.echarts.darkTheme);\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' : 'light', { renderer: 'svg' });\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 const loop = typeitConfig.loop ?? false;\n Object.values(typeitConfig.data).forEach((group) => {\n const typeone = (i) => {\n const id = group[i];\n const shortcodeLoop = document.querySelector(`#${id}`).parentElement.dataset.loop;\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 loop: shortcodeLoop ? JSON.parse(shortcodeLoop) : loop,\n afterComplete: () => {\n if (i === group.length - 1) {\n if (typeitConfig.duration >= 0) {\n window.setTimeout(() => {\n instance.destroy();\n }, typeitConfig.duration);\n }\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 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?.enable) {\n return;\n }\n // whether to show the view comments button\n if (document.querySelector('#comments')) {\n const $viewCommentsBtn = document.querySelector('.view-comments');\n $viewCommentsBtn.classList.remove('d-none');\n // view comments button click event\n $viewCommentsBtn.addEventListener('click', () => {\n this.util.scrollIntoView('#comments');\n }, false);\n }\n this.config.comment.expired && document.querySelector('#comments').remove();\n if (this.config.comment.artalk) {\n if (this.config.comment.expired) {\n return Artalk.LoadCountWidget({\n server: this.config.comment.artalk.server,\n site: this.config.comment.artalk.site,\n pvEl: this.config.comment.artalk.pvEl,\n countEl: this.config.comment.artalk.countEl\n })\n }\n const artalk = Artalk.init(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 if (this.config.comment.expired) {\n this.config.comment.waline.pageview && Waline.pageviewCount({\n serverURL: this.config.comment.waline.serverURL,\n path: window.location.pathname\n });\n return;\n }\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 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 }, { once: true });\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 document.querySelector('.site-time .d-none')?.classList.remove('d-none');\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 || `${document.querySelector('footer .fixit-icon')?.outerHTML ?? ''} 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 if (!this.config.pangu?.enable) {\n return;\n }\n const selector = this.config.pangu.selector;\n if (selector) {\n if (selector.startsWith('#')) {\n pangu.spacingElementById(selector.slice(1));\n } else if (selector.startsWith('.')) {\n pangu.spacingElementByClassName(selector.slice(1));\n } else {\n pangu.spacingElementByTagName(selector)\n }\n return;\n }\n 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 initAutoMark() {\n if (!this.config.autoBookmark) {\n return;\n }\n window.addEventListener('beforeunload', () => {\n window.localStorage?.setItem(`fixit-bookmark/#${location.pathname}`, this.util.getScrollTop());\n });\n const scrollTop = Number(window.localStorage?.getItem(`fixit-bookmark/#${location.pathname}`));\n // If the page opens with a specific hash, just jump out\n if (scrollTop && location.hash === '') {\n window.scrollTo({ \n top: scrollTop,\n behavior: 'smooth'\n });\n }\n }\n\n initReward() {\n const $rewards = document.querySelectorAll('.post-reward [data-mode=\"fixed\"]');\n if (!$rewards.length) {\n return;\n }\n // `fixed` mode only supports desktop\n if (this.util.isMobile()) {\n this.util.forEach($rewards, ($reward) => {\n $reward.removeAttribute('data-mode');\n });\n return;\n }\n // Close post reward images exclude special id\n const _closeRewardExclude = (id) => {\n this.util.forEach($rewards, ($reward) => {\n const $rewardInput = $reward.parentElement.querySelector('.reward-input');\n if ($rewardInput.id !== id) {\n $rewardInput.checked = false;\n }\n });\n };\n // Add additional click event to reward buttons\n this.util.forEach($rewards, ($reward) => {\n $reward.previousElementSibling.addEventListener('click', function () {\n _closeRewardExclude(this.getAttribute('for'));\n }, false)\n });\n this.scrollEventSet.add(_closeRewardExclude);\n }\n\n onScroll() {\n const $headers = [];\n const ACCURACY = 20;\n const $fixedButtons = document.querySelector('.fixed-buttons');\n const $backToTop = document.querySelector('.back-to-top');\n const $readingProgressBar = document.querySelector('.reading-progress-bar');\n let scrollTimer = void 0;\n if (document.body.dataset.headerDesktop === 'auto') {\n $headers.push(document.getElementById('header-desktop'));\n }\n if (document.body.dataset.headerMobile === 'auto') {\n $headers.push(document.getElementById('header-mobile'));\n }\n // b2t button click event\n $backToTop?.addEventListener('click', () => {\n this.util.scrollIntoView('body');\n });\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 // body scrollbar style\n document.body.toggleAttribute('data-scroll', true);\n scrollTimer && window.clearTimeout(scrollTimer);\n scrollTimer = window.setTimeout(() => {\n document.body.toggleAttribute('data-scroll');\n }, 500);\n // header animation\n this.util.forEach($headers, ($header) => {\n if (scroll > ACCURACY) {\n $header.classList.remove('animate__fadeInDown');\n this.util.animateCSS($header, ['animate__fadeOutUp'], true);\n $mask.click();\n } else if (scroll < -ACCURACY) {\n $header.classList.remove('animate__fadeOutUp');\n this.util.animateCSS($header, ['animate__fadeInDown'], true);\n $mask.click();\n }\n });\n const contentHeight = document.body.scrollHeight - window.innerHeight;\n const scrollPercent = Math.max(Math.min(100 * Math.max(this.newScrollTop, 0) / contentHeight, 100), 0);\n if ($readingProgressBar) {\n $readingProgressBar.style.setProperty('--progress', `${scrollPercent.toFixed(2)}%`);\n }\n // whether to show fixed buttons\n if ($fixedButtons) {\n if (scrollPercent > 1) {\n $fixedButtons.classList.remove('d-none', 'animate__fadeOut');\n this.util.animateCSS($fixedButtons, ['animate__fadeIn'], true);\n } else {\n $fixedButtons.classList.remove('animate__fadeIn');\n this.util.animateCSS($fixedButtons, ['animate__fadeOut'], true, () => {\n $fixedButtons.classList.contains('animate__fadeOut') && $fixedButtons.classList.add('d-none');\n });\n }\n if ($backToTop) {\n $backToTop.querySelector('span').innerText = `${Math.round(scrollPercent)}%`;\n }\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.switchMermaidTheme();\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 beforeprint() {\n window.addEventListener('beforeprint', () => {\n this.util.forEach(document.querySelectorAll('.chroma'), ($el) => {\n $el.classList.toggle('open', true)\n });\n for (let event of this.beforeprintEventSet) {\n event();\n }\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.initThemeColor();\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 this.initAutoMark();\n this.initReward();\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 this.beforeprint();\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","_classCallCheck","_createClass","key","value","forEach","elements","handler","i","length","getScrollTop","_document$documentEle","document","documentElement","body","scrollTop","isMobile","window","matchMedia","matches","isTocStatic","animateCSS","element","animation","reserved","callback","_element$classList","Array","isArray","classList","add","apply","concat","_toConsumableArray","addEventListener","_element$classList2","remove","once","isValidDate","date","Date","isNaN","getTime","scrollIntoView","selector","startsWith","getElementById","slice","querySelector","behavior","FixIt","_this","_defineProperty","_document$querySelect","now","run","config","siteTime","$runTimes","util","clearInterval","parentNode","runTime","days","Math","floor","hours","minutes","seconds","innerHTML","String","padStart","data","isDark","dataset","theme","newScrollTop","oldScrollTop","scrollEventSet","Set","resizeEventSet","switchThemeEventSet","clickMaskEventSet","beforeprintEventSet","disableScrollEvent","objectFitImages","initThemeColor","_this2","$meta","_themeColorOnSwitchTheme","content","dark","light","initSVGIcon","querySelectorAll","$icon","fetch","svgSrc","then","response","text","svg","$temp","createElement","insertAdjacentHTML","$svg","firstChild","$titleElements","getElementsByTagName","removeChild","parentElement","replaceChild","catch","err","console","error","initTwemoji","twemoji","parse","initMenu","initMenuDesktop","initMenuMobile","$item","style","minWidth","offsetWidth","_this3","$menuToggleMobile","$menuMobile","event","toggle","contains","_menuMobileOnClickMask","$nestedItem","initSwitchTheme","_this4","getElementsByClassName","$themeSwitch","_window$localStorage","localStorage","setItem","_iterator","_createForOfIteratorHelper","_step","s","n","done","e","f","initSearch","_searchConfig$maxResu","_searchConfig$snippet","_searchConfig$highlig","_searchConfig$isCaseS","_searchConfig$minMatc","_searchConfig$findAll","_searchConfig$locatio","_searchConfig$thresho","_searchConfig$distanc","_searchConfig$ignoreL","_searchConfig$useExte","_searchConfig$ignoreF","_this5","searchConfig","search","_searchMobileOnce","_searchDesktopOnce","maxResultLength","snippetLength","highlightTag","isCaseSensitive","minMatchCharLength","findAllMatches","location","threshold","distance","ignoreLocation","useExtendedSearch","ignoreFieldNorm","suffix","$header","$searchInput","$searchToggle","$searchLoading","$searchClear","display","_searchMobile","autocomplete","setVal","_searchMobileOnClickMask","focus","_searchDesktop","_searchDesktopOnClickMask","initAutosearch","autosearch","hint","autoselect","dropdownMenuContainer","clearOnSelected","cssClasses","noPrefix","debug","name","source","query","finish","results","type","lunr","queryHandler","_index","_ref","ref","metadata","matchData","_indexData","uri","title","context","position","Object","values","_ref2","matchPosition","substr","lastIndexOf","keys","replace","RegExp","lunrIndexURL","json","indexData","_this6","lunrLanguageCode","use","field","boost","metadataWhitelist","record","objectID","_algoliaIndex","algoliasearch","algoliaAppID","algoliaSearchKey","initIndex","algoliaIndex","offset","attributesToHighlight","attributesToSnippet","highlightPreTag","highlightPostTag","_ref3","hits","_ref4","_highlightResult","_snippetResult","_ref5","item","refIndex","_ref6","indices","substring","tag","fuseIndexURL","options","includeScore","shouldSort","includeMatches","Fuse","templates","suggestion","_ref7","empty","_ref8","noResultsFound","footer","_ref9","_objectDestructuringEmpty","_ref10","searchType","icon","href","on","_event","_dataset","_context","assign","lunrSegmentitURL","script","id","src","async","readyState","onreadystatechange","onload","appendChild","initDetails","$details","$summary","initLightGallery","lightgallery","lightGallery","plugins","lgThumbnail","lgZoom","speed","hideBarsDelay","allowMediaOverlap","exThumbImage","toggleThumb","thumbWidth","thumbHeight","actualSize","showZoomInOutIcons","licenseKey","initHighlight","_this7","$preChroma","$chroma","className","$table","$tbody","$tr","$td","$codeElements","_hlAttrs$title","$code","toLowerCase","$title","hlAttrs","$ellipses","code","editable","$edit","editUnLockTitle","$iconKey","$iconLock","$preChromas","editLockTitle","setAttribute","blur","copyTitle","$copy","innerText","trim","maxShownLines","split","navigator","clipboard","writeText","insertBefore","initTable","$wrapper","initHeaderLink","num","initToc","_this8","$tocCore","APlayer","$newTocCore","cloneNode","kept","$tocContentStatic","_tocOnScroll","delete","$tocContentAuto","$toc","visibility","$postMeta","marginTop","offsetTop","clientHeight","$tocLinkElements","$tocLiElements","$headerLinkElements","headerIsFixed","headerDesktop","headerHeight","offsetHeight","marginBottom","$tocLink","$tocLi","INDEX_SPACING","activeTocIndex","thisTop","getBoundingClientRect","top","nextTop","$parent","initTocListener","_document$querySelect2","_this9","tocHidden","push","initMath","math","renderMathInElement","switchMermaidTheme","_this10","$mermaidElements","_this$config$mermaid$","themes","mermaid","initialize","startOnLoad","securityLevel","$mermaid","render","svgCode","initMermaid","_this11","initEcharts","_this12","echarts","registerTheme","lightTheme","darkTheme","_echartsOnSwitchTheme","_echartsArr","dispose","$echarts","chart","init","renderer","setOption","JSON","_echartsOnResize","resize","initMapbox","_this13","mapbox","mapboxgl","accessToken","setRTLTextPlugin","RTLTextPlugin","_mapboxArr","$mapbox","_this13$data$$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","_this13$data$$mapbox$2","setStyle","initTypeit","_this14","typeit","_typeitConfig$loop","typeitConfig","cursorSpeed","cursorChar","loop","group","typeone","shortcodeLoop","instance","TypeIt","strings","lifeLike","waitUntilVisible","afterComplete","duration","setTimeout","destroy","go","initCommentLightGallery","comments","images","$content","$imgs","$img","$link","append","replaceWith","initComment","_this$config$comment","_this15","comment","enable","$viewCommentsBtn","expired","artalk","Artalk","LoadCountWidget","server","site","pvEl","countEl","setDarkMode","gitalk","decodeURI","Gitalk","valine","Valine","waline","pageview","Waline","pageviewCount","serverURL","path","pathname","utterances","utterancesConfig","repo","issueTerm","label","crossOrigin","_utterancesOnSwitchTheme","_document$querySelect3","message","contentWindow","postMessage","twikoo","twikooConfig","onCommentLoaded","commentCount","getCommentsCount","envId","region","urls","includeReply","twikooCommentCount","count","giscus","giscusConfig","_giscusOnSwitchTheme","_document$querySelect4","setConfig","giscus2parentMsg","$script","initCookieconsent","cookieconsent","initialise","initSiteTime","_this16","setInterval","getSiteTime","hidden","initServiceWorker","enablePWA","serviceWorker","register","scope","registration","ready","initWatermark","_this$config$watermar","_document$querySelect5","_document$querySelect6","watermark","Watermark","outerHTML","appendTo","appendto","opacity","width","height","rowSpacing","rowspacing","colSpacing","colspacing","rotate","fontSize","fontsize","fontFamily","fontfamily","initPangu","_this$config$pangu","pangu","spacingElementById","spacingElementByClassName","spacingElementByTagName","autoSpacingPage","initFixItDecryptor","_this17","_this$config$encrypti","_this$config$encrypti2","$tocNodes","decryptor","FixItDecryptor","decrypted","$element","reset","encryption","shortcode","initShortcodes","all","initMDevtools","_this$config","_this18","mDevtools","orientation","vConsole","VConsole","target","_vConsoleOnSwitchTheme","eruda","defaults","_erudaOnSwitchTheme","evalCss","setTheme","initAutoMark","_this19","_window$localStorage3","autoBookmark","_window$localStorage2","Number","getItem","hash","scrollTo","initReward","_this20","$rewards","$reward","removeAttribute","_closeRewardExclude","$rewardInput","checked","previousElementSibling","getAttribute","onScroll","_this21","$headers","ACCURACY","$fixedButtons","$backToTop","$readingProgressBar","scrollTimer","headerMobile","preventDefault","$mask","scroll","toggleAttribute","clearTimeout","click","contentHeight","scrollHeight","innerHeight","scrollPercent","max","min","setProperty","toFixed","round","_iterator2","_step2","onResize","_this22","resizeBefore","_resizeTimeout","_iterator3","_step3","onClickMask","_this23","_iterator4","_step4","beforeprint","_this24","$el","_iterator5","_step5","_this25","_this$config$encrypti3","_this25$config$encryp","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.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 element.addEventListener('animationend', () => {\n !reserved && element.classList.remove('animate__animated', ...animation);\n typeof callback === 'function' && callback();\n }, { once: true });\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 /**\n * scroll some element into view\n * @param {String} selector element to scroll\n */\n scrollIntoView(selector) {\n const element = selector.startsWith('#')\n ? document.getElementById(selector.slice(1))\n : document.querySelector(selector);\n element?.scrollIntoView({\n behavior: 'smooth'\n });\n }\n}\n\nclass FixIt {\n constructor() {\n this.config = window.config;\n this.data = this.config.data || [];\n this.isDark = document.body.dataset.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.beforeprintEventSet = new Set();\n this.disableScrollEvent = false;\n window.objectFitImages && objectFitImages();\n }\n\n initThemeColor() {\n const $meta = document.querySelector('[name=\"theme-color\"]');\n if (!$meta) {\n return;\n }\n this._themeColorOnSwitchTheme = this._themeColorOnSwitchTheme || (() => {\n $meta.content = this.isDark ? $meta.dataset.dark : $meta.dataset.light;\n });\n this.switchThemeEventSet.add(this._themeColorOnSwitchTheme);\n this._themeColorOnSwitchTheme();\n }\n\n initSVGIcon() {\n this.util.forEach(document.querySelectorAll('[data-svg-src]'), ($icon) => {\n fetch($icon.dataset.svgSrc)\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.dataset.svgSrc = $icon.dataset.svgSrc\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.util.forEach(document.querySelectorAll('.has-children'), ($item) => {\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.dataset.theme = document.body.dataset.theme === 'dark' ? 'light' : 'dark';\n this.isDark = !this.isDark;\n window.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 // Initialize default search config\n const maxResultLength = searchConfig.maxResultLength ?? 10;\n const snippetLength = searchConfig.snippetLength ?? 50;\n const highlightTag = searchConfig.highlightTag ?? 'em';\n const isCaseSensitive = searchConfig.isCaseSensitive ?? false;\n const minMatchCharLength = searchConfig.minMatchCharLength ?? 1;\n const findAllMatches = searchConfig.findAllMatches ?? false;\n const location = searchConfig.location ?? 0;\n const threshold = searchConfig.threshold ?? 0.3;\n const distance = searchConfig.distance ?? 100;\n const ignoreLocation = searchConfig.ignoreLocation ?? false;\n const useExtendedSearch = searchConfig.useExtendedSearch ?? false;\n const ignoreFieldNorm = searchConfig.ignoreFieldNorm ?? false;\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 } else if (searchConfig.type === 'fuse') {\n const search = () => {\n const results = {};\n window._index.search(query).forEach(({ item, refIndex, matches }) => {\n let title = item.title;\n let content = item.content;\n matches.forEach(({ indices, value, key }) => {\n if (key === 'content') {\n let offset = 0;\n for (let i = 0; i < indices.length; i++) {\n const substr = content.substring(indices[i][0] + offset, indices[i][1] + 1 + offset);\n const tag = `<${highlightTag}>` + substr + ``;\n content = content.substring(0, indices[i][0] + offset) + tag + content.substring(indices[i][1] + 1 + offset, content.length);\n offset += highlightTag.length * 2 + 5;\n }\n } else if (key === 'title') {\n let offset = 0;\n for (let i = 0; i < indices.length; i++) {\n const substr = title.substring(indices[i][0] + offset, indices[i][1] + 1 + offset);\n const tag = `<${highlightTag}>` + substr + ``;\n title = title.substring(0, indices[i][0] + offset) + tag + title.substring(indices[i][1] + 1 + offset, content.length);\n offset += highlightTag.length * 2 + 5;\n }\n }\n });\n results[item.uri] = {\n uri: item.uri,\n title: title,\n date: item.date,\n context: content\n };\n });\n return Object.values(results).slice(0, maxResultLength);\n };\n if (!window._index) {\n fetch(searchConfig.fuseIndexURL)\n .then((response) => response.json())\n .then((data) => {\n const options = {\n isCaseSensitive: isCaseSensitive,\n findAllMatches: findAllMatches,\n minMatchCharLength: minMatchCharLength,\n location: location,\n threshold: threshold,\n distance: distance,\n ignoreLocation: ignoreLocation,\n useExtendedSearch: useExtendedSearch,\n ignoreFieldNorm: ignoreFieldNorm,\n includeScore: false,\n shouldSort: true,\n includeMatches: true,\n keys: ['content', 'title']\n };\n window._index = new Fuse(data, options);\n finish(search());\n })\n .catch((err) => {\n console.error(err);\n finish([]);\n });\n } else finish(search());\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 : (searchConfig.type === 'lunr'\n ? {\n searchType: 'Lunr.js',\n icon: '',\n href: 'https://lunrjs.com/'\n }\n : {\n searchType: 'Fuse.js',\n icon: '',\n href: 'https://fusejs.io/'\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 if (this.config.lightgallery) {\n lightGallery(document.getElementById('content'), {\n plugins: [lgThumbnail, lgZoom],\n selector: '.lightgallery',\n speed: 400,\n hideBarsDelay: 2000,\n allowMediaOverlap: true,\n exThumbImage: 'data-thumbnail',\n toggleThumb: true,\n thumbWidth: 80,\n thumbHeight: '60px',\n actualSize: false,\n showZoomInOutIcons: true,\n licenseKey: 'none'\n });\n }\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 const hlAttrs = this.data[$chroma.parentNode.id];\n $title.insertAdjacentHTML('afterbegin', `${hlAttrs?.title ?? ''}`);\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 // remove the leading and trailing whitespace of the code string\n const code = $code.innerText.trim();\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 let $tocCore = document.getElementById('TableOfContents');\n if ($tocCore === null) {\n return;\n }\n // It's a dirty hack to fix the bug of APlayer, see https://github.com/hugo-fixit/FixIt/issues/292\n if (typeof APlayer === 'function') {\n const $newTocCore = $tocCore.cloneNode(true);\n $tocCore.parentElement.replaceChild($newTocCore, $tocCore);\n $tocCore = $newTocCore;\n }\n if (document.getElementById('toc-static').dataset.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 const $postMeta = document.querySelector('.post-meta');\n $toc.style.marginTop = `${$postMeta.offsetTop + $postMeta.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.dataset.headerDesktop !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n document.querySelector('.container').addEventListener('resize', () => {\n $toc.style.marginBottom = `${document.querySelector('.container').clientHeight - document.querySelector('.post-footer').offsetTop}px`;\n });\n this._tocOnScroll = this._tocOnScroll || (() => {\n $toc.style.marginBottom = `${document.querySelector('.container').clientHeight - document.querySelector('.post-footer').offsetTop}px`;\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 switchMermaidTheme(theme) {\n const $mermaidElements = document.getElementsByClassName('mermaid');\n if ($mermaidElements.length) {\n // TODO perf\n const themes = this.config.mermaid.themes ?? ['default', 'dark', 'neutral'];\n mermaid.initialize({ startOnLoad: false, theme: 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\n initMermaid() {\n this.switchMermaidTheme();\n this.switchThemeEventSet.add(() => { this.switchMermaidTheme(); });\n this.beforeprintEventSet.add(() => { this.switchMermaidTheme('neutral'); });\n }\n\n initEcharts() {\n if (!this.config.echarts) {\n return;\n }\n echarts.registerTheme('light', this.config.echarts.lightTheme);\n echarts.registerTheme('dark', this.config.echarts.darkTheme);\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' : 'light', { renderer: 'svg' });\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 const loop = typeitConfig.loop ?? false;\n Object.values(typeitConfig.data).forEach((group) => {\n const typeone = (i) => {\n const id = group[i];\n const shortcodeLoop = document.querySelector(`#${id}`).parentElement.dataset.loop;\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 loop: shortcodeLoop ? JSON.parse(shortcodeLoop) : loop,\n afterComplete: () => {\n if (i === group.length - 1) {\n if (typeitConfig.duration >= 0) {\n window.setTimeout(() => {\n instance.destroy();\n }, typeitConfig.duration);\n }\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 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?.enable) {\n return;\n }\n // whether to show the view comments button\n if (document.querySelector('#comments')) {\n const $viewCommentsBtn = document.querySelector('.view-comments');\n $viewCommentsBtn.classList.remove('d-none');\n // view comments button click event\n $viewCommentsBtn.addEventListener('click', () => {\n this.util.scrollIntoView('#comments');\n }, false);\n }\n this.config.comment.expired && document.querySelector('#comments').remove();\n if (this.config.comment.artalk) {\n if (this.config.comment.expired) {\n return Artalk.LoadCountWidget({\n server: this.config.comment.artalk.server,\n site: this.config.comment.artalk.site,\n pvEl: this.config.comment.artalk.pvEl,\n countEl: this.config.comment.artalk.countEl\n })\n }\n const artalk = Artalk.init(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 if (this.config.comment.expired) {\n this.config.comment.waline.pageview && Waline.pageviewCount({\n serverURL: this.config.comment.waline.serverURL,\n path: window.location.pathname\n });\n return;\n }\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 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 }, { once: true });\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 document.querySelector('.site-time .d-none')?.classList.remove('d-none');\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 || `${document.querySelector('footer .fixit-icon')?.outerHTML ?? ''} 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 if (!this.config.pangu?.enable) {\n return;\n }\n const selector = this.config.pangu.selector;\n if (selector) {\n if (selector.startsWith('#')) {\n pangu.spacingElementById(selector.slice(1));\n } else if (selector.startsWith('.')) {\n pangu.spacingElementByClassName(selector.slice(1));\n } else {\n pangu.spacingElementByTagName(selector)\n }\n return;\n }\n 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 initAutoMark() {\n if (!this.config.autoBookmark) {\n return;\n }\n window.addEventListener('beforeunload', () => {\n window.localStorage?.setItem(`fixit-bookmark/#${location.pathname}`, this.util.getScrollTop());\n });\n const scrollTop = Number(window.localStorage?.getItem(`fixit-bookmark/#${location.pathname}`));\n // If the page opens with a specific hash, just jump out\n if (scrollTop && location.hash === '') {\n window.scrollTo({ \n top: scrollTop,\n behavior: 'smooth'\n });\n }\n }\n\n initReward() {\n const $rewards = document.querySelectorAll('.post-reward [data-mode=\"fixed\"]');\n if (!$rewards.length) {\n return;\n }\n // `fixed` mode only supports desktop\n if (this.util.isMobile()) {\n this.util.forEach($rewards, ($reward) => {\n $reward.removeAttribute('data-mode');\n });\n return;\n }\n // Close post reward images exclude special id\n const _closeRewardExclude = (id) => {\n this.util.forEach($rewards, ($reward) => {\n const $rewardInput = $reward.parentElement.querySelector('.reward-input');\n if ($rewardInput.id !== id) {\n $rewardInput.checked = false;\n }\n });\n };\n // Add additional click event to reward buttons\n this.util.forEach($rewards, ($reward) => {\n $reward.previousElementSibling.addEventListener('click', function () {\n _closeRewardExclude(this.getAttribute('for'));\n }, false)\n });\n this.scrollEventSet.add(_closeRewardExclude);\n }\n\n onScroll() {\n const $headers = [];\n const ACCURACY = 20;\n const $fixedButtons = document.querySelector('.fixed-buttons');\n const $backToTop = document.querySelector('.back-to-top');\n const $readingProgressBar = document.querySelector('.reading-progress-bar');\n let scrollTimer = void 0;\n if (document.body.dataset.headerDesktop === 'auto') {\n $headers.push(document.getElementById('header-desktop'));\n }\n if (document.body.dataset.headerMobile === 'auto') {\n $headers.push(document.getElementById('header-mobile'));\n }\n // b2t button click event\n $backToTop?.addEventListener('click', () => {\n this.util.scrollIntoView('body');\n });\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 // body scrollbar style\n document.body.toggleAttribute('data-scroll', true);\n scrollTimer && window.clearTimeout(scrollTimer);\n scrollTimer = window.setTimeout(() => {\n document.body.toggleAttribute('data-scroll');\n }, 500);\n // header animation\n this.util.forEach($headers, ($header) => {\n if (scroll > ACCURACY) {\n $header.classList.remove('animate__fadeInDown');\n this.util.animateCSS($header, ['animate__fadeOutUp'], true);\n $mask.click();\n } else if (scroll < -ACCURACY) {\n $header.classList.remove('animate__fadeOutUp');\n this.util.animateCSS($header, ['animate__fadeInDown'], true);\n $mask.click();\n }\n });\n const contentHeight = document.body.scrollHeight - window.innerHeight;\n const scrollPercent = Math.max(Math.min(100 * Math.max(this.newScrollTop, 0) / contentHeight, 100), 0);\n if ($readingProgressBar) {\n $readingProgressBar.style.setProperty('--progress', `${scrollPercent.toFixed(2)}%`);\n }\n // whether to show fixed buttons\n if ($fixedButtons) {\n if (scrollPercent > 1) {\n $fixedButtons.classList.remove('d-none', 'animate__fadeOut');\n this.util.animateCSS($fixedButtons, ['animate__fadeIn'], true);\n } else {\n $fixedButtons.classList.remove('animate__fadeIn');\n this.util.animateCSS($fixedButtons, ['animate__fadeOut'], true, () => {\n $fixedButtons.classList.contains('animate__fadeOut') && $fixedButtons.classList.add('d-none');\n });\n }\n if ($backToTop) {\n $backToTop.querySelector('span').innerText = `${Math.round(scrollPercent)}%`;\n }\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.switchMermaidTheme();\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 beforeprint() {\n window.addEventListener('beforeprint', () => {\n this.util.forEach(document.querySelectorAll('.chroma'), ($el) => {\n $el.classList.toggle('open', true)\n });\n for (let event of this.beforeprintEventSet) {\n event();\n }\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.initThemeColor();\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 this.initAutoMark();\n this.initReward();\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 this.beforeprint();\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/docs b/docs index 54db49b7a..36908da40 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 54db49b7a8448e32b7ba1b9d36e75dcf210cc48d +Subproject commit 36908da40f5a3888ceed0ac2155daf3772131098 diff --git a/layouts/_default/_markup/render-codeblock.html b/layouts/_default/_markup/render-codeblock.html new file mode 100644 index 000000000..5d39b9913 --- /dev/null +++ b/layouts/_default/_markup/render-codeblock.html @@ -0,0 +1,3 @@ +{{- $id := dict "Content" .Attributes "Scratch" .Page.Scratch | partial "function/id.html" -}} +{{- $codeBlock := transform.Highlight .Inner .Type .Options -}} +{{- replace $codeBlock "
" (printf "
" $id) 1 | safeHTML -}} diff --git a/src/js/theme.js b/src/js/theme.js index 4b3173789..09590772c 100644 --- a/src/js/theme.js +++ b/src/js/theme.js @@ -60,7 +60,7 @@ class Util { class FixIt { constructor() { this.config = window.config; - this.data = this.config.data; + this.data = this.config.data || []; this.isDark = document.body.dataset.theme === 'dark'; this.util = new Util(); this.newScrollTop = this.util.getScrollTop(); @@ -528,7 +528,8 @@ class FixIt { // code title const $title = document.createElement('span'); $title.classList.add('code-title'); - $title.insertAdjacentHTML('afterbegin', ''); + const hlAttrs = this.data[$chroma.parentNode.id]; + $title.insertAdjacentHTML('afterbegin', `${hlAttrs?.title ?? ''}`); $title.addEventListener('click', () => { $chroma.classList.toggle('open'); }, false);