From 09a7c953627dc6543cf6a1fc189d5c7604efec12 Mon Sep 17 00:00:00 2001 From: Dillon Date: Sun, 3 May 2020 11:06:10 +0800 Subject: [PATCH 01/11] fix(search): theme.js error when search is disabled (#310) --- assets/js/theme.min.js | 2 +- assets/js/theme.min.js.map | 2 +- layouts/_default/baseof.html | 2 +- src/js/theme.js | 22 ++++++++++++---------- theme.toml | 2 +- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/assets/js/theme.min.js b/assets/js/theme.min.js index 11fc0c4f0..d9383f5fd 100644 --- a/assets/js/theme.min.js +++ b/assets/js/theme.min.js @@ -1,3 +1,3 @@ -"use strict";function _objectDestructuringEmpty(a){if(null==a)throw new TypeError("Cannot destructure undefined")}function _createForOfIteratorHelper(a){if("undefined"==typeof Symbol||null==a[Symbol.iterator]){if(Array.isArray(a)||(a=_unsupportedIterableToArray(a))){var b=0,c=function(){};return{s:c,n:function n(){return b>=a.length?{done:!0}:{done:!1,value:a[b++]}},e:function e(a){throw a},f:c}}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 d,e,f=!0,g=!1;return{s:function s(){d=a[Symbol.iterator]()},n:function n(){var a=d.next();return f=a.done,a},e:function e(a){g=!0,e=a},f:function f(){try{f||null==d.return||d.return()}finally{if(g)throw e}}}}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_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(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(c):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _iterableToArray(a){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(a))return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c$1")),j=j.replace(new RegExp("(".concat(a,")"),"gi"),"<".concat(b.highlightTag,">$1"))}),d[h]={uri:h,title:i,date:g.date,context:j}}}),Object.values(d).slice(0,b.maxResultLength)};a._index?e(f()):fetch(b.lunrIndexURL).then(function(a){return a.json()}).then(function(c){var d={};a._index=lunr(function(){var a=this;b.lunrLanguageCode&&this.use(lunr[b.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"],c.forEach(function(b){d[b.objectID]=b,a.add(b)})}),a._indexData=d,e(f())}).catch(function(a){console.error(a),e([])})}else"algolia"===b.type&&(a._algoliaIndex=a._algoliaIndex||algoliasearch(b.algoliaAppID,b.algoliaSearchKey).initIndex(b.algoliaIndex),a._algoliaIndex.search(c,{offset:0,length:8*b.maxResultLength,attributesToHighlight:["title"],attributesToSnippet:["content:".concat(b.snippetLength)],highlightPreTag:"<".concat(b.highlightTag,">"),highlightPostTag:"")}).then(function(a){var c=a.hits,d={};c.forEach(function(a){var b=a.uri,c=a.date,e=a._highlightResult.title,f=a._snippetResult.content;d[b]&&d[b].context.length>f.value||(d[b]={uri:b,title:e.value,date:c,context:f.value})}),e(Object.values(d).slice(0,b.maxResultLength))}).catch(function(a){console.error(a),e([])}))},templates:{suggestion:function suggestion(a){var b=a.title,c=a.date,d=a.context;return"
".concat(b,"").concat(c,"
").concat(d,"
")},empty:function empty(a){var c=a.query;return"
".concat(b.noResultsFound,": \"").concat(c,"\"
")},footer:function footer(a){_objectDestructuringEmpty(a);var c="algolia"===b.type?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"},d=c.searchType,e=c.icon,f=c.href;return"")}}});e.on("autocomplete:selected",function(a,b){window.location.assign(b.uri)}),c?a._searchMobile=e:a._searchDesktop=e};if(b.lunrSegmentitURL&&!document.getElementById("lunr-segmentit")){var k=document.createElement("script");k.id="lunr-segmentit",k.type="text/javascript",k.src=b.lunrSegmentitURL,k.async=!0,k.readyState?k.onreadystatechange=function(){("loaded"==k.readyState||"complete"==k.readyState)&&(k.onreadystatechange=null,j())}:k.onload=function(){j()},document.body.appendChild(k)}else j()}}},{key:"initDetails",value:function initDetails(){this.util.forEach(document.getElementsByClassName("details"),function(a){var b=a.getElementsByClassName("details-summary")[0];b.addEventListener("click",function(){a.classList.toggle("open")},!1)})}},{key:"initLightGallery",value:function initLightGallery(){this.config.lightGallery&&lightGallery(document.getElementById("content"),this.config.lightGallery)}},{key:"initHighlight",value:function initHighlight(){var a=this;this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function(a){var b=document.createElement("div");b.className=a.className;var c=document.createElement("table");b.appendChild(c);var d=document.createElement("tbody");c.appendChild(d);var e=document.createElement("tr");d.appendChild(e);var f=document.createElement("td");e.appendChild(f),a.parentElement.replaceChild(b,a),f.appendChild(a)}),this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function(b){var c=b.querySelectorAll("pre.chroma > code");if(c.length){var d=c[c.length-1],e=document.createElement("div");e.className="code-header "+d.className.toLowerCase();var f=document.createElement("span");f.classList.add("code-title"),f.insertAdjacentHTML("afterbegin",""),f.addEventListener("click",function(){b.classList.toggle("open")},!1),e.appendChild(f);var g=document.createElement("span");g.insertAdjacentHTML("afterbegin",""),g.classList.add("ellipses"),g.addEventListener("click",function(){b.classList.add("open")},!1),e.appendChild(g);var h=document.createElement("span");h.insertAdjacentHTML("afterbegin",""),h.classList.add("copy");var i=d.innerText;if((0>a.config.code.maxShownLines||i.split("\n").length=a;a++)this.util.forEach(document.querySelectorAll(".single .content > h"+a),function(a){a.classList.add("headerLink"),a.insertAdjacentHTML("afterbegin",""))})}},{key:"initToc",value:function initToc(){var a=this,b=document.getElementById("TableOfContents");if(null!==b)if(this.util.isTocStatic()){var o=document.getElementById("toc-content-static");b.parentElement!==o&&(b.parentElement.removeChild(b),o.appendChild(b)),this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var p=document.getElementById("toc-content-auto");b.parentElement!==p&&(b.parentElement.removeChild(b),p.appendChild(b));var c=document.getElementById("toc-auto"),d=document.getElementsByClassName("page")[0],e=d.getBoundingClientRect();c.style.left="".concat(e.left+e.width+20,"px"),c.style.maxWidth="".concat(d.getBoundingClientRect().left-20,"px"),c.style.visibility="visible";var f=b.querySelectorAll("a:first-child"),g=b.getElementsByTagName("li"),h=document.getElementsByClassName("headerLink"),j="normal"!==this.config.headerMode.desktop,k=document.getElementById("header-desktop").offsetHeight,l=20+(j?k:0),m=c.offsetTop,n=m-l+(j?0:k);this._tocOnScroll=this._tocOnScroll||function(){var d=document.getElementById("post-footer").offsetTop,e=d-c.getBoundingClientRect().height,o=e-l+(j?0:k);a.newScrollTopo?(c.style.position="absolute",c.style.top="".concat(e,"px")):(c.style.position="fixed",c.style.top="".concat(l,"px")),a.util.forEach(f,function(a){a.classList.remove("active")}),a.util.forEach(g,function(a){a.classList.remove("has-active")});for(var p=20+(j?k:0),q=h.length-1,r=0;rp||s<=p&&t>p){q=r;break}}if(-1!==q){f[q].classList.add("active");for(var u=f[q].parentElement;u!==b;)u.classList.add("has-active"),u=u.parentElement.parentElement}},this._tocOnScroll(),this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initMath",value:function initMath(){this.config.math&&renderMathInElement(document.body,this.config.math)}},{key:"initMermaid",value:function initMermaid(){var a=this,b=document.getElementsByClassName("mermaid");b.length&&(mermaid.initialize({startOnLoad:!1,theme:"null"}),this.util.forEach(b,function(b){mermaid.mermaidAPI.render("svg-"+b.id,a.data[b.id],function(a){b.insertAdjacentHTML("afterbegin",a)},b)}))}},{key:"initEcharts",value:function initEcharts(){var a=this;this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){a._echartsArr=a._echartsArr||[];for(var b=0;bd?(b.classList.remove("fadeInDown"),a.util.animateCSS(b,["fadeOutUp","faster"],!0)):e<-d&&(b.classList.remove("fadeOutUp"),a.util.animateCSS(b,["fadeInDown","faster"],!0))}),a.newScrollTop>d?e>d?(c.classList.remove("fadeIn"),a.util.animateCSS(c,["fadeOut","faster"],!0)):e<-d&&(c.style.display="block",c.classList.remove("fadeOut"),a.util.animateCSS(c,["fadeIn","faster"],!0)):c.style.display="none";var f,g=_createForOfIteratorHelper(a.scrollEventSet);try{for(g.s();!(f=g.n()).done;){var h=f.value;h()}}catch(a){g.e(a)}finally{g.f()}a.oldScrollTop=a.newScrollTop},!1)}},{key:"onResize",value:function onResize(){var a=this;window.addEventListener("resize",function(){a._resizeTimeout||(a._resizeTimeout=window.setTimeout(function(){a._resizeTimeout=null;var b,c=_createForOfIteratorHelper(a.resizeEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}a.initToc(),a.initMermaid(),a.initSearch()},100))},!1)}},{key:"onClickMask",value:function onClickMask(){var a=this;document.getElementById("mask").addEventListener("click",function(){var b,c=_createForOfIteratorHelper(a.clickMaskEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}document.body.classList.remove("blur")},!1)}},{key:"init",value:function init(){this.initSVGIcon(),this.initTwemoji(),this.initMenuMobile(),this.initSwitchTheme(),this.initSearch(),this.initDetails(),this.initLightGallery(),this.initHighlight(),this.initTable(),this.initHeaderLink(),this.initToc(),this.initComment(),this.initSmoothScroll(),this.initMath(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initMapbox(),this.onScroll(),this.onResize(),this.onClickMask()}}]),a}(),themeInit=function(){var a=new Theme;a.init()};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",themeInit,!1):themeInit(); +"use strict";function _objectDestructuringEmpty(a){if(null==a)throw new TypeError("Cannot destructure undefined")}function _createForOfIteratorHelper(a){if("undefined"==typeof Symbol||null==a[Symbol.iterator]){if(Array.isArray(a)||(a=_unsupportedIterableToArray(a))){var b=0,c=function(){};return{s:c,n:function n(){return b>=a.length?{done:!0}:{done:!1,value:a[b++]}},e:function e(a){throw a},f:c}}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 d,e,f=!0,g=!1;return{s:function s(){d=a[Symbol.iterator]()},n:function n(){var a=d.next();return f=a.done,a},e:function e(a){g=!0,e=a},f:function f(){try{f||null==d.return||d.return()}finally{if(g)throw e}}}}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_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(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(c):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _iterableToArray(a){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(a))return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c$1")),j=j.replace(new RegExp("(".concat(a,")"),"gi"),"<".concat(b.highlightTag,">$1"))}),d[h]={uri:h,title:i,date:g.date,context:j}}}),Object.values(d).slice(0,b.maxResultLength)};a._index?e(f()):fetch(b.lunrIndexURL).then(function(a){return a.json()}).then(function(c){var d={};a._index=lunr(function(){var a=this;b.lunrLanguageCode&&this.use(lunr[b.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"],c.forEach(function(b){d[b.objectID]=b,a.add(b)})}),a._indexData=d,e(f())}).catch(function(a){console.error(a),e([])})}else"algolia"===b.type&&(a._algoliaIndex=a._algoliaIndex||algoliasearch(b.algoliaAppID,b.algoliaSearchKey).initIndex(b.algoliaIndex),a._algoliaIndex.search(c,{offset:0,length:8*b.maxResultLength,attributesToHighlight:["title"],attributesToSnippet:["content:".concat(b.snippetLength)],highlightPreTag:"<".concat(b.highlightTag,">"),highlightPostTag:"")}).then(function(a){var c=a.hits,d={};c.forEach(function(a){var b=a.uri,c=a.date,e=a._highlightResult.title,f=a._snippetResult.content;d[b]&&d[b].context.length>f.value||(d[b]={uri:b,title:e.value,date:c,context:f.value})}),e(Object.values(d).slice(0,b.maxResultLength))}).catch(function(a){console.error(a),e([])}))},templates:{suggestion:function suggestion(a){var b=a.title,c=a.date,d=a.context;return"
".concat(b,"").concat(c,"
").concat(d,"
")},empty:function empty(a){var c=a.query;return"
".concat(b.noResultsFound,": \"").concat(c,"\"
")},footer:function footer(a){_objectDestructuringEmpty(a);var c="algolia"===b.type?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"},d=c.searchType,e=c.icon,f=c.href;return"")}}});e.on("autocomplete:selected",function(a,b){window.location.assign(b.uri)}),c?a._searchMobile=e:a._searchDesktop=e};if(b.lunrSegmentitURL&&!document.getElementById("lunr-segmentit")){var k=document.createElement("script");k.id="lunr-segmentit",k.type="text/javascript",k.src=b.lunrSegmentitURL,k.async=!0,k.readyState?k.onreadystatechange=function(){("loaded"==k.readyState||"complete"==k.readyState)&&(k.onreadystatechange=null,j())}:k.onload=function(){j()},document.body.appendChild(k)}else j()}}},{key:"initDetails",value:function initDetails(){this.util.forEach(document.getElementsByClassName("details"),function(a){var b=a.getElementsByClassName("details-summary")[0];b.addEventListener("click",function(){a.classList.toggle("open")},!1)})}},{key:"initLightGallery",value:function initLightGallery(){this.config.lightGallery&&lightGallery(document.getElementById("content"),this.config.lightGallery)}},{key:"initHighlight",value:function initHighlight(){var a=this;this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function(a){var b=document.createElement("div");b.className=a.className;var c=document.createElement("table");b.appendChild(c);var d=document.createElement("tbody");c.appendChild(d);var e=document.createElement("tr");d.appendChild(e);var f=document.createElement("td");e.appendChild(f),a.parentElement.replaceChild(b,a),f.appendChild(a)}),this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function(b){var c=b.querySelectorAll("pre.chroma > code");if(c.length){var d=c[c.length-1],e=document.createElement("div");e.className="code-header "+d.className.toLowerCase();var f=document.createElement("span");f.classList.add("code-title"),f.insertAdjacentHTML("afterbegin",""),f.addEventListener("click",function(){b.classList.toggle("open")},!1),e.appendChild(f);var g=document.createElement("span");g.insertAdjacentHTML("afterbegin",""),g.classList.add("ellipses"),g.addEventListener("click",function(){b.classList.add("open")},!1),e.appendChild(g);var h=document.createElement("span");h.insertAdjacentHTML("afterbegin",""),h.classList.add("copy");var i=d.innerText;if((0>a.config.code.maxShownLines||i.split("\n").length=a;a++)this.util.forEach(document.querySelectorAll(".single .content > h"+a),function(a){a.classList.add("headerLink"),a.insertAdjacentHTML("afterbegin",""))})}},{key:"initToc",value:function initToc(){var a=this,b=document.getElementById("TableOfContents");if(null!==b)if(this.util.isTocStatic()){var o=document.getElementById("toc-content-static");b.parentElement!==o&&(b.parentElement.removeChild(b),o.appendChild(b)),this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var p=document.getElementById("toc-content-auto");b.parentElement!==p&&(b.parentElement.removeChild(b),p.appendChild(b));var c=document.getElementById("toc-auto"),d=document.getElementsByClassName("page")[0],e=d.getBoundingClientRect();c.style.left="".concat(e.left+e.width+20,"px"),c.style.maxWidth="".concat(d.getBoundingClientRect().left-20,"px"),c.style.visibility="visible";var f=b.querySelectorAll("a:first-child"),g=b.getElementsByTagName("li"),h=document.getElementsByClassName("headerLink"),j="normal"!==this.config.headerMode.desktop,k=document.getElementById("header-desktop").offsetHeight,l=20+(j?k:0),m=c.offsetTop,n=m-l+(j?0:k);this._tocOnScroll=this._tocOnScroll||function(){var d=document.getElementById("post-footer").offsetTop,e=d-c.getBoundingClientRect().height,o=e-l+(j?0:k);a.newScrollTopo?(c.style.position="absolute",c.style.top="".concat(e,"px")):(c.style.position="fixed",c.style.top="".concat(l,"px")),a.util.forEach(f,function(a){a.classList.remove("active")}),a.util.forEach(g,function(a){a.classList.remove("has-active")});for(var p=20+(j?k:0),q=h.length-1,r=0;rp||s<=p&&t>p){q=r;break}}if(-1!==q){f[q].classList.add("active");for(var u=f[q].parentElement;u!==b;)u.classList.add("has-active"),u=u.parentElement.parentElement}},this._tocOnScroll(),this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initMath",value:function initMath(){this.config.math&&renderMathInElement(document.body,this.config.math)}},{key:"initMermaid",value:function initMermaid(){var a=this,b=document.getElementsByClassName("mermaid");b.length&&(mermaid.initialize({startOnLoad:!1,theme:"null"}),this.util.forEach(b,function(b){mermaid.mermaidAPI.render("svg-"+b.id,a.data[b.id],function(a){b.insertAdjacentHTML("afterbegin",a)},b)}))}},{key:"initEcharts",value:function initEcharts(){var a=this;this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){a._echartsArr=a._echartsArr||[];for(var b=0;bd?(b.classList.remove("fadeInDown"),a.util.animateCSS(b,["fadeOutUp","faster"],!0)):e<-d&&(b.classList.remove("fadeOutUp"),a.util.animateCSS(b,["fadeInDown","faster"],!0))}),a.newScrollTop>d?e>d?(c.classList.remove("fadeIn"),a.util.animateCSS(c,["fadeOut","faster"],!0)):e<-d&&(c.style.display="block",c.classList.remove("fadeOut"),a.util.animateCSS(c,["fadeIn","faster"],!0)):c.style.display="none";var f,g=_createForOfIteratorHelper(a.scrollEventSet);try{for(g.s();!(f=g.n()).done;){var h=f.value;h()}}catch(a){g.e(a)}finally{g.f()}a.oldScrollTop=a.newScrollTop},!1)}},{key:"onResize",value:function onResize(){var a=this;window.addEventListener("resize",function(){a._resizeTimeout||(a._resizeTimeout=window.setTimeout(function(){a._resizeTimeout=null;var b,c=_createForOfIteratorHelper(a.resizeEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}a.initToc(),a.initMermaid(),a.initSearch()},100))},!1)}},{key:"onClickMask",value:function onClickMask(){var a=this;document.getElementById("mask").addEventListener("click",function(){var b,c=_createForOfIteratorHelper(a.clickMaskEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}document.body.classList.remove("blur")},!1)}},{key:"init",value:function init(){this.initSVGIcon(),this.initTwemoji(),this.initMenuMobile(),this.initSwitchTheme(),this.initSearch(),this.initDetails(),this.initLightGallery(),this.initHighlight(),this.initTable(),this.initHeaderLink(),this.initToc(),this.initComment(),this.initSmoothScroll(),this.initMath(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initMapbox(),this.onScroll(),this.onResize(),this.onClickMask()}}]),a}(),themeInit=function(){var a=new Theme;a.init()};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",themeInit,!1):themeInit(); //# 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 4bdf1eb96..31abb27f1 100644 --- a/assets/js/theme.min.js.map +++ b/assets/js/theme.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/js/theme.js"],"names":[],"mappings":"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","file":"theme.min.js","sourcesContent":["class Util {\n forEach(elements, handler) {\n elements = elements || [];\n for (let i = 0; i < elements.length; i++) handler(elements[i]);\n }\n\n getScrollTop() {\n return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n }\n\n isMobile() {\n return window.matchMedia('only screen and (max-width: 680px)').matches;\n }\n\n isTocStatic() {\n return window.matchMedia('only screen and (max-width: 960px)').matches;\n }\n\n animateCSS(element, animation, reserved, callback) {\n if (!Array.isArray(animation)) animation = [animation];\n element.classList.add('animated', ...animation);\n const handler = () => {\n element.classList.remove('animated', ...animation);\n element.removeEventListener('animationend', handler);\n if (typeof callback === 'function') callback();\n };\n if (!reserved) element.addEventListener('animationend', handler, false);\n }\n}\n\nclass Theme {\n constructor() {\n this.config = window.config;\n this.data = this.config.data;\n this.isDark = document.body.getAttribute('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 if (objectFitImages) objectFitImages();\n }\n\n initSVGIcon() {\n this.util.forEach(document.querySelectorAll('[data-svg-src]'), $icon => {\n fetch($icon.getAttribute('data-svg-src'))\n .then(response => response.text())\n .then(svg => {\n const $temp = document.createElement('div');\n $temp.insertAdjacentHTML('afterbegin', svg);\n const $svg = $temp.firstChild;\n $svg.setAttribute('data-svg-src', $icon.getAttribute('data-svg-src'));\n $svg.classList.add('icon');\n const $titleElements = $svg.getElementsByTagName('title');\n if ($titleElements.length) $svg.removeChild($titleElements[0]);\n $icon.parentElement.replaceChild($svg, $icon);\n })\n .catch(err => { console.error(err); });\n });\n }\n\n initTwemoji() {\n if (this.config.twemoji) twemoji.parse(document.body);\n }\n\n initMenuMobile() {\n const $menuToggleMobile = document.getElementById('menu-toggle-mobile');\n const $menuMobile = document.getElementById('menu-mobile');\n $menuToggleMobile.addEventListener('click', () => {\n document.body.classList.toggle('blur');\n $menuToggleMobile.classList.toggle('active');\n $menuMobile.classList.toggle('active');\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 }\n\n initSwitchTheme() {\n this.util.forEach(document.getElementsByClassName('theme-switch'), $themeSwitch => {\n $themeSwitch.addEventListener('click', () => {\n if (document.body.getAttribute('theme') === 'dark') document.body.setAttribute('theme', 'light');\n else document.body.setAttribute('theme', 'dark');\n this.isDark = !this.isDark;\n window.localStorage && localStorage.setItem('theme', this.isDark ? 'dark' : 'light');\n for (let event of this.switchThemeEventSet) event();\n }, false);\n });\n }\n\n initSearch() {\n const searchConfig = this.config.search;\n if (!searchConfig.maxResultLength) searchConfig.maxResultLength = 10;\n if (!searchConfig.snippetLength) searchConfig.snippetLength = 50;\n if (!searchConfig.highlightTag) searchConfig.highlightTag = 'em';\n const isMobile = this.util.isMobile();\n if (!searchConfig || isMobile && this._searchMobileOnce || !isMobile && this._searchDesktopOnce) return;\n const classSuffix = isMobile ? 'mobile' : 'desktop';\n const $header = document.getElementById(`header-${classSuffix}`);\n const $searchInput = document.getElementById(`search-input-${classSuffix}`);\n const $searchToggle = document.getElementById(`search-toggle-${classSuffix}`);\n const $searchLoading = document.getElementById(`search-loading-${classSuffix}`);\n const $searchClear = document.getElementById(`search-clear-${classSuffix}`);\n if (isMobile) {\n this._searchMobileOnce = true;\n $searchInput.addEventListener('focus', () => {\n document.body.classList.add('blur');\n $header.classList.add('open');\n }, false);\n document.getElementById('search-cancel-mobile').addEventListener('click', () => {\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-${classSuffix}`, {\n hint: false,\n autoselect: true,\n dropdownMenuContainer: `#search-dropdown-${classSuffix}`,\n clearOnSelected: true,\n cssClasses: { noPrefix: true },\n debug: true,\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) query = lunr.queryHandler(query);\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]) return;\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) position = matchPosition;\n }\n });\n position -= searchConfig.snippetLength / 5;\n if (position > 0) {\n position += context.substr(position, 20).lastIndexOf(' ') + 1;\n context = '...' + context.substr(position, searchConfig.snippetLength);\n } else {\n context = context.substr(0, searchConfig.snippetLength);\n }\n Object.keys(metadata).forEach(key => {\n title = title.replace(new RegExp(`(${key})`, 'gi'), `<${searchConfig.highlightTag}>$1`);\n context = context.replace(new RegExp(`(${key})`, 'gi'), `<${searchConfig.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, searchConfig.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 }).catch(err => {\n console.error(err);\n finish([]);\n });\n } else finish(search());\n } else if (searchConfig.type === 'algolia') {\n this._algoliaIndex = this._algoliaIndex || algoliasearch(searchConfig.algoliaAppID, searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);\n this._algoliaIndex\n .search(query, {\n offset: 0,\n length: searchConfig.maxResultLength * 8,\n attributesToHighlight: ['title'],\n attributesToSnippet: [`content:${searchConfig.snippetLength}`],\n highlightPreTag: `<${searchConfig.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) return;\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, searchConfig.maxResultLength));\n })\n .catch(err => {\n console.error(err);\n finish([]);\n });\n }\n },\n templates: {\n suggestion: ({ title, date, context }) => `
${title}${date}
${context}
`,\n empty: ({ query }) => `
${searchConfig.noResultsFound}: \"${query}\"
`,\n footer: ({}) => {\n const { searchType, icon, href } = searchConfig.type === 'algolia' ? {\n searchType: 'algolia',\n icon: '',\n href: 'https://www.algolia.com/',\n } : {\n searchType: 'Lunr.js',\n icon: '',\n href: 'https://lunrjs.com/',\n };\n return ``;},\n },\n });\n autosearch.on('autocomplete:selected', (event, suggestion, dataset, context) => {\n window.location.assign(suggestion.uri);\n });\n if (isMobile) this._searchMobile = autosearch;\n else this._searchDesktop = autosearch;\n };\n if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) {\n const script = document.createElement('script');\n script.id = 'lunr-segmentit';\n script.type = 'text/javascript';\n script.src = searchConfig.lunrSegmentitURL;\n script.async = true;\n if (script.readyState) {\n script.onreadystatechange = () => {\n if (script.readyState == 'loaded' || script.readyState == 'complete'){\n script.onreadystatechange = null;\n initAutosearch();\n }\n };\n } else {\n script.onload = () => {\n initAutosearch();\n };\n }\n document.body.appendChild(script);\n } else initAutosearch();\n }\n\n initDetails() {\n this.util.forEach(document.getElementsByClassName('details'), $details => {\n const $summary = $details.getElementsByClassName('details-summary')[0];\n $summary.addEventListener('click', () => {\n $details.classList.toggle('open');\n }, false);\n });\n }\n\n initLightGallery() {\n if (this.config.lightGallery) lightGallery(document.getElementById('content'), this.config.lightGallery);\n }\n\n initHighlight() {\n this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), $preChroma => {\n const $chroma = document.createElement('div');\n $chroma.className = $preChroma.className;\n const $table = document.createElement('table');\n $chroma.appendChild($table);\n const $tbody = document.createElement('tbody');\n $table.appendChild($tbody);\n const $tr = document.createElement('tr');\n $tbody.appendChild($tr);\n const $td = document.createElement('td');\n $tr.appendChild($td);\n $preChroma.parentElement.replaceChild($chroma, $preChroma);\n $td.appendChild($preChroma);\n });\n this.util.forEach(document.querySelectorAll('.highlight > .chroma'), $chroma => {\n const $codeElements = $chroma.querySelectorAll('pre.chroma > code');\n if ($codeElements.length) {\n const $code = $codeElements[$codeElements.length - 1];\n const $header = document.createElement('div');\n $header.className = 'code-header ' + $code.className.toLowerCase();\n 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 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 const $copy = document.createElement('span');\n $copy.insertAdjacentHTML('afterbegin', '');\n $copy.classList.add('copy');\n const code = $code.innerText;\n if (this.config.code.maxShownLines < 0 || code.split('\\n').length < this.config.code.maxShownLines + 2) $chroma.classList.add('open');\n if (this.config.code.copyTitle) {\n $copy.setAttribute('data-clipboard-text', code);\n $copy.title = this.config.code.copyTitle;\n const clipboard = new ClipboardJS($copy);\n clipboard.on('success', e => {\n this.util.animateCSS($code, 'flash');\n });\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('headerLink');\n $header.insertAdjacentHTML('afterbegin', ``);\n });\n }\n }\n\n initToc() {\n const $tocCore = document.getElementById('TableOfContents');\n if ($tocCore === null) return;\n if (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 if (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 const $page = document.getElementsByClassName('page')[0];\n const rect = $page.getBoundingClientRect();\n $toc.style.left = `${rect.left + rect.width + 20}px`;\n $toc.style.maxWidth = `${$page.getBoundingClientRect().left - 20}px`;\n $toc.style.visibility = 'visible';\n const $tocLinkElements = $tocCore.querySelectorAll('a:first-child');\n const $tocLiElements = $tocCore.getElementsByTagName('li');\n const $headerLinkElements = document.getElementsByClassName('headerLink');\n const headerIsFixed = this.config.headerMode.desktop !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n const TOP_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n const minTocTop = $toc.offsetTop;\n const minScrollTop = minTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n this._tocOnScroll = this._tocOnScroll || (() => {\n const footerTop = document.getElementById('post-footer').offsetTop;\n const maxTocTop = footerTop - $toc.getBoundingClientRect().height;\n const maxScrollTop = maxTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n if (this.newScrollTop < minScrollTop) {\n $toc.style.position = 'absolute';\n $toc.style.top = `${minTocTop}px`;\n } else if (this.newScrollTop > maxScrollTop) {\n $toc.style.position = 'absolute';\n $toc.style.top = `${maxTocTop}px`;\n } else {\n $toc.style.position = 'fixed';\n $toc.style.top = `${TOP_SPACING}px`;\n }\n\n this.util.forEach($tocLinkElements, $tocLink => { $tocLink.classList.remove('active'); });\n this.util.forEach($tocLiElements, $tocLi => { $tocLi.classList.remove('has-active'); });\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)\n || (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 initMath() {\n if (this.config.math) renderMathInElement(document.body, this.config.math);\n }\n\n initMermaid() {\n const $mermaidElements = document.getElementsByClassName('mermaid');\n if ($mermaidElements.length) {\n mermaid.initialize({startOnLoad: false, theme: 'null'});\n this.util.forEach($mermaidElements, $mermaid => {\n mermaid.mermaidAPI.render('svg-' + $mermaid.id, this.data[$mermaid.id], svgCode => {\n $mermaid.insertAdjacentHTML('afterbegin', svgCode);\n }, $mermaid);\n });\n }\n }\n\n initEcharts() {\n this._echartsOnSwitchTheme = this._echartsOnSwitchTheme || (() => {\n this._echartsArr = this._echartsArr || [];\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].dispose();\n }\n this._echartsArr = [];\n this.util.forEach(document.getElementsByClassName('echarts'), $echarts => {\n const chart = echarts.init($echarts, this.isDark ? 'dark' : 'macarons', {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: .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(new mapboxgl.GeolocateControl({\n positionOptions: {\n enableHighAccuracy: true,\n },\n showUserLocation: true,\n trackUserLocation: true,\n }), 'bottom-right');\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 this.config.typeit.forEach(group => {\n const typeone = (i) => {\n const id = group[i];\n if (i === group.length - 1) {\n new TypeIt(`#${id}`, {\n strings: this.data[id],\n }).go();\n return;\n }\n let instance = new TypeIt(`#${id}`, {\n strings: this.data[id],\n afterComplete: () => {\n instance.destroy();\n typeone(i + 1);\n },\n }).go();\n };\n typeone(0);\n });\n }\n }\n\n initComment() {\n if (this.config.comment && this.config.comment.gitalk) {\n this.config.comment.gitalk.body = decodeURI(window.location.href);\n const gitalk = new Gitalk(this.config.comment.gitalk.body);\n gitalk.render('gitalk');\n }\n if (this.config.comment && this.config.comment.valine) new Valine(this.config.comment.valine);\n }\n\n initSmoothScroll() {\n if (SmoothScroll) new SmoothScroll('[href^=\"#\"]', { speed: 300, speedAsDuration: true, header: '#header-desktop' });\n }\n\n onScroll() {\n const $headers = [];\n if (this.config.headerMode.desktop === 'auto') $headers.push(document.getElementById('header-desktop'));\n if (this.config.headerMode.mobile === 'auto') $headers.push(document.getElementById('header-mobile'));\n if (document.getElementById('comments')) {\n const $viewComments = document.getElementById('view-comments');\n $viewComments.href = `#comments`;\n $viewComments.style.display = 'block';\n }\n const $fixedButtons = document.getElementById('fixed-buttons');\n const MIN_SCROLL = 20;\n window.addEventListener('scroll', () => {\n this.newScrollTop = this.util.getScrollTop();\n const scroll = this.newScrollTop - this.oldScrollTop;\n this.util.forEach($headers, $header => {\n if (scroll > MIN_SCROLL) {\n $header.classList.remove('fadeInDown');\n this.util.animateCSS($header, ['fadeOutUp', 'faster'], true);\n } else if (scroll < - MIN_SCROLL) {\n $header.classList.remove('fadeOutUp');\n this.util.animateCSS($header, ['fadeInDown', 'faster'], true);\n }\n });\n if (this.newScrollTop > MIN_SCROLL) {\n if (scroll > MIN_SCROLL) {\n $fixedButtons.classList.remove('fadeIn');\n this.util.animateCSS($fixedButtons, ['fadeOut', 'faster'], true);\n } else if (scroll < - MIN_SCROLL) {\n $fixedButtons.style.display = 'block';\n $fixedButtons.classList.remove('fadeOut');\n this.util.animateCSS($fixedButtons, ['fadeIn', 'faster'], true);\n }\n } else {\n $fixedButtons.style.display = 'none';\n }\n for (let event of this.scrollEventSet) event();\n this.oldScrollTop = this.newScrollTop;\n }, false);\n }\n\n onResize() {\n window.addEventListener('resize', () => {\n if (!this._resizeTimeout) {\n this._resizeTimeout = window.setTimeout(() => {\n this._resizeTimeout = null;\n for (let event of this.resizeEventSet) event();\n this.initToc();\n this.initMermaid();\n this.initSearch();\n }, 100);\n }\n }, false);\n }\n\n onClickMask() {\n document.getElementById('mask').addEventListener('click', () => {\n for (let event of this.clickMaskEventSet) event();\n document.body.classList.remove('blur');\n }, false);\n }\n\n init() {\n this.initSVGIcon();\n this.initTwemoji();\n this.initMenuMobile();\n this.initSwitchTheme();\n this.initSearch();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initToc();\n this.initComment();\n this.initSmoothScroll();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n\n this.onScroll();\n this.onResize();\n this.onClickMask();\n }\n}\n\nconst themeInit = () => {\n const theme = new Theme();\n theme.init();\n};\n\nif (document.readyState !== 'loading') {\n themeInit();\n} else {\n document.addEventListener('DOMContentLoaded', themeInit, false);\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../src/js/theme.js"],"names":[],"mappings":"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","file":"theme.min.js","sourcesContent":["class Util {\n forEach(elements, handler) {\n elements = elements || [];\n for (let i = 0; i < elements.length; i++) handler(elements[i]);\n }\n\n getScrollTop() {\n return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n }\n\n isMobile() {\n return window.matchMedia('only screen and (max-width: 680px)').matches;\n }\n\n isTocStatic() {\n return window.matchMedia('only screen and (max-width: 960px)').matches;\n }\n\n animateCSS(element, animation, reserved, callback) {\n if (!Array.isArray(animation)) animation = [animation];\n element.classList.add('animated', ...animation);\n const handler = () => {\n element.classList.remove('animated', ...animation);\n element.removeEventListener('animationend', handler);\n if (typeof callback === 'function') callback();\n };\n if (!reserved) element.addEventListener('animationend', handler, false);\n }\n}\n\nclass Theme {\n constructor() {\n this.config = window.config;\n this.data = this.config.data;\n this.isDark = document.body.getAttribute('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 if (objectFitImages) objectFitImages();\n }\n\n initSVGIcon() {\n this.util.forEach(document.querySelectorAll('[data-svg-src]'), $icon => {\n fetch($icon.getAttribute('data-svg-src'))\n .then(response => response.text())\n .then(svg => {\n const $temp = document.createElement('div');\n $temp.insertAdjacentHTML('afterbegin', svg);\n const $svg = $temp.firstChild;\n $svg.setAttribute('data-svg-src', $icon.getAttribute('data-svg-src'));\n $svg.classList.add('icon');\n const $titleElements = $svg.getElementsByTagName('title');\n if ($titleElements.length) $svg.removeChild($titleElements[0]);\n $icon.parentElement.replaceChild($svg, $icon);\n })\n .catch(err => { console.error(err); });\n });\n }\n\n initTwemoji() {\n if (this.config.twemoji) twemoji.parse(document.body);\n }\n\n initMenuMobile() {\n const $menuToggleMobile = document.getElementById('menu-toggle-mobile');\n const $menuMobile = document.getElementById('menu-mobile');\n $menuToggleMobile.addEventListener('click', () => {\n document.body.classList.toggle('blur');\n $menuToggleMobile.classList.toggle('active');\n $menuMobile.classList.toggle('active');\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 }\n\n initSwitchTheme() {\n this.util.forEach(document.getElementsByClassName('theme-switch'), $themeSwitch => {\n $themeSwitch.addEventListener('click', () => {\n if (document.body.getAttribute('theme') === 'dark') document.body.setAttribute('theme', 'light');\n else document.body.setAttribute('theme', 'dark');\n this.isDark = !this.isDark;\n window.localStorage && localStorage.setItem('theme', this.isDark ? 'dark' : 'light');\n for (let event of this.switchThemeEventSet) event();\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) return;\n\n if (!searchConfig.maxResultLength) searchConfig.maxResultLength = 10;\n if (!searchConfig.snippetLength) searchConfig.snippetLength = 50;\n if (!searchConfig.highlightTag) searchConfig.highlightTag = 'em';\n\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 if (isMobile) {\n this._searchMobileOnce = true;\n $searchInput.addEventListener('focus', () => {\n document.body.classList.add('blur');\n $header.classList.add('open');\n }, false);\n document.getElementById('search-cancel-mobile').addEventListener('click', () => {\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 hint: false,\n autoselect: true,\n dropdownMenuContainer: `#search-dropdown-${suffix}`,\n clearOnSelected: true,\n cssClasses: { noPrefix: true },\n debug: true,\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) query = lunr.queryHandler(query);\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]) return;\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) position = matchPosition;\n }\n });\n position -= searchConfig.snippetLength / 5;\n if (position > 0) {\n position += context.substr(position, 20).lastIndexOf(' ') + 1;\n context = '...' + context.substr(position, searchConfig.snippetLength);\n } else {\n context = context.substr(0, searchConfig.snippetLength);\n }\n Object.keys(metadata).forEach(key => {\n title = title.replace(new RegExp(`(${key})`, 'gi'), `<${searchConfig.highlightTag}>$1`);\n context = context.replace(new RegExp(`(${key})`, 'gi'), `<${searchConfig.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, searchConfig.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 }).catch(err => {\n console.error(err);\n finish([]);\n });\n } else finish(search());\n } else if (searchConfig.type === 'algolia') {\n this._algoliaIndex = this._algoliaIndex || algoliasearch(searchConfig.algoliaAppID, searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);\n this._algoliaIndex\n .search(query, {\n offset: 0,\n length: searchConfig.maxResultLength * 8,\n attributesToHighlight: ['title'],\n attributesToSnippet: [`content:${searchConfig.snippetLength}`],\n highlightPreTag: `<${searchConfig.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) return;\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, searchConfig.maxResultLength));\n })\n .catch(err => {\n console.error(err);\n finish([]);\n });\n }\n },\n templates: {\n suggestion: ({ title, date, context }) => `
${title}${date}
${context}
`,\n empty: ({ query }) => `
${searchConfig.noResultsFound}: \"${query}\"
`,\n footer: ({}) => {\n const { searchType, icon, href } = searchConfig.type === 'algolia' ? {\n searchType: 'algolia',\n icon: '',\n href: 'https://www.algolia.com/',\n } : {\n searchType: 'Lunr.js',\n icon: '',\n href: 'https://lunrjs.com/',\n };\n return ``;},\n },\n });\n autosearch.on('autocomplete:selected', (event, suggestion, dataset, context) => {\n window.location.assign(suggestion.uri);\n });\n if (isMobile) this._searchMobile = autosearch;\n else this._searchDesktop = autosearch;\n };\n if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) {\n const script = document.createElement('script');\n script.id = 'lunr-segmentit';\n script.type = 'text/javascript';\n script.src = searchConfig.lunrSegmentitURL;\n script.async = true;\n if (script.readyState) {\n script.onreadystatechange = () => {\n if (script.readyState == 'loaded' || script.readyState == 'complete'){\n script.onreadystatechange = null;\n initAutosearch();\n }\n };\n } else {\n script.onload = () => {\n initAutosearch();\n };\n }\n document.body.appendChild(script);\n } else initAutosearch();\n }\n\n initDetails() {\n this.util.forEach(document.getElementsByClassName('details'), $details => {\n const $summary = $details.getElementsByClassName('details-summary')[0];\n $summary.addEventListener('click', () => {\n $details.classList.toggle('open');\n }, false);\n });\n }\n\n initLightGallery() {\n if (this.config.lightGallery) lightGallery(document.getElementById('content'), this.config.lightGallery);\n }\n\n initHighlight() {\n this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), $preChroma => {\n const $chroma = document.createElement('div');\n $chroma.className = $preChroma.className;\n const $table = document.createElement('table');\n $chroma.appendChild($table);\n const $tbody = document.createElement('tbody');\n $table.appendChild($tbody);\n const $tr = document.createElement('tr');\n $tbody.appendChild($tr);\n const $td = document.createElement('td');\n $tr.appendChild($td);\n $preChroma.parentElement.replaceChild($chroma, $preChroma);\n $td.appendChild($preChroma);\n });\n this.util.forEach(document.querySelectorAll('.highlight > .chroma'), $chroma => {\n const $codeElements = $chroma.querySelectorAll('pre.chroma > code');\n if ($codeElements.length) {\n const $code = $codeElements[$codeElements.length - 1];\n const $header = document.createElement('div');\n $header.className = 'code-header ' + $code.className.toLowerCase();\n 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 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 const $copy = document.createElement('span');\n $copy.insertAdjacentHTML('afterbegin', '');\n $copy.classList.add('copy');\n const code = $code.innerText;\n if (this.config.code.maxShownLines < 0 || code.split('\\n').length < this.config.code.maxShownLines + 2) $chroma.classList.add('open');\n if (this.config.code.copyTitle) {\n $copy.setAttribute('data-clipboard-text', code);\n $copy.title = this.config.code.copyTitle;\n const clipboard = new ClipboardJS($copy);\n clipboard.on('success', e => {\n this.util.animateCSS($code, 'flash');\n });\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('headerLink');\n $header.insertAdjacentHTML('afterbegin', ``);\n });\n }\n }\n\n initToc() {\n const $tocCore = document.getElementById('TableOfContents');\n if ($tocCore === null) return;\n if (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 if (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 const $page = document.getElementsByClassName('page')[0];\n const rect = $page.getBoundingClientRect();\n $toc.style.left = `${rect.left + rect.width + 20}px`;\n $toc.style.maxWidth = `${$page.getBoundingClientRect().left - 20}px`;\n $toc.style.visibility = 'visible';\n const $tocLinkElements = $tocCore.querySelectorAll('a:first-child');\n const $tocLiElements = $tocCore.getElementsByTagName('li');\n const $headerLinkElements = document.getElementsByClassName('headerLink');\n const headerIsFixed = this.config.headerMode.desktop !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n const TOP_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n const minTocTop = $toc.offsetTop;\n const minScrollTop = minTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n this._tocOnScroll = this._tocOnScroll || (() => {\n const footerTop = document.getElementById('post-footer').offsetTop;\n const maxTocTop = footerTop - $toc.getBoundingClientRect().height;\n const maxScrollTop = maxTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n if (this.newScrollTop < minScrollTop) {\n $toc.style.position = 'absolute';\n $toc.style.top = `${minTocTop}px`;\n } else if (this.newScrollTop > maxScrollTop) {\n $toc.style.position = 'absolute';\n $toc.style.top = `${maxTocTop}px`;\n } else {\n $toc.style.position = 'fixed';\n $toc.style.top = `${TOP_SPACING}px`;\n }\n\n this.util.forEach($tocLinkElements, $tocLink => { $tocLink.classList.remove('active'); });\n this.util.forEach($tocLiElements, $tocLi => { $tocLi.classList.remove('has-active'); });\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)\n || (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 initMath() {\n if (this.config.math) renderMathInElement(document.body, this.config.math);\n }\n\n initMermaid() {\n const $mermaidElements = document.getElementsByClassName('mermaid');\n if ($mermaidElements.length) {\n mermaid.initialize({startOnLoad: false, theme: 'null'});\n this.util.forEach($mermaidElements, $mermaid => {\n mermaid.mermaidAPI.render('svg-' + $mermaid.id, this.data[$mermaid.id], svgCode => {\n $mermaid.insertAdjacentHTML('afterbegin', svgCode);\n }, $mermaid);\n });\n }\n }\n\n initEcharts() {\n this._echartsOnSwitchTheme = this._echartsOnSwitchTheme || (() => {\n this._echartsArr = this._echartsArr || [];\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].dispose();\n }\n this._echartsArr = [];\n this.util.forEach(document.getElementsByClassName('echarts'), $echarts => {\n const chart = echarts.init($echarts, this.isDark ? 'dark' : 'macarons', {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: .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(new mapboxgl.GeolocateControl({\n positionOptions: {\n enableHighAccuracy: true,\n },\n showUserLocation: true,\n trackUserLocation: true,\n }), 'bottom-right');\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 this.config.typeit.forEach(group => {\n const typeone = (i) => {\n const id = group[i];\n if (i === group.length - 1) {\n new TypeIt(`#${id}`, {\n strings: this.data[id],\n }).go();\n return;\n }\n let instance = new TypeIt(`#${id}`, {\n strings: this.data[id],\n afterComplete: () => {\n instance.destroy();\n typeone(i + 1);\n },\n }).go();\n };\n typeone(0);\n });\n }\n }\n\n initComment() {\n if (this.config.comment && this.config.comment.gitalk) {\n this.config.comment.gitalk.body = decodeURI(window.location.href);\n const gitalk = new Gitalk(this.config.comment.gitalk.body);\n gitalk.render('gitalk');\n }\n if (this.config.comment && this.config.comment.valine) new Valine(this.config.comment.valine);\n }\n\n initSmoothScroll() {\n if (SmoothScroll) new SmoothScroll('[href^=\"#\"]', { speed: 300, speedAsDuration: true, header: '#header-desktop' });\n }\n\n onScroll() {\n const $headers = [];\n if (this.config.headerMode.desktop === 'auto') $headers.push(document.getElementById('header-desktop'));\n if (this.config.headerMode.mobile === 'auto') $headers.push(document.getElementById('header-mobile'));\n if (document.getElementById('comments')) {\n const $viewComments = document.getElementById('view-comments');\n $viewComments.href = `#comments`;\n $viewComments.style.display = 'block';\n }\n const $fixedButtons = document.getElementById('fixed-buttons');\n const MIN_SCROLL = 20;\n window.addEventListener('scroll', () => {\n this.newScrollTop = this.util.getScrollTop();\n const scroll = this.newScrollTop - this.oldScrollTop;\n this.util.forEach($headers, $header => {\n if (scroll > MIN_SCROLL) {\n $header.classList.remove('fadeInDown');\n this.util.animateCSS($header, ['fadeOutUp', 'faster'], true);\n } else if (scroll < - MIN_SCROLL) {\n $header.classList.remove('fadeOutUp');\n this.util.animateCSS($header, ['fadeInDown', 'faster'], true);\n }\n });\n if (this.newScrollTop > MIN_SCROLL) {\n if (scroll > MIN_SCROLL) {\n $fixedButtons.classList.remove('fadeIn');\n this.util.animateCSS($fixedButtons, ['fadeOut', 'faster'], true);\n } else if (scroll < - MIN_SCROLL) {\n $fixedButtons.style.display = 'block';\n $fixedButtons.classList.remove('fadeOut');\n this.util.animateCSS($fixedButtons, ['fadeIn', 'faster'], true);\n }\n } else {\n $fixedButtons.style.display = 'none';\n }\n for (let event of this.scrollEventSet) event();\n this.oldScrollTop = this.newScrollTop;\n }, false);\n }\n\n onResize() {\n window.addEventListener('resize', () => {\n if (!this._resizeTimeout) {\n this._resizeTimeout = window.setTimeout(() => {\n this._resizeTimeout = null;\n for (let event of this.resizeEventSet) event();\n this.initToc();\n this.initMermaid();\n this.initSearch();\n }, 100);\n }\n }, false);\n }\n\n onClickMask() {\n document.getElementById('mask').addEventListener('click', () => {\n for (let event of this.clickMaskEventSet) event();\n document.body.classList.remove('blur');\n }, false);\n }\n\n init() {\n this.initSVGIcon();\n this.initTwemoji();\n this.initMenuMobile();\n this.initSwitchTheme();\n this.initSearch();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initToc();\n this.initComment();\n this.initSmoothScroll();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n\n this.onScroll();\n this.onResize();\n this.onClickMask();\n }\n}\n\nconst themeInit = () => {\n const theme = new Theme();\n theme.init();\n};\n\nif (document.readyState !== 'loading') {\n themeInit();\n} else {\n document.addEventListener('DOMContentLoaded', themeInit, false);\n}\n"]} \ No newline at end of file diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 0bcf43421..b08da4a46 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -10,7 +10,7 @@ {{- end -}} {{- $params := .Params | merge .Site.Params.page -}} -{{- .Scratch.Set "version" "0.2.4" -}} +{{- .Scratch.Set "version" "0.2.5" -}} {{- if eq hugo.Environment "production" -}} {{- .Scratch.Set "cdn" .Site.Params.cdn -}} diff --git a/src/js/theme.js b/src/js/theme.js index 0f25881d2..8459a05d2 100644 --- a/src/js/theme.js +++ b/src/js/theme.js @@ -94,17 +94,19 @@ class Theme { initSearch() { const searchConfig = this.config.search; + const isMobile = this.util.isMobile(); + if (!searchConfig || isMobile && this._searchMobileOnce || !isMobile && this._searchDesktopOnce) return; + if (!searchConfig.maxResultLength) searchConfig.maxResultLength = 10; if (!searchConfig.snippetLength) searchConfig.snippetLength = 50; if (!searchConfig.highlightTag) searchConfig.highlightTag = 'em'; - const isMobile = this.util.isMobile(); - if (!searchConfig || isMobile && this._searchMobileOnce || !isMobile && this._searchDesktopOnce) return; - const classSuffix = isMobile ? 'mobile' : 'desktop'; - const $header = document.getElementById(`header-${classSuffix}`); - const $searchInput = document.getElementById(`search-input-${classSuffix}`); - const $searchToggle = document.getElementById(`search-toggle-${classSuffix}`); - const $searchLoading = document.getElementById(`search-loading-${classSuffix}`); - const $searchClear = document.getElementById(`search-clear-${classSuffix}`); + + const suffix = isMobile ? 'mobile' : 'desktop'; + const $header = document.getElementById(`header-${suffix}`); + const $searchInput = document.getElementById(`search-input-${suffix}`); + const $searchToggle = document.getElementById(`search-toggle-${suffix}`); + const $searchLoading = document.getElementById(`search-loading-${suffix}`); + const $searchClear = document.getElementById(`search-clear-${suffix}`); if (isMobile) { this._searchMobileOnce = true; $searchInput.addEventListener('focus', () => { @@ -156,10 +158,10 @@ class Theme { }, false); const initAutosearch = () => { - const autosearch = autocomplete(`#search-input-${classSuffix}`, { + const autosearch = autocomplete(`#search-input-${suffix}`, { hint: false, autoselect: true, - dropdownMenuContainer: `#search-dropdown-${classSuffix}`, + dropdownMenuContainer: `#search-dropdown-${suffix}`, clearOnSelected: true, cssClasses: { noPrefix: true }, debug: true, diff --git a/theme.toml b/theme.toml index 2a6d23ebf..69ba85b6f 100644 --- a/theme.toml +++ b/theme.toml @@ -5,7 +5,7 @@ name = "LoveIt" license = "MIT" licenselink = "https://github.com/dillonzq/LoveIt/blob/master/LICENSE" description = "A Clean, Elegant but Advanced Hugo Theme for Hugo." -homepage = "https://hugo-loveit-en.netlify.com" +homepage = "https://hugoloveit.com" tags = [ "blog", "clean", From 8c706548c7e0e02921262de71024a434ed670bf8 Mon Sep 17 00:00:00 2001 From: Dave A-W Date: Sun, 3 May 2020 11:15:42 +0800 Subject: [PATCH 02/11] feat(header): support header title typeit (#306) --- exampleSite/config.toml | 3 +++ .../content/posts/theme-documentation-basics.en.md | 2 ++ .../content/posts/theme-documentation-basics.fr.md | 2 ++ .../posts/theme-documentation-basics.zh-cn.md | 2 ++ layouts/partials/header.html | 12 ++++++++++++ 5 files changed, 21 insertions(+) diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 9cb66a1a2..6767b9e57 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -655,6 +655,9 @@ enableEmoji = true # you can add extra information after the name (HTML format is supported), such as icons # 你可以在名称 (允许 HTML 格式) 之后添加其他信息, 例如图标 post = "" + # whether to use typeit animation for title name + # 是否为副标题显示打字机动画 + typeit = false # Footer config # 页面底部信息配置 diff --git a/exampleSite/content/posts/theme-documentation-basics.en.md b/exampleSite/content/posts/theme-documentation-basics.en.md index 86f7deb61..f35f8d9ae 100644 --- a/exampleSite/content/posts/theme-documentation-basics.en.md +++ b/exampleSite/content/posts/theme-documentation-basics.en.md @@ -254,6 +254,8 @@ Please open the code block below to view the complete sample configuration :(far pre = "" # you can add extra information after the name (HTML format is supported), such as icons post = "" + # whether to use typeit animation for title name + typeit = false # Footer config [params.footer] diff --git a/exampleSite/content/posts/theme-documentation-basics.fr.md b/exampleSite/content/posts/theme-documentation-basics.fr.md index 574940675..7be524591 100644 --- a/exampleSite/content/posts/theme-documentation-basics.fr.md +++ b/exampleSite/content/posts/theme-documentation-basics.fr.md @@ -259,6 +259,8 @@ Please open the code block below to view the complete sample configuration :(far pre = "" # you can add extra information after the name (HTML format is supported), such as icons post = "" + # whether to use typeit animation for title name + typeit = false # Footer config [params.footer] diff --git a/exampleSite/content/posts/theme-documentation-basics.zh-cn.md b/exampleSite/content/posts/theme-documentation-basics.zh-cn.md index a280d9df5..54ed1a420 100644 --- a/exampleSite/content/posts/theme-documentation-basics.zh-cn.md +++ b/exampleSite/content/posts/theme-documentation-basics.zh-cn.md @@ -257,6 +257,8 @@ hugo pre = "" # 你可以在名称 (允许 HTML 格式) 之后添加其他信息, 例如图标 post = "" + # 是否为副标题显示打字机动画 + typeit = false # 页面底部信息配置 [params.footer] diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 7cd6c3e10..51a97c6cf 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -10,7 +10,13 @@ {{- with .pre -}} {{ . | safeHTML }} {{- end -}} + {{- if .typeit -}} + {{- $id := dict "content" .name "scratch" $.Scratch | partial "function/id.html" -}} + + {{- dict $id (slice $id) | dict "typeitMap" | merge ($.Scratch.Get "this") | $.Scratch.Set "this" -}} + {{- else -}} {{- .name -}} + {{- end -}} {{- with .post -}} {{ . | safeHTML }} {{- end -}} @@ -88,7 +94,13 @@ {{- with .pre -}} {{ . | safeHTML }} {{- end -}} + {{- if .typeit -}} + {{- $id := dict "content" .name "scratch" $.Scratch | partial "function/id.html" -}} + + {{- dict $id (slice $id) | dict "typeitMap" | merge ($.Scratch.Get "this") | $.Scratch.Set "this" -}} + {{- else -}} {{- .name -}} + {{- end -}} {{- with .post -}} {{ . | safeHTML }} {{- end -}} From e4c71edddf1b22fa2cff897fb5f8a833106fcc82 Mon Sep 17 00:00:00 2001 From: Dillon Date: Mon, 4 May 2020 13:20:01 +0800 Subject: [PATCH 03/11] feat(typeit): add some config for TypeIt (#314) --- assets/css/_core/_layout.scss | 5 +- assets/css/_partial/_footer.scss | 4 +- assets/js/theme.min.js | 2 +- assets/js/theme.min.js.map | 2 +- assets/lib/VERSION | 2 +- assets/lib/typeit/typeit.min.js | 6 +- exampleSite/config.toml | 20 ++++++- .../posts/theme-documentation-basics.en.md | 18 +++++- .../posts/theme-documentation-basics.fr.md | 18 +++++- .../posts/theme-documentation-basics.zh-cn.md | 20 +++++-- layouts/partials/assets.html | 36 +++++------- layouts/partials/header.html | 4 +- ...s_788c4a23da05f3aa3e03b28055a2e5f9.content | 2 +- ...s_84a735b886b24531b6e80c5fb2060510.content | 2 +- ...s_d40178ffcb058d725849178b0a7a43cc.content | 2 +- src/js/theme.js | 57 +++++++++++-------- 16 files changed, 126 insertions(+), 74 deletions(-) diff --git a/assets/css/_core/_layout.scss b/assets/css/_core/_layout.scss index d2e92f76e..154f3a6bd 100644 --- a/assets/css/_core/_layout.scss +++ b/assets/css/_core/_layout.scss @@ -2,15 +2,14 @@ .wrapper { display: flex; flex-direction: column; - min-height: 97.5vh; + min-height: 100vh; width: 100%; main { flex: 1 0 auto; .container { - padding-left: 1rem; - padding-right: 1rem; + padding: 0 1rem; } } } diff --git a/assets/css/_partial/_footer.scss b/assets/css/_partial/_footer.scss index 29d783c8b..21a89e8ca 100644 --- a/assets/css/_partial/_footer.scss +++ b/assets/css/_partial/_footer.scss @@ -2,8 +2,8 @@ footer { height: 2rem; width: 100%; text-align: center; - line-height: 1.5rem; - padding-top: 2rem; + line-height: 1.25rem; + padding: 1rem 0; .footer-container { font-size: .875rem; diff --git a/assets/js/theme.min.js b/assets/js/theme.min.js index d9383f5fd..dd88714e7 100644 --- a/assets/js/theme.min.js +++ b/assets/js/theme.min.js @@ -1,3 +1,3 @@ -"use strict";function _objectDestructuringEmpty(a){if(null==a)throw new TypeError("Cannot destructure undefined")}function _createForOfIteratorHelper(a){if("undefined"==typeof Symbol||null==a[Symbol.iterator]){if(Array.isArray(a)||(a=_unsupportedIterableToArray(a))){var b=0,c=function(){};return{s:c,n:function n(){return b>=a.length?{done:!0}:{done:!1,value:a[b++]}},e:function e(a){throw a},f:c}}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 d,e,f=!0,g=!1;return{s:function s(){d=a[Symbol.iterator]()},n:function n(){var a=d.next();return f=a.done,a},e:function e(a){g=!0,e=a},f:function f(){try{f||null==d.return||d.return()}finally{if(g)throw e}}}}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_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(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(c):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _iterableToArray(a){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(a))return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c$1")),j=j.replace(new RegExp("(".concat(a,")"),"gi"),"<".concat(b.highlightTag,">$1"))}),d[h]={uri:h,title:i,date:g.date,context:j}}}),Object.values(d).slice(0,b.maxResultLength)};a._index?e(f()):fetch(b.lunrIndexURL).then(function(a){return a.json()}).then(function(c){var d={};a._index=lunr(function(){var a=this;b.lunrLanguageCode&&this.use(lunr[b.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"],c.forEach(function(b){d[b.objectID]=b,a.add(b)})}),a._indexData=d,e(f())}).catch(function(a){console.error(a),e([])})}else"algolia"===b.type&&(a._algoliaIndex=a._algoliaIndex||algoliasearch(b.algoliaAppID,b.algoliaSearchKey).initIndex(b.algoliaIndex),a._algoliaIndex.search(c,{offset:0,length:8*b.maxResultLength,attributesToHighlight:["title"],attributesToSnippet:["content:".concat(b.snippetLength)],highlightPreTag:"<".concat(b.highlightTag,">"),highlightPostTag:"")}).then(function(a){var c=a.hits,d={};c.forEach(function(a){var b=a.uri,c=a.date,e=a._highlightResult.title,f=a._snippetResult.content;d[b]&&d[b].context.length>f.value||(d[b]={uri:b,title:e.value,date:c,context:f.value})}),e(Object.values(d).slice(0,b.maxResultLength))}).catch(function(a){console.error(a),e([])}))},templates:{suggestion:function suggestion(a){var b=a.title,c=a.date,d=a.context;return"
".concat(b,"").concat(c,"
").concat(d,"
")},empty:function empty(a){var c=a.query;return"
".concat(b.noResultsFound,": \"").concat(c,"\"
")},footer:function footer(a){_objectDestructuringEmpty(a);var c="algolia"===b.type?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"},d=c.searchType,e=c.icon,f=c.href;return"")}}});e.on("autocomplete:selected",function(a,b){window.location.assign(b.uri)}),c?a._searchMobile=e:a._searchDesktop=e};if(b.lunrSegmentitURL&&!document.getElementById("lunr-segmentit")){var k=document.createElement("script");k.id="lunr-segmentit",k.type="text/javascript",k.src=b.lunrSegmentitURL,k.async=!0,k.readyState?k.onreadystatechange=function(){("loaded"==k.readyState||"complete"==k.readyState)&&(k.onreadystatechange=null,j())}:k.onload=function(){j()},document.body.appendChild(k)}else j()}}},{key:"initDetails",value:function initDetails(){this.util.forEach(document.getElementsByClassName("details"),function(a){var b=a.getElementsByClassName("details-summary")[0];b.addEventListener("click",function(){a.classList.toggle("open")},!1)})}},{key:"initLightGallery",value:function initLightGallery(){this.config.lightGallery&&lightGallery(document.getElementById("content"),this.config.lightGallery)}},{key:"initHighlight",value:function initHighlight(){var a=this;this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function(a){var b=document.createElement("div");b.className=a.className;var c=document.createElement("table");b.appendChild(c);var d=document.createElement("tbody");c.appendChild(d);var e=document.createElement("tr");d.appendChild(e);var f=document.createElement("td");e.appendChild(f),a.parentElement.replaceChild(b,a),f.appendChild(a)}),this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function(b){var c=b.querySelectorAll("pre.chroma > code");if(c.length){var d=c[c.length-1],e=document.createElement("div");e.className="code-header "+d.className.toLowerCase();var f=document.createElement("span");f.classList.add("code-title"),f.insertAdjacentHTML("afterbegin",""),f.addEventListener("click",function(){b.classList.toggle("open")},!1),e.appendChild(f);var g=document.createElement("span");g.insertAdjacentHTML("afterbegin",""),g.classList.add("ellipses"),g.addEventListener("click",function(){b.classList.add("open")},!1),e.appendChild(g);var h=document.createElement("span");h.insertAdjacentHTML("afterbegin",""),h.classList.add("copy");var i=d.innerText;if((0>a.config.code.maxShownLines||i.split("\n").length=a;a++)this.util.forEach(document.querySelectorAll(".single .content > h"+a),function(a){a.classList.add("headerLink"),a.insertAdjacentHTML("afterbegin",""))})}},{key:"initToc",value:function initToc(){var a=this,b=document.getElementById("TableOfContents");if(null!==b)if(this.util.isTocStatic()){var o=document.getElementById("toc-content-static");b.parentElement!==o&&(b.parentElement.removeChild(b),o.appendChild(b)),this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var p=document.getElementById("toc-content-auto");b.parentElement!==p&&(b.parentElement.removeChild(b),p.appendChild(b));var c=document.getElementById("toc-auto"),d=document.getElementsByClassName("page")[0],e=d.getBoundingClientRect();c.style.left="".concat(e.left+e.width+20,"px"),c.style.maxWidth="".concat(d.getBoundingClientRect().left-20,"px"),c.style.visibility="visible";var f=b.querySelectorAll("a:first-child"),g=b.getElementsByTagName("li"),h=document.getElementsByClassName("headerLink"),j="normal"!==this.config.headerMode.desktop,k=document.getElementById("header-desktop").offsetHeight,l=20+(j?k:0),m=c.offsetTop,n=m-l+(j?0:k);this._tocOnScroll=this._tocOnScroll||function(){var d=document.getElementById("post-footer").offsetTop,e=d-c.getBoundingClientRect().height,o=e-l+(j?0:k);a.newScrollTopo?(c.style.position="absolute",c.style.top="".concat(e,"px")):(c.style.position="fixed",c.style.top="".concat(l,"px")),a.util.forEach(f,function(a){a.classList.remove("active")}),a.util.forEach(g,function(a){a.classList.remove("has-active")});for(var p=20+(j?k:0),q=h.length-1,r=0;rp||s<=p&&t>p){q=r;break}}if(-1!==q){f[q].classList.add("active");for(var u=f[q].parentElement;u!==b;)u.classList.add("has-active"),u=u.parentElement.parentElement}},this._tocOnScroll(),this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initMath",value:function initMath(){this.config.math&&renderMathInElement(document.body,this.config.math)}},{key:"initMermaid",value:function initMermaid(){var a=this,b=document.getElementsByClassName("mermaid");b.length&&(mermaid.initialize({startOnLoad:!1,theme:"null"}),this.util.forEach(b,function(b){mermaid.mermaidAPI.render("svg-"+b.id,a.data[b.id],function(a){b.insertAdjacentHTML("afterbegin",a)},b)}))}},{key:"initEcharts",value:function initEcharts(){var a=this;this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){a._echartsArr=a._echartsArr||[];for(var b=0;bd?(b.classList.remove("fadeInDown"),a.util.animateCSS(b,["fadeOutUp","faster"],!0)):e<-d&&(b.classList.remove("fadeOutUp"),a.util.animateCSS(b,["fadeInDown","faster"],!0))}),a.newScrollTop>d?e>d?(c.classList.remove("fadeIn"),a.util.animateCSS(c,["fadeOut","faster"],!0)):e<-d&&(c.style.display="block",c.classList.remove("fadeOut"),a.util.animateCSS(c,["fadeIn","faster"],!0)):c.style.display="none";var f,g=_createForOfIteratorHelper(a.scrollEventSet);try{for(g.s();!(f=g.n()).done;){var h=f.value;h()}}catch(a){g.e(a)}finally{g.f()}a.oldScrollTop=a.newScrollTop},!1)}},{key:"onResize",value:function onResize(){var a=this;window.addEventListener("resize",function(){a._resizeTimeout||(a._resizeTimeout=window.setTimeout(function(){a._resizeTimeout=null;var b,c=_createForOfIteratorHelper(a.resizeEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}a.initToc(),a.initMermaid(),a.initSearch()},100))},!1)}},{key:"onClickMask",value:function onClickMask(){var a=this;document.getElementById("mask").addEventListener("click",function(){var b,c=_createForOfIteratorHelper(a.clickMaskEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}document.body.classList.remove("blur")},!1)}},{key:"init",value:function init(){this.initSVGIcon(),this.initTwemoji(),this.initMenuMobile(),this.initSwitchTheme(),this.initSearch(),this.initDetails(),this.initLightGallery(),this.initHighlight(),this.initTable(),this.initHeaderLink(),this.initToc(),this.initComment(),this.initSmoothScroll(),this.initMath(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initMapbox(),this.onScroll(),this.onResize(),this.onClickMask()}}]),a}(),themeInit=function(){var a=new Theme;a.init()};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",themeInit,!1):themeInit(); +"use strict";function _objectDestructuringEmpty(a){if(null==a)throw new TypeError("Cannot destructure undefined")}function _createForOfIteratorHelper(a){if("undefined"==typeof Symbol||null==a[Symbol.iterator]){if(Array.isArray(a)||(a=_unsupportedIterableToArray(a))){var b=0,c=function(){};return{s:c,n:function n(){return b>=a.length?{done:!0}:{done:!1,value:a[b++]}},e:function e(a){throw a},f:c}}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 d,e,f=!0,g=!1;return{s:function s(){d=a[Symbol.iterator]()},n:function n(){var a=d.next();return f=a.done,a},e:function e(a){g=!0,e=a},f:function f(){try{f||null==d.return||d.return()}finally{if(g)throw e}}}}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_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(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(c):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _iterableToArray(a){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(a))return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c$1")),k=k.replace(new RegExp("(".concat(a,")"),"gi"),"<".concat(f,">$1"))}),b[i]={uri:i,title:j,date:h.date,context:k}}}),Object.values(b).slice(0,d)};a._index?h(i()):fetch(b.lunrIndexURL).then(function(a){return a.json()}).then(function(c){var d={};a._index=lunr(function(){var a=this;b.lunrLanguageCode&&this.use(lunr[b.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"],c.forEach(function(b){d[b.objectID]=b,a.add(b)})}),a._indexData=d,h(i())}).catch(function(a){console.error(a),h([])})}else"algolia"===b.type&&(a._algoliaIndex=a._algoliaIndex||algoliasearch(b.algoliaAppID,b.algoliaSearchKey).initIndex(b.algoliaIndex),a._algoliaIndex.search(c,{offset:0,length:8*d,attributesToHighlight:["title"],attributesToSnippet:["content:".concat(e)],highlightPreTag:"<".concat(f,">"),highlightPostTag:"")}).then(function(a){var b=a.hits,c={};b.forEach(function(a){var b=a.uri,d=a.date,e=a._highlightResult.title,f=a._snippetResult.content;c[b]&&c[b].context.length>f.value||(c[b]={uri:b,title:e.value,date:d,context:f.value})}),h(Object.values(c).slice(0,d))}).catch(function(a){console.error(a),h([])}))},templates:{suggestion:function suggestion(a){var b=a.title,c=a.date,d=a.context;return"
".concat(b,"").concat(c,"
").concat(d,"
")},empty:function empty(a){var c=a.query;return"
".concat(b.noResultsFound,": \"").concat(c,"\"
")},footer:function footer(a){_objectDestructuringEmpty(a);var c="algolia"===b.type?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"},d=c.searchType,e=c.icon,f=c.href;return"")}}});h.on("autocomplete:selected",function(a,b){window.location.assign(b.uri)}),c?a._searchMobile=h:a._searchDesktop=h};if(b.lunrSegmentitURL&&!document.getElementById("lunr-segmentit")){var n=document.createElement("script");n.id="lunr-segmentit",n.type="text/javascript",n.src=b.lunrSegmentitURL,n.async=!0,n.readyState?n.onreadystatechange=function(){("loaded"==n.readyState||"complete"==n.readyState)&&(n.onreadystatechange=null,m())}:n.onload=function(){m()},document.body.appendChild(n)}else m()}}},{key:"initDetails",value:function initDetails(){this.util.forEach(document.getElementsByClassName("details"),function(a){var b=a.getElementsByClassName("details-summary")[0];b.addEventListener("click",function(){a.classList.toggle("open")},!1)})}},{key:"initLightGallery",value:function initLightGallery(){this.config.lightGallery&&lightGallery(document.getElementById("content"),this.config.lightGallery)}},{key:"initHighlight",value:function initHighlight(){var a=this;this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function(a){var b=document.createElement("div");b.className=a.className;var c=document.createElement("table");b.appendChild(c);var d=document.createElement("tbody");c.appendChild(d);var e=document.createElement("tr");d.appendChild(e);var f=document.createElement("td");e.appendChild(f),a.parentElement.replaceChild(b,a),f.appendChild(a)}),this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function(b){var c=b.querySelectorAll("pre.chroma > code");if(c.length){var d=c[c.length-1],e=document.createElement("div");e.className="code-header "+d.className.toLowerCase();var f=document.createElement("span");f.classList.add("code-title"),f.insertAdjacentHTML("afterbegin",""),f.addEventListener("click",function(){b.classList.toggle("open")},!1),e.appendChild(f);var g=document.createElement("span");g.insertAdjacentHTML("afterbegin",""),g.classList.add("ellipses"),g.addEventListener("click",function(){b.classList.add("open")},!1),e.appendChild(g);var h=document.createElement("span");h.insertAdjacentHTML("afterbegin",""),h.classList.add("copy");var i=d.innerText;if((0>a.config.code.maxShownLines||i.split("\n").length=a;a++)this.util.forEach(document.querySelectorAll(".single .content > h"+a),function(a){a.classList.add("headerLink"),a.insertAdjacentHTML("afterbegin",""))})}},{key:"initToc",value:function initToc(){var a=this,b=document.getElementById("TableOfContents");if(null!==b)if(this.util.isTocStatic()){var o=document.getElementById("toc-content-static");b.parentElement!==o&&(b.parentElement.removeChild(b),o.appendChild(b)),this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var p=document.getElementById("toc-content-auto");b.parentElement!==p&&(b.parentElement.removeChild(b),p.appendChild(b));var c=document.getElementById("toc-auto"),d=document.getElementsByClassName("page")[0],e=d.getBoundingClientRect();c.style.left="".concat(e.left+e.width+20,"px"),c.style.maxWidth="".concat(d.getBoundingClientRect().left-20,"px"),c.style.visibility="visible";var f=b.querySelectorAll("a:first-child"),g=b.getElementsByTagName("li"),h=document.getElementsByClassName("headerLink"),j="normal"!==this.config.headerMode.desktop,k=document.getElementById("header-desktop").offsetHeight,l=20+(j?k:0),m=c.offsetTop,n=m-l+(j?0:k);this._tocOnScroll=this._tocOnScroll||function(){var d=document.getElementById("post-footer").offsetTop,e=d-c.getBoundingClientRect().height,o=e-l+(j?0:k);a.newScrollTopo?(c.style.position="absolute",c.style.top="".concat(e,"px")):(c.style.position="fixed",c.style.top="".concat(l,"px")),a.util.forEach(f,function(a){a.classList.remove("active")}),a.util.forEach(g,function(a){a.classList.remove("has-active")});for(var p=20+(j?k:0),q=h.length-1,r=0;rp||s<=p&&t>p){q=r;break}}if(-1!==q){f[q].classList.add("active");for(var u=f[q].parentElement;u!==b;)u.classList.add("has-active"),u=u.parentElement.parentElement}},this._tocOnScroll(),this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initMath",value:function initMath(){this.config.math&&renderMathInElement(document.body,this.config.math)}},{key:"initMermaid",value:function initMermaid(){var a=this,b=document.getElementsByClassName("mermaid");b.length&&(mermaid.initialize({startOnLoad:!1,theme:"null"}),this.util.forEach(b,function(b){mermaid.mermaidAPI.render("svg-"+b.id,a.data[b.id],function(a){b.insertAdjacentHTML("afterbegin",a)},b)}))}},{key:"initEcharts",value:function initEcharts(){var a=this;this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){a._echartsArr=a._echartsArr||[];for(var b=0;bd?(b.classList.remove("fadeInDown"),a.util.animateCSS(b,["fadeOutUp","faster"],!0)):e<-d&&(b.classList.remove("fadeOutUp"),a.util.animateCSS(b,["fadeInDown","faster"],!0))}),a.newScrollTop>d?e>d?(c.classList.remove("fadeIn"),a.util.animateCSS(c,["fadeOut","faster"],!0)):e<-d&&(c.style.display="block",c.classList.remove("fadeOut"),a.util.animateCSS(c,["fadeIn","faster"],!0)):c.style.display="none";var f,g=_createForOfIteratorHelper(a.scrollEventSet);try{for(g.s();!(f=g.n()).done;){var h=f.value;h()}}catch(a){g.e(a)}finally{g.f()}a.oldScrollTop=a.newScrollTop},!1)}},{key:"onResize",value:function onResize(){var a=this;window.addEventListener("resize",function(){a._resizeTimeout||(a._resizeTimeout=window.setTimeout(function(){a._resizeTimeout=null;var b,c=_createForOfIteratorHelper(a.resizeEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}a.initToc(),a.initMermaid(),a.initSearch()},100))},!1)}},{key:"onClickMask",value:function onClickMask(){var a=this;document.getElementById("mask").addEventListener("click",function(){var b,c=_createForOfIteratorHelper(a.clickMaskEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}document.body.classList.remove("blur")},!1)}},{key:"init",value:function init(){this.initSVGIcon(),this.initTwemoji(),this.initMenuMobile(),this.initSwitchTheme(),this.initSearch(),this.initDetails(),this.initLightGallery(),this.initHighlight(),this.initTable(),this.initHeaderLink(),this.initToc(),this.initComment(),this.initSmoothScroll(),this.initMath(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initMapbox(),this.onScroll(),this.onResize(),this.onClickMask()}}]),a}(),themeInit=function(){var a=new Theme;a.init()};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",themeInit,!1):themeInit(); //# 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 31abb27f1..728650600 100644 --- a/assets/js/theme.min.js.map +++ b/assets/js/theme.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/js/theme.js"],"names":[],"mappings":"ilEAAM,CAAA,I,2HACM,C,CAAU,C,CAAS,CACvB,CAAQ,CAAG,CAAQ,EAAI,EADA,CAEvB,IAAK,GAAI,CAAA,CAAC,CAAG,CAAb,CAAgB,CAAC,CAAG,CAAQ,CAAC,MAA7B,CAAqC,CAAC,EAAtC,CAA0C,CAAO,CAAC,CAAQ,CAAC,CAAD,CAAT,CACpD,C,mDAEc,CACX,MAAQ,CAAA,QAAQ,CAAC,eAAT,EAA4B,QAAQ,CAAC,eAAT,CAAyB,SAAtD,EAAoE,QAAQ,CAAC,IAAT,CAAc,SAC5F,C,2CAEU,CACP,MAAO,CAAA,MAAM,CAAC,UAAP,CAAkB,oCAAlB,EAAwD,OAClE,C,iDAEa,CACV,MAAO,CAAA,MAAM,CAAC,UAAP,CAAkB,oCAAlB,EAAwD,OAClE,C,8CAEU,C,CAAS,C,CAAW,C,CAAU,C,CAAU,OAC1C,KAAK,CAAC,OAAN,CAAc,CAAd,CAD0C,GAChB,CAAS,CAAG,CAAC,CAAD,CADI,EAE/C,GAAA,CAAO,CAAC,SAAR,EAAkB,GAAlB,UAAsB,UAAtB,4BAAqC,CAArC,GAF+C,CAG/C,GAAM,CAAA,CAAO,CAAG,UAAM,OAClB,GAAA,CAAO,CAAC,SAAR,EAAkB,MAAlB,UAAyB,UAAzB,4BAAwC,CAAxC,GADkB,CAElB,CAAO,CAAC,mBAAR,CAA4B,cAA5B,CAA4C,CAA5C,CAFkB,CAGM,UAApB,QAAO,CAAA,CAHO,EAGkB,CAAQ,EAC/C,CAJD,CAKK,CAR0C,EAQhC,CAAO,CAAC,gBAAR,CAAyB,cAAzB,CAAyC,CAAzC,IAClB,C,SAGC,K,yBACF,YAAc,yBACV,KAAK,MAAL,CAAc,MAAM,CAAC,MADX,CAEV,KAAK,IAAL,CAAY,KAAK,MAAL,CAAY,IAFd,CAGV,KAAK,MAAL,CAAsD,MAAxC,GAAA,QAAQ,CAAC,IAAT,CAAc,YAAd,CAA2B,OAA3B,CAHJ,CAIV,KAAK,IAAL,CAAY,GAAI,CAAA,IAJN,CAKV,KAAK,YAAL,CAAoB,KAAK,IAAL,CAAU,YAAV,EALV,CAMV,KAAK,YAAL,CAAoB,KAAK,YANf,CAOV,KAAK,cAAL,CAAsB,GAAI,CAAA,GAPhB,CAQV,KAAK,cAAL,CAAsB,GAAI,CAAA,GARhB,CASV,KAAK,mBAAL,CAA2B,GAAI,CAAA,GATrB,CAUV,KAAK,iBAAL,CAAyB,GAAI,CAAA,GAVnB,CAWN,eAXM,EAWW,eAAe,EACvC,C,sEAEa,CACV,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,gBAAT,CAA0B,gBAA1B,CAAlB,CAA+D,SAAA,CAAK,CAAI,CACpE,KAAK,CAAC,CAAK,CAAC,YAAN,CAAmB,cAAnB,CAAD,CAAL,CACK,IADL,CACU,SAAA,CAAQ,QAAI,CAAA,CAAQ,CAAC,IAAT,EAAJ,CADlB,EAEK,IAFL,CAEU,SAAA,CAAG,CAAI,CACT,GAAM,CAAA,CAAK,CAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAAd,CACA,CAAK,CAAC,kBAAN,CAAyB,YAAzB,CAAuC,CAAvC,CAFS,CAGT,GAAM,CAAA,CAAI,CAAG,CAAK,CAAC,UAAnB,CACA,CAAI,CAAC,YAAL,CAAkB,cAAlB,CAAkC,CAAK,CAAC,YAAN,CAAmB,cAAnB,CAAlC,CAJS,CAKT,CAAI,CAAC,SAAL,CAAe,GAAf,CAAmB,MAAnB,CALS,CAMT,GAAM,CAAA,CAAc,CAAG,CAAI,CAAC,oBAAL,CAA0B,OAA1B,CAAvB,CACI,CAAc,CAAC,MAPV,EAOkB,CAAI,CAAC,WAAL,CAAiB,CAAc,CAAC,CAAD,CAA/B,CAPlB,CAQT,CAAK,CAAC,aAAN,CAAoB,YAApB,CAAiC,CAAjC,CAAuC,CAAvC,CACH,CAXL,EAYK,KAZL,CAYW,SAAA,CAAG,CAAI,CAAE,OAAO,CAAC,KAAR,CAAc,CAAd,CAAqB,CAZzC,CAaH,CAdD,CAeH,C,iDAEa,CACN,KAAK,MAAL,CAAY,OADN,EACe,OAAO,CAAC,KAAR,CAAc,QAAQ,CAAC,IAAvB,CAC5B,C,uDAEgB,IACP,CAAA,CAAiB,CAAG,QAAQ,CAAC,cAAT,CAAwB,oBAAxB,CADb,CAEP,CAAW,CAAG,QAAQ,CAAC,cAAT,CAAwB,aAAxB,CAFP,CAGb,CAAiB,CAAC,gBAAlB,CAAmC,OAAnC,CAA4C,UAAM,CAC9C,QAAQ,CAAC,IAAT,CAAc,SAAd,CAAwB,MAAxB,CAA+B,MAA/B,CAD8C,CAE9C,CAAiB,CAAC,SAAlB,CAA4B,MAA5B,CAAmC,QAAnC,CAF8C,CAG9C,CAAW,CAAC,SAAZ,CAAsB,MAAtB,CAA6B,QAA7B,CACH,CAJD,IAHa,CAQb,KAAK,sBAAL,CAA8B,KAAK,sBAAL,EAAgC,UAAM,CAChE,CAAiB,CAAC,SAAlB,CAA4B,MAA5B,CAAmC,QAAnC,CADgE,CAEhE,CAAW,CAAC,SAAZ,CAAsB,MAAtB,CAA6B,QAA7B,CACH,CAXY,CAYb,KAAK,iBAAL,CAAuB,GAAvB,CAA2B,KAAK,sBAAhC,CACH,C,yDAEiB,YACd,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,sBAAT,CAAgC,cAAhC,CAAlB,CAAmE,SAAA,CAAY,CAAI,CAC/E,CAAY,CAAC,gBAAb,CAA8B,OAA9B,CAAuC,UAAM,CACG,MAAxC,GAAA,QAAQ,CAAC,IAAT,CAAc,YAAd,CAA2B,OAA3B,CADqC,CACW,QAAQ,CAAC,IAAT,CAAc,YAAd,CAA2B,OAA3B,CAAoC,OAApC,CADX,CAEpC,QAAQ,CAAC,IAAT,CAAc,YAAd,CAA2B,OAA3B,CAAoC,MAApC,CAFoC,CAGzC,CAAI,CAAC,MAAL,CAAc,CAAC,CAAI,CAAC,MAHqB,CAIzC,MAAM,CAAC,YAAP,EAAuB,YAAY,CAAC,OAAb,CAAqB,OAArB,CAA8B,CAAI,CAAC,MAAL,CAAc,MAAd,CAAuB,OAArD,CAJkB,oCAKvB,CAAI,CAAC,mBALkB,MAKzC,+BAAS,CAAA,CAAT,SAA4C,CAAK,EAAjD,CALyC,+BAM5C,CAND,IAOH,CARD,CASH,C,+CAEY,YACH,CAAY,CAAG,KAAK,MAAL,CAAY,MADxB,CAEH,CAAQ,CAAG,KAAK,IAAL,CAAU,QAAV,EAFR,CAGT,KAAI,CAAC,CAAD,EAAiB,CAAQ,EAAI,KAAK,iBAAlC,EAAuD,CAAC,CAAD,EAAa,KAAK,kBAA7E,GAEK,CAAY,CAAC,eAFlB,GAEmC,CAAY,CAAC,eAAb,CAA+B,EAFlE,EAGK,CAAY,CAAC,aAHlB,GAGiC,CAAY,CAAC,aAAb,CAA6B,EAH9D,EAIK,CAAY,CAAC,YAJlB,GAIgC,CAAY,CAAC,YAAb,CAA4B,IAJ5D,KAMM,CAAA,CAAM,CAAG,CAAQ,CAAG,QAAH,CAAc,SANrC,CAOM,CAAO,CAAG,QAAQ,CAAC,cAAT,kBAAkC,CAAlC,EAPhB,CAQM,CAAY,CAAG,QAAQ,CAAC,cAAT,wBAAwC,CAAxC,EARrB,CASM,CAAa,CAAG,QAAQ,CAAC,cAAT,yBAAyC,CAAzC,EATtB,CAUM,CAAc,CAAG,QAAQ,CAAC,cAAT,0BAA0C,CAA1C,EAVvB,CAWM,CAAY,CAAG,QAAQ,CAAC,cAAT,wBAAwC,CAAxC,EAXrB,CAYI,CAZJ,EAaI,KAAK,iBAAL,GAbJ,CAcI,CAAY,CAAC,gBAAb,CAA8B,OAA9B,CAAuC,UAAM,CACzC,QAAQ,CAAC,IAAT,CAAc,SAAd,CAAwB,GAAxB,CAA4B,MAA5B,CADyC,CAEzC,CAAO,CAAC,SAAR,CAAkB,GAAlB,CAAsB,MAAtB,CACH,CAHD,IAdJ,CAkBI,QAAQ,CAAC,cAAT,CAAwB,sBAAxB,EAAgD,gBAAhD,CAAiE,OAAjE,CAA0E,UAAM,CAC5E,CAAO,CAAC,SAAR,CAAkB,MAAlB,CAAyB,MAAzB,CAD4E,CAE5E,QAAQ,CAAC,IAAT,CAAc,SAAd,CAAwB,MAAxB,CAA+B,MAA/B,CAF4E,CAG5E,QAAQ,CAAC,cAAT,CAAwB,oBAAxB,EAA8C,SAA9C,CAAwD,MAAxD,CAA+D,QAA/D,CAH4E,CAI5E,QAAQ,CAAC,cAAT,CAAwB,aAAxB,EAAuC,SAAvC,CAAiD,MAAjD,CAAwD,QAAxD,CAJ4E,CAK5E,CAAc,CAAC,KAAf,CAAqB,OAArB,CAA+B,MAL6C,CAM5E,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,MAN+C,CAO5E,CAAI,CAAC,aAAL,EAAsB,CAAI,CAAC,aAAL,CAAmB,YAAnB,CAAgC,MAAhC,CAAuC,EAAvC,CACzB,CARD,IAlBJ,CA2BI,CAAY,CAAC,gBAAb,CAA8B,OAA9B,CAAuC,UAAM,CACzC,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,MADY,CAEzC,CAAI,CAAC,aAAL,EAAsB,CAAI,CAAC,aAAL,CAAmB,YAAnB,CAAgC,MAAhC,CAAuC,EAAvC,CACzB,CAHD,IA3BJ,CA+BI,KAAK,wBAAL,CAAgC,KAAK,wBAAL,EAAkC,UAAM,CACpE,CAAO,CAAC,SAAR,CAAkB,MAAlB,CAAyB,MAAzB,CADoE,CAEpE,CAAc,CAAC,KAAf,CAAqB,OAArB,CAA+B,MAFqC,CAGpE,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,MAHuC,CAIpE,CAAI,CAAC,aAAL,EAAsB,CAAI,CAAC,aAAL,CAAmB,YAAnB,CAAgC,MAAhC,CAAuC,EAAvC,CACzB,CApCL,CAqCI,KAAK,iBAAL,CAAuB,GAAvB,CAA2B,KAAK,wBAAhC,CArCJ,GAuCI,KAAK,kBAAL,GAvCJ,CAwCI,CAAa,CAAC,gBAAd,CAA+B,OAA/B,CAAwC,UAAM,CAC1C,QAAQ,CAAC,IAAT,CAAc,SAAd,CAAwB,GAAxB,CAA4B,MAA5B,CAD0C,CAE1C,CAAO,CAAC,SAAR,CAAkB,GAAlB,CAAsB,MAAtB,CAF0C,CAG1C,CAAY,CAAC,KAAb,EACH,CAJD,IAxCJ,CA6CI,CAAY,CAAC,gBAAb,CAA8B,OAA9B,CAAuC,UAAM,CACzC,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,MADY,CAEzC,CAAI,CAAC,cAAL,EAAuB,CAAI,CAAC,cAAL,CAAoB,YAApB,CAAiC,MAAjC,CAAwC,EAAxC,CAC1B,CAHD,IA7CJ,CAiDI,KAAK,yBAAL,CAAiC,KAAK,yBAAL,EAAmC,UAAM,CACtE,CAAO,CAAC,SAAR,CAAkB,MAAlB,CAAyB,MAAzB,CADsE,CAEtE,CAAc,CAAC,KAAf,CAAqB,OAArB,CAA+B,MAFuC,CAGtE,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,MAHyC,CAItE,CAAI,CAAC,cAAL,EAAuB,CAAI,CAAC,cAAL,CAAoB,YAApB,CAAiC,MAAjC,CAAwC,EAAxC,CAC1B,CAtDL,CAuDI,KAAK,iBAAL,CAAuB,GAAvB,CAA2B,KAAK,yBAAhC,CAvDJ,EAyDA,CAAY,CAAC,gBAAb,CAA8B,OAA9B,CAAuC,UAAM,CACV,CAAY,CAAC,KAAb,CAAmB,OADT,CACd,EAAvB,GAAA,CAAY,CAAC,KADwB,CACmB,MADnB,CAEP,QACrC,CAHD,IAzDA,CA8DA,GAAM,CAAA,CAAc,CAAG,UAAM,CACzB,GAAM,CAAA,CAAU,CAAG,YAAY,yBAAkB,CAAlB,EAA4B,CACvD,IAAI,GADmD,CAEvD,UAAU,GAF6C,CAGvD,qBAAqB,4BAAsB,CAAtB,CAHkC,CAIvD,eAAe,GAJwC,CAKvD,UAAU,CAAE,CAAE,QAAQ,GAAV,CAL2C,CAMvD,KAAK,GANkD,CAA5B,CAO5B,CACC,IAAI,CAAE,QADP,CAEC,MAAM,CAAE,gBAAC,CAAD,CAAQ,CAAR,CAAqB,CACzB,CAAc,CAAC,KAAf,CAAqB,OAArB,CAA+B,QADN,CAEzB,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,MAFJ,CAGzB,GAAM,CAAA,CAAM,CAAG,SAAC,CAAD,CAAa,CACxB,CAAc,CAAC,KAAf,CAAqB,OAArB,CAA+B,MADP,CAExB,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,QAFL,CAGxB,CAAQ,CAAC,CAAD,CACX,CAJD,CAKA,GAA0B,MAAtB,GAAA,CAAY,CAAC,IAAjB,CAAkC,CAC9B,GAAM,CAAA,CAAM,CAAG,UAAM,CACb,IAAI,CAAC,YADQ,GACM,CAAK,CAAG,IAAI,CAAC,YAAL,CAAkB,CAAlB,CADd,EAEjB,GAAM,CAAA,CAAO,CAAG,EAAhB,CA8BA,MA7BA,CAAA,CAAI,CAAC,MAAL,CAAY,MAAZ,CAAmB,CAAnB,EAA0B,OAA1B,CAAkC,WAAsC,IAAnC,CAAA,CAAmC,GAAnC,GAAmC,CAAjB,CAAiB,GAA9B,SAA8B,CAAjB,QAAiB,CAC9D,CAAS,CAAG,CAAI,CAAC,UAAL,CAAgB,CAAhB,CADkD,CAE9D,CAF8D,CAE7B,CAF6B,CAE9D,GAF8D,CAEzD,CAFyD,CAE7B,CAF6B,CAEzD,KAFyD,CAEzC,CAFyC,CAE7B,CAF6B,CAElD,OAFkD,CAGpE,IAAI,CAAO,CAAC,CAAD,CAAX,EACA,GAAI,CAAA,CAAQ,CAAG,CAAf,CACA,MAAM,CAAC,MAAP,CAAc,CAAd,EAAwB,OAAxB,CAAgC,WAAiB,IAAd,CAAA,CAAc,GAAd,OAAc,CAC7C,GAAI,CAAJ,CAAa,CACT,GAAM,CAAA,CAAa,CAAG,CAAO,CAAC,QAAR,CAAiB,CAAjB,EAAoB,CAApB,CAAtB,CADS,CAEL,CAAa,CAAG,CAAhB,EAAyC,CAAb,GAAA,CAFvB,IAEuC,CAAQ,CAAG,CAFlD,CAGZ,CACJ,CALD,CAFA,CAQA,CAAQ,EAAI,CAAY,CAAC,aAAb,CAA6B,CARzC,CASe,CAAX,CAAA,CATJ,EAUI,CAAQ,EAAI,CAAO,CAAC,MAAR,CAAe,CAAf,CAAyB,EAAzB,EAA6B,WAA7B,CAAyC,GAAzC,EAAgD,CAVhE,CAWI,CAAO,CAAG,MAAQ,CAAO,CAAC,MAAR,CAAe,CAAf,CAAyB,CAAY,CAAC,aAAtC,CAXtB,EAaI,CAAO,CAAG,CAAO,CAAC,MAAR,CAAe,CAAf,CAAkB,CAAY,CAAC,aAA/B,CAbd,CAeA,MAAM,CAAC,IAAP,CAAY,CAAZ,EAAsB,OAAtB,CAA8B,SAAA,CAAG,CAAI,CACjC,CAAK,CAAG,CAAK,CAAC,OAAN,CAAc,GAAI,CAAA,MAAJ,YAAe,CAAf,MAAuB,IAAvB,CAAd,YAAgD,CAAY,CAAC,YAA7D,iBAAiF,CAAY,CAAC,YAA9F,MADyB,CAEjC,CAAO,CAAG,CAAO,CAAC,OAAR,CAAgB,GAAI,CAAA,MAAJ,YAAe,CAAf,MAAuB,IAAvB,CAAhB,YAAkD,CAAY,CAAC,YAA/D,iBAAmF,CAAY,CAAC,YAAhG,MACb,CAHD,CAfA,CAmBA,CAAO,CAAC,CAAD,CAAP,CAAe,CACX,IAAO,CADI,CAEX,MAAU,CAFC,CAGX,KAAS,CAAS,CAAC,IAHR,CAIX,QAAY,CAJD,CAnBf,CAyBH,CA5BD,CA6BA,CAAO,MAAM,CAAC,MAAP,CAAc,CAAd,EAAuB,KAAvB,CAA6B,CAA7B,CAAgC,CAAY,CAAC,eAA7C,CACV,CAjCD,CAkCK,CAAI,CAAC,MAnCoB,CA2DvB,CAAM,CAAC,CAAM,EAAP,CA3DiB,CAoC1B,KAAK,CAAC,CAAY,CAAC,YAAd,CAAL,CACK,IADL,CACU,SAAA,CAAQ,QAAI,CAAA,CAAQ,CAAC,IAAT,EAAJ,CADlB,EAEK,IAFL,CAEU,SAAA,CAAI,CAAI,CACV,GAAM,CAAA,CAAS,CAAG,EAAlB,CACA,CAAI,CAAC,MAAL,CAAc,IAAI,CAAC,UAAY,YACvB,CAAY,CAAC,gBADU,EACQ,KAAK,GAAL,CAAS,IAAI,CAAC,CAAY,CAAC,gBAAd,CAAb,CADR,CAE3B,KAAK,GAAL,CAAS,UAAT,CAF2B,CAG3B,KAAK,KAAL,CAAW,OAAX,CAAoB,CAAE,KAAK,CAAE,EAAT,CAApB,CAH2B,CAI3B,KAAK,KAAL,CAAW,MAAX,CAAmB,CAAE,KAAK,CAAE,EAAT,CAAnB,CAJ2B,CAK3B,KAAK,KAAL,CAAW,YAAX,CAAyB,CAAE,KAAK,CAAE,EAAT,CAAzB,CAL2B,CAM3B,KAAK,KAAL,CAAW,SAAX,CAAsB,CAAE,KAAK,CAAE,EAAT,CAAtB,CAN2B,CAO3B,KAAK,iBAAL,CAAyB,CAAC,UAAD,CAPE,CAQ3B,CAAI,CAAC,OAAL,CAAa,SAAC,CAAD,CAAY,CACrB,CAAS,CAAC,CAAM,CAAC,QAAR,CAAT,CAA6B,CADR,CAErB,CAAI,CAAC,GAAL,CAAS,CAAT,CACH,CAHD,CAIH,CAZiB,CAFR,CAeV,CAAI,CAAC,UAAL,CAAkB,CAfR,CAgBV,CAAM,CAAC,CAAM,EAAP,CACT,CAnBL,EAmBO,KAnBP,CAmBa,SAAA,CAAG,CAAI,CACZ,OAAO,CAAC,KAAR,CAAc,CAAd,CADY,CAEZ,CAAM,CAAC,EAAD,CACT,CAtBL,CAwBP,CA5DD,IA4DiC,SAAtB,GAAA,CAAY,CAAC,IA5DxB,GA6DI,CAAI,CAAC,aAAL,CAAqB,CAAI,CAAC,aAAL,EAAsB,aAAa,CAAC,CAAY,CAAC,YAAd,CAA4B,CAAY,CAAC,gBAAzC,CAAb,CAAwE,SAAxE,CAAkF,CAAY,CAAC,YAA/F,CA7D/C,CA8DI,CAAI,CAAC,aAAL,CACK,MADL,CACY,CADZ,CACmB,CACX,MAAM,CAAE,CADG,CAEX,MAAM,CAAiC,CAA/B,CAAA,CAAY,CAAC,eAFV,CAGX,qBAAqB,CAAE,CAAC,OAAD,CAHZ,CAIX,mBAAmB,CAAE,mBAAY,CAAY,CAAC,aAAzB,EAJV,CAKX,eAAe,YAAM,CAAY,CAAC,YAAnB,KALJ,CAMX,gBAAgB,aAAO,CAAY,CAAC,YAApB,KANL,CADnB,EASK,IATL,CASU,WAAc,IAAX,CAAA,CAAW,GAAX,IAAW,CACV,CAAO,CAAG,EADA,CAEhB,CAAI,CAAC,OAAL,CAAa,WAA6E,IAA1E,CAAA,CAA0E,GAA1E,GAA0E,CAArE,CAAqE,GAArE,IAAqE,CAA3C,CAA2C,GAA/D,gBAA+D,CAA3C,KAA2C,CAAhB,CAAgB,GAAlC,cAAkC,CAAhB,OAAgB,CAClF,CAAO,CAAC,CAAD,CAAP,EAAgB,CAAO,CAAC,CAAD,CAAP,CAAa,OAAb,CAAqB,MAArB,CAA8B,CAAO,CAAC,KAD4B,GAEtF,CAAO,CAAC,CAAD,CAAP,CAAe,CACX,GAAG,CAAE,CADM,CAEX,KAAK,CAAE,CAAK,CAAC,KAFF,CAGX,IAAI,CAAE,CAHK,CAIX,OAAO,CAAE,CAAO,CAAC,KAJN,CAFuE,CAQzF,CARD,CAFgB,CAWhB,CAAM,CAAC,MAAM,CAAC,MAAP,CAAc,CAAd,EAAuB,KAAvB,CAA6B,CAA7B,CAAgC,CAAY,CAAC,eAA7C,CAAD,CACT,CArBL,EAsBK,KAtBL,CAsBW,SAAA,CAAG,CAAI,CACV,OAAO,CAAC,KAAR,CAAc,CAAd,CADU,CAEV,CAAM,CAAC,EAAD,CACT,CAzBL,CA9DJ,CAyFH,CAnGF,CAoGC,SAAS,CAAE,CACP,UAAU,CAAE,0BAAG,CAAA,CAAH,GAAG,KAAH,CAAU,CAAV,GAAU,IAAV,CAAgB,CAAhB,GAAgB,OAAhB,uDAAqE,CAArE,mDAAkH,CAAlH,2DAAsK,CAAtK,WADL,CAEP,KAAK,CAAE,qBAAG,CAAA,CAAH,GAAG,KAAH,6CAA4C,CAAY,CAAC,cAAzD,6CAAwG,CAAxG,oBAFA,CAGP,MAAM,CAAE,kBAAQ,oCAC6C,SAAtB,GAAA,CAAY,CAAC,IAAb,CAAkC,CACjE,UAAU,CAAE,SADqD,CAEjE,IAAI,CAAE,wCAF2D,CAGjE,IAAI,CAAE,0BAH2D,CAAlC,CAI/B,CACA,UAAU,CAAE,SADZ,CAEA,IAAI,CAAE,EAFN,CAGA,IAAI,CAAE,qBAHN,CALQ,CACJ,CADI,GACJ,UADI,CACQ,CADR,GACQ,IADR,CACc,CADd,GACc,IADd,CAUZ,iEAAwD,CAAxD,2DAAyG,CAAzG,aAAiH,CAAjH,cAAyI,CAbtI,CApGZ,CAP4B,CAA/B,CA2HA,CAAU,CAAC,EAAX,CAAc,uBAAd,CAAuC,SAAC,CAAD,CAAQ,CAAR,CAAyC,CAC5E,MAAM,CAAC,QAAP,CAAgB,MAAhB,CAAuB,CAAU,CAAC,GAAlC,CACH,CAFD,CA5HyB,CA+HrB,CA/HqB,CA+HX,CAAI,CAAC,aAAL,CAAqB,CA/HV,CAgIpB,CAAI,CAAC,cAAL,CAAsB,CAC9B,CAjID,CAkIA,GAAI,CAAY,CAAC,gBAAb,EAAiC,CAAC,QAAQ,CAAC,cAAT,CAAwB,gBAAxB,CAAtC,CAAiF,CAC7E,GAAM,CAAA,CAAM,CAAG,QAAQ,CAAC,aAAT,CAAuB,QAAvB,CAAf,CACA,CAAM,CAAC,EAAP,CAAY,gBAFiE,CAG7E,CAAM,CAAC,IAAP,CAAc,iBAH+D,CAI7E,CAAM,CAAC,GAAP,CAAa,CAAY,CAAC,gBAJmD,CAK7E,CAAM,CAAC,KAAP,GAL6E,CAMzE,CAAM,CAAC,UANkE,CAOzE,CAAM,CAAC,kBAAP,CAA4B,UAAM,EACL,QAArB,EAAA,CAAM,CAAC,UAAP,EAAsD,UAArB,EAAA,CAAM,CAAC,UADd,IAE1B,CAAM,CAAC,kBAAP,CAA4B,IAFF,CAG1B,CAAc,EAHY,CAKjC,CAZwE,CAczE,CAAM,CAAC,MAAP,CAAgB,UAAM,CAClB,CAAc,EACjB,CAhBwE,CAkB7E,QAAQ,CAAC,IAAT,CAAc,WAAd,CAA0B,CAA1B,CACH,CAnBD,IAmBO,CAAA,CAAc,EAnNrB,CAoNH,C,iDAEa,CACV,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,sBAAT,CAAgC,SAAhC,CAAlB,CAA8D,SAAA,CAAQ,CAAI,CACtE,GAAM,CAAA,CAAQ,CAAG,CAAQ,CAAC,sBAAT,CAAgC,iBAAhC,EAAmD,CAAnD,CAAjB,CACA,CAAQ,CAAC,gBAAT,CAA0B,OAA1B,CAAmC,UAAM,CACrC,CAAQ,CAAC,SAAT,CAAmB,MAAnB,CAA0B,MAA1B,CACH,CAFD,IAGH,CALD,CAMH,C,2DAEkB,CACX,KAAK,MAAL,CAAY,YADD,EACe,YAAY,CAAC,QAAQ,CAAC,cAAT,CAAwB,SAAxB,CAAD,CAAqC,KAAK,MAAL,CAAY,YAAjD,CAC7C,C,qDAEe,YACZ,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,gBAAT,CAA0B,yBAA1B,CAAlB,CAAwE,SAAA,CAAU,CAAI,CAClF,GAAM,CAAA,CAAO,CAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAAhB,CACA,CAAO,CAAC,SAAR,CAAoB,CAAU,CAAC,SAFmD,CAGlF,GAAM,CAAA,CAAM,CAAG,QAAQ,CAAC,aAAT,CAAuB,OAAvB,CAAf,CACA,CAAO,CAAC,WAAR,CAAoB,CAApB,CAJkF,CAKlF,GAAM,CAAA,CAAM,CAAG,QAAQ,CAAC,aAAT,CAAuB,OAAvB,CAAf,CACA,CAAM,CAAC,WAAP,CAAmB,CAAnB,CANkF,CAOlF,GAAM,CAAA,CAAG,CAAG,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAAZ,CACA,CAAM,CAAC,WAAP,CAAmB,CAAnB,CARkF,CASlF,GAAM,CAAA,CAAG,CAAG,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAAZ,CACA,CAAG,CAAC,WAAJ,CAAgB,CAAhB,CAVkF,CAWlF,CAAU,CAAC,aAAX,CAAyB,YAAzB,CAAsC,CAAtC,CAA+C,CAA/C,CAXkF,CAYlF,CAAG,CAAC,WAAJ,CAAgB,CAAhB,CACH,CAbD,CADY,CAeZ,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,gBAAT,CAA0B,sBAA1B,CAAlB,CAAqE,SAAA,CAAO,CAAI,CAC5E,GAAM,CAAA,CAAa,CAAG,CAAO,CAAC,gBAAR,CAAyB,mBAAzB,CAAtB,CACA,GAAI,CAAa,CAAC,MAAlB,CAA0B,IAChB,CAAA,CAAK,CAAG,CAAa,CAAC,CAAa,CAAC,MAAd,CAAuB,CAAxB,CADL,CAEhB,CAAO,CAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAFM,CAGtB,CAAO,CAAC,SAAR,CAAoB,eAAiB,CAAK,CAAC,SAAN,CAAgB,WAAhB,EAHf,CAItB,GAAM,CAAA,CAAM,CAAG,QAAQ,CAAC,aAAT,CAAuB,MAAvB,CAAf,CACA,CAAM,CAAC,SAAP,CAAiB,GAAjB,CAAqB,YAArB,CALsB,CAMtB,CAAM,CAAC,kBAAP,CAA0B,YAA1B,CAAwC,oDAAxC,CANsB,CAOtB,CAAM,CAAC,gBAAP,CAAwB,OAAxB,CAAiC,UAAM,CACnC,CAAO,CAAC,SAAR,CAAkB,MAAlB,CAAyB,MAAzB,CACH,CAFD,IAPsB,CAUtB,CAAO,CAAC,WAAR,CAAoB,CAApB,CAVsB,CAWtB,GAAM,CAAA,CAAS,CAAG,QAAQ,CAAC,aAAT,CAAuB,MAAvB,CAAlB,CACA,CAAS,CAAC,kBAAV,CAA6B,YAA7B,CAA2C,2CAA3C,CAZsB,CAatB,CAAS,CAAC,SAAV,CAAoB,GAApB,CAAwB,UAAxB,CAbsB,CActB,CAAS,CAAC,gBAAV,CAA2B,OAA3B,CAAoC,UAAM,CACtC,CAAO,CAAC,SAAR,CAAkB,GAAlB,CAAsB,MAAtB,CACH,CAFD,IAdsB,CAiBtB,CAAO,CAAC,WAAR,CAAoB,CAApB,CAjBsB,CAkBtB,GAAM,CAAA,CAAK,CAAG,QAAQ,CAAC,aAAT,CAAuB,MAAvB,CAAd,CACA,CAAK,CAAC,kBAAN,CAAyB,YAAzB,CAAuC,qCAAvC,CAnBsB,CAoBtB,CAAK,CAAC,SAAN,CAAgB,GAAhB,CAAoB,MAApB,CApBsB,CAqBtB,GAAM,CAAA,CAAI,CAAG,CAAK,CAAC,SAAnB,CAEA,IADqC,CAAjC,CAAA,CAAI,CAAC,MAAL,CAAY,IAAZ,CAAiB,aAAjB,EAAsC,CAAI,CAAC,KAAL,CAAW,IAAX,EAAiB,MAAjB,CAA0B,CAAI,CAAC,MAAL,CAAY,IAAZ,CAAiB,aAAjB,CAAiC,CACrG,GADwG,CAAO,CAAC,SAAR,CAAkB,GAAlB,CAAsB,MAAtB,CACxG,CAAI,CAAI,CAAC,MAAL,CAAY,IAAZ,CAAiB,SAArB,CAAgC,CAC5B,CAAK,CAAC,YAAN,CAAmB,qBAAnB,CAA0C,CAA1C,CAD4B,CAE5B,CAAK,CAAC,KAAN,CAAc,CAAI,CAAC,MAAL,CAAY,IAAZ,CAAiB,SAFH,CAG5B,GAAM,CAAA,CAAS,CAAG,GAAI,CAAA,WAAJ,CAAgB,CAAhB,CAAlB,CACA,CAAS,CAAC,EAAV,CAAa,SAAb,CAAwB,UAAK,CACzB,CAAI,CAAC,IAAL,CAAU,UAAV,CAAqB,CAArB,CAA4B,OAA5B,CACH,CAFD,CAJ4B,CAO5B,CAAO,CAAC,WAAR,CAAoB,CAApB,CACH,CACD,CAAO,CAAC,YAAR,CAAqB,CAArB,CAA8B,CAAO,CAAC,UAAtC,CACH,CACJ,CApCD,CAqCH,C,6CAEW,CACR,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,gBAAT,CAA0B,gBAA1B,CAAlB,CAA+D,SAAA,CAAM,CAAI,CACrE,GAAM,CAAA,CAAQ,CAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAAjB,CACA,CAAQ,CAAC,SAAT,CAAqB,eAFgD,CAGrE,CAAM,CAAC,aAAP,CAAqB,YAArB,CAAkC,CAAlC,CAA4C,CAA5C,CAHqE,CAIrE,CAAQ,CAAC,WAAT,CAAqB,CAArB,CACH,CALD,CAMH,C,uDAEgB,CACb,IAAK,GAAI,CAAA,CAAG,CAAG,CAAf,CAAyB,CAAP,EAAA,CAAlB,CAA4B,CAAG,EAA/B,CACI,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,gBAAT,CAA0B,uBAAyB,CAAnD,CAAlB,CAA2E,SAAA,CAAO,CAAI,CAClF,CAAO,CAAC,SAAR,CAAkB,GAAlB,CAAsB,YAAtB,CADkF,CAElF,CAAO,CAAC,kBAAR,CAA2B,YAA3B,sBAAsD,CAAO,CAAC,EAA9D,kCACH,CAHD,CAKP,C,yCAES,YACA,CAAQ,CAAG,QAAQ,CAAC,cAAT,CAAwB,iBAAxB,CADX,CAEN,GAAiB,IAAb,GAAA,CAAJ,CACA,GAAI,KAAK,IAAL,CAAU,WAAV,EAAJ,CAA6B,CACzB,GAAM,CAAA,CAAiB,CAAG,QAAQ,CAAC,cAAT,CAAwB,oBAAxB,CAA1B,CACI,CAAQ,CAAC,aAAT,GAA2B,CAFN,GAGrB,CAAQ,CAAC,aAAT,CAAuB,WAAvB,CAAmC,CAAnC,CAHqB,CAIrB,CAAiB,CAAC,WAAlB,CAA8B,CAA9B,CAJqB,EAMrB,KAAK,YANgB,EAMF,KAAK,cAAL,CAAoB,MAApB,CAA2B,KAAK,YAAhC,CAC1B,CAPD,IAOO,CACH,GAAM,CAAA,CAAe,CAAG,QAAQ,CAAC,cAAT,CAAwB,kBAAxB,CAAxB,CACI,CAAQ,CAAC,aAAT,GAA2B,CAF5B,GAGC,CAAQ,CAAC,aAAT,CAAuB,WAAvB,CAAmC,CAAnC,CAHD,CAIC,CAAe,CAAC,WAAhB,CAA4B,CAA5B,CAJD,KAMG,CAAA,CAAI,CAAG,QAAQ,CAAC,cAAT,CAAwB,UAAxB,CANV,CAOG,CAAK,CAAG,QAAQ,CAAC,sBAAT,CAAgC,MAAhC,EAAwC,CAAxC,CAPX,CAQG,CAAI,CAAG,CAAK,CAAC,qBAAN,EARV,CASH,CAAI,CAAC,KAAL,CAAW,IAAX,WAAqB,CAAI,CAAC,IAAL,CAAY,CAAI,CAAC,KAAjB,CAAyB,EAA9C,MATG,CAUH,CAAI,CAAC,KAAL,CAAW,QAAX,WAAyB,CAAK,CAAC,qBAAN,GAA8B,IAA9B,CAAqC,EAA9D,MAVG,CAWH,CAAI,CAAC,KAAL,CAAW,UAAX,CAAwB,SAXrB,IAYG,CAAA,CAAgB,CAAG,CAAQ,CAAC,gBAAT,CAA0B,eAA1B,CAZtB,CAaG,CAAc,CAAG,CAAQ,CAAC,oBAAT,CAA8B,IAA9B,CAbpB,CAcG,CAAmB,CAAG,QAAQ,CAAC,sBAAT,CAAgC,YAAhC,CAdzB,CAeG,CAAa,CAAsC,QAAnC,QAAK,MAAL,CAAY,UAAZ,CAAuB,OAf1C,CAgBG,CAAY,CAAG,QAAQ,CAAC,cAAT,CAAwB,gBAAxB,EAA0C,YAhB5D,CAiBG,CAAW,CAAG,IAAM,CAAa,CAAG,CAAH,CAAkB,CAArC,CAjBjB,CAkBG,CAAS,CAAG,CAAI,CAAC,SAlBpB,CAmBG,CAAY,CAAG,CAAS,CAAG,CAAZ,EAA2B,CAAa,CAAG,CAAH,CAAO,CAA/C,CAnBlB,CAoBH,KAAK,YAAL,CAAoB,KAAK,YAAL,EAAsB,UAAM,IACtC,CAAA,CAAS,CAAG,QAAQ,CAAC,cAAT,CAAwB,aAAxB,EAAuC,SADb,CAEtC,CAAS,CAAG,CAAS,CAAG,CAAI,CAAC,qBAAL,GAA6B,MAFf,CAGtC,CAAY,CAAG,CAAS,CAAG,CAAZ,EAA2B,CAAa,CAAG,CAAH,CAAO,CAA/C,CAHuB,CAIxC,CAAI,CAAC,YAAL,CAAoB,CAJoB,EAKxC,CAAI,CAAC,KAAL,CAAW,QAAX,CAAsB,UALkB,CAMxC,CAAI,CAAC,KAAL,CAAW,GAAX,WAAoB,CAApB,MANwC,EAOjC,CAAI,CAAC,YAAL,CAAoB,CAPa,EAQxC,CAAI,CAAC,KAAL,CAAW,QAAX,CAAsB,UARkB,CASxC,CAAI,CAAC,KAAL,CAAW,GAAX,WAAoB,CAApB,MATwC,GAWxC,CAAI,CAAC,KAAL,CAAW,QAAX,CAAsB,OAXkB,CAYxC,CAAI,CAAC,KAAL,CAAW,GAAX,WAAoB,CAApB,MAZwC,EAe5C,CAAI,CAAC,IAAL,CAAU,OAAV,CAAkB,CAAlB,CAAoC,SAAA,CAAQ,CAAI,CAAE,CAAQ,CAAC,SAAT,CAAmB,MAAnB,CAA0B,QAA1B,CAAsC,CAAxF,CAf4C,CAgB5C,CAAI,CAAC,IAAL,CAAU,OAAV,CAAkB,CAAlB,CAAkC,SAAA,CAAM,CAAI,CAAE,CAAM,CAAC,SAAP,CAAiB,MAAjB,CAAwB,YAAxB,CAAwC,CAAtF,CAhB4C,CAmB5C,OAFM,CAAA,CAAa,CAAG,IAAM,CAAa,CAAG,CAAH,CAAkB,CAArC,CAEtB,CADI,CAAc,CAAG,CAAmB,CAAC,MAApB,CAA6B,CAClD,CAAS,CAAC,CAAG,CAAb,CAAgB,CAAC,CAAG,CAAmB,CAAC,MAApB,CAA6B,CAAjD,CAAoD,CAAC,EAArD,CAAyD,IAC/C,CAAA,CAAO,CAAG,CAAmB,CAAC,CAAD,CAAnB,CAAuB,qBAAvB,GAA+C,GADV,CAE/C,CAAO,CAAG,CAAmB,CAAC,CAAC,CAAG,CAAL,CAAnB,CAA2B,qBAA3B,GAAmD,GAFd,CAGrD,GAAU,CAAL,EAAA,CAAC,EAAS,CAAO,CAAG,CAArB,EACC,CAAO,EAAI,CAAX,EAA4B,CAAO,CAAG,CAD3C,CAC2D,CACvD,CAAc,CAAG,CADsC,CAEvD,KACH,CACJ,CACD,GAAuB,CAAC,CAApB,GAAA,CAAJ,CAA2B,CACvB,CAAgB,CAAC,CAAD,CAAhB,CAAiC,SAAjC,CAA2C,GAA3C,CAA+C,QAA/C,CADuB,KAEvB,GAAI,CAAA,CAAO,CAAG,CAAgB,CAAC,CAAD,CAAhB,CAAiC,aAFxB,CAGhB,CAAO,GAAK,CAHI,EAInB,CAAO,CAAC,SAAR,CAAkB,GAAlB,CAAsB,YAAtB,CAJmB,CAKnB,CAAO,CAAG,CAAO,CAAC,aAAR,CAAsB,aAEvC,CACJ,CAxDE,CAyDH,KAAK,YAAL,EAzDG,CA0DH,KAAK,cAAL,CAAoB,GAApB,CAAwB,KAAK,YAA7B,CACH,CACJ,C,2CAEU,CACH,KAAK,MAAL,CAAY,IADT,EACe,mBAAmB,CAAC,QAAQ,CAAC,IAAV,CAAgB,KAAK,MAAL,CAAY,IAA5B,CAC5C,C,iDAEa,YACJ,CAAgB,CAAG,QAAQ,CAAC,sBAAT,CAAgC,SAAhC,CADf,CAEN,CAAgB,CAAC,MAFX,GAGN,OAAO,CAAC,UAAR,CAAmB,CAAC,WAAW,GAAZ,CAAqB,KAAK,CAAE,MAA5B,CAAnB,CAHM,CAIN,KAAK,IAAL,CAAU,OAAV,CAAkB,CAAlB,CAAoC,SAAA,CAAQ,CAAI,CAC5C,OAAO,CAAC,UAAR,CAAmB,MAAnB,CAA0B,OAAS,CAAQ,CAAC,EAA5C,CAAgD,CAAI,CAAC,IAAL,CAAU,CAAQ,CAAC,EAAnB,CAAhD,CAAwE,SAAA,CAAO,CAAI,CAC/E,CAAQ,CAAC,kBAAT,CAA4B,YAA5B,CAA0C,CAA1C,CACH,CAFD,CAEG,CAFH,CAGH,CAJD,CAJM,CAUb,C,iDAEa,YACV,KAAK,qBAAL,CAA6B,KAAK,qBAAL,EAA+B,UAAM,CAC9D,CAAI,CAAC,WAAL,CAAmB,CAAI,CAAC,WAAL,EAAoB,EADuB,CAE9D,IAAK,GAAI,CAAA,CAAC,CAAG,CAAb,CAAgB,CAAC,CAAG,CAAI,CAAC,WAAL,CAAiB,MAArC,CAA6C,CAAC,EAA9C,CACI,CAAI,CAAC,WAAL,CAAiB,CAAjB,EAAoB,OAApB,GAEJ,CAAI,CAAC,WAAL,CAAmB,EAL2C,CAM9D,CAAI,CAAC,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,sBAAT,CAAgC,SAAhC,CAAlB,CAA8D,SAAA,CAAQ,CAAI,CACtE,GAAM,CAAA,CAAK,CAAG,OAAO,CAAC,IAAR,CAAa,CAAb,CAAuB,CAAI,CAAC,MAAL,CAAc,MAAd,CAAuB,UAA9C,CAA0D,CAAC,QAAQ,CAAE,KAAX,CAA1D,CAAd,CACA,CAAK,CAAC,SAAN,CAAgB,IAAI,CAAC,KAAL,CAAW,CAAI,CAAC,IAAL,CAAU,CAAQ,CAAC,EAAnB,CAAX,CAAhB,CAFsE,CAGtE,CAAI,CAAC,WAAL,CAAiB,IAAjB,CAAsB,CAAtB,CACH,CAJD,CAKH,CAZS,CAaV,KAAK,mBAAL,CAAyB,GAAzB,CAA6B,KAAK,qBAAlC,CAbU,CAcV,KAAK,qBAAL,EAdU,CAeV,KAAK,gBAAL,CAAwB,KAAK,gBAAL,EAA0B,UAAM,CACpD,IAAK,GAAI,CAAA,CAAC,CAAG,CAAb,CAAgB,CAAC,CAAG,CAAI,CAAC,WAAL,CAAiB,MAArC,CAA6C,CAAC,EAA9C,CACI,CAAI,CAAC,WAAL,CAAiB,CAAjB,EAAoB,MAApB,EAEP,CAnBS,CAoBV,KAAK,cAAL,CAAoB,GAApB,CAAwB,KAAK,gBAA7B,CACH,C,+CAEY,YACL,KAAK,MAAL,CAAY,MADP,GAEL,QAAQ,CAAC,WAAT,CAAuB,KAAK,MAAL,CAAY,MAAZ,CAAmB,WAFrC,CAGL,QAAQ,CAAC,gBAAT,CAA0B,KAAK,MAAL,CAAY,MAAZ,CAAmB,aAA7C,CAHK,CAIL,KAAK,UAAL,CAAkB,KAAK,UAAL,EAAmB,EAJhC,CAKL,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,sBAAT,CAAgC,QAAhC,CAAlB,CAA6D,SAAA,CAAO,CAAI,OACgC,CAAI,CAAC,IAAL,CAAU,CAAO,CAAC,EAAlB,CADhC,CAC5D,CAD4D,GAC5D,GAD4D,CACvD,CADuD,GACvD,GADuD,CAClD,CADkD,GAClD,IADkD,CAC5C,CAD4C,GAC5C,UAD4C,CAChC,CADgC,GAChC,SADgC,CACrB,CADqB,GACrB,MADqB,CACb,CADa,GACb,UADa,CACD,CADC,GACD,SADC,CACU,CADV,GACU,KADV,CACiB,CADjB,GACiB,UADjB,CAE9D,CAAM,CAAG,GAAI,CAAA,QAAQ,CAAC,GAAb,CAAiB,CAC5B,SAAS,CAAE,CADiB,CAE5B,MAAM,CAAE,CAAC,CAAD,CAAM,CAAN,CAFoB,CAG5B,IAAI,CAAE,CAHsB,CAI5B,OAAO,CAAE,EAJmB,CAK5B,KAAK,CAAE,CAAI,CAAC,MAAL,CAAc,CAAd,CAA0B,CALL,CAM5B,kBAAkB,GANU,CAAjB,CAFqD,CAUhE,CAVgE,EAWhE,GAAI,CAAA,QAAQ,CAAC,MAAb,GAAsB,SAAtB,CAAgC,CAAC,CAAD,CAAM,CAAN,CAAhC,EAA4C,KAA5C,CAAkD,CAAlD,CAXgE,CAahE,CAbgE,EAchE,CAAM,CAAC,UAAP,CAAkB,GAAI,CAAA,QAAQ,CAAC,iBAA/B,CAAoD,cAApD,CAdgE,CAgBhE,CAhBgE,EAiBhE,CAAM,CAAC,UAAP,CAAkB,GAAI,CAAA,QAAQ,CAAC,gBAAb,CAA8B,CAC5C,eAAe,CAAE,CACb,kBAAkB,GADL,CAD2B,CAI5C,gBAAgB,GAJ4B,CAK5C,iBAAiB,GAL2B,CAA9B,CAAlB,CAMI,cANJ,CAjBgE,CAyBhE,CAzBgE,EA0BhE,CAAM,CAAC,UAAP,CAAkB,GAAI,CAAA,QAAQ,CAAC,YAA/B,CA1BgE,CA4BhE,CA5BgE,EA6BhE,CAAM,CAAC,UAAP,CAAkB,GAAI,CAAA,QAAQ,CAAC,iBAA/B,CA7BgE,CA+BpE,CAAM,CAAC,UAAP,CAAkB,GAAI,CAAA,cAAtB,CA/BoE,CAgCpE,CAAI,CAAC,UAAL,CAAgB,IAAhB,CAAqB,CAArB,CACH,CAjCD,CALK,CAuCL,KAAK,oBAAL,CAA4B,KAAK,oBAAL,EAA8B,UAAM,CAC5D,CAAI,CAAC,IAAL,CAAU,OAAV,CAAkB,CAAI,CAAC,UAAvB,CAAmC,SAAA,CAAM,CAAI,IACnC,CAAA,CAAO,CAAG,CAAM,CAAC,YAAP,EADyB,GAEP,CAAI,CAAC,IAAL,CAAU,CAAO,CAAC,EAAlB,CAFO,CAEjC,CAFiC,GAEjC,UAFiC,CAErB,CAFqB,GAErB,SAFqB,CAGzC,CAAM,CAAC,QAAP,CAAgB,CAAI,CAAC,MAAL,CAAc,CAAd,CAA0B,CAA1C,CAHyC,CAIzC,CAAM,CAAC,UAAP,CAAkB,GAAI,CAAA,cAAtB,CACH,CALD,CAMH,CA9CI,CA+CL,KAAK,mBAAL,CAAyB,GAAzB,CAA6B,KAAK,oBAAlC,CA/CK,CAiDZ,C,+CAEY,YACL,KAAK,MAAL,CAAY,MADP,EAEL,KAAK,MAAL,CAAY,MAAZ,CAAmB,OAAnB,CAA2B,SAAA,CAAK,CAAI,CAChC,GAAM,CAAA,CAAO,CAAG,SAAC,CAAD,CAAO,CACnB,GAAM,CAAA,CAAE,CAAG,CAAK,CAAC,CAAD,CAAhB,CACA,GAAI,CAAC,GAAK,CAAK,CAAC,MAAN,CAAe,CAAzB,CAII,WAHA,IAAI,CAAA,MAAJ,YAAe,CAAf,EAAqB,CACjB,OAAO,CAAE,CAAI,CAAC,IAAL,CAAU,CAAV,CADQ,CAArB,EAEG,EAFH,EAGA,CAEJ,GAAI,CAAA,CAAQ,CAAG,GAAI,CAAA,MAAJ,YAAe,CAAf,EAAqB,CAChC,OAAO,CAAE,CAAI,CAAC,IAAL,CAAU,CAAV,CADuB,CAEhC,aAAa,CAAE,wBAAM,CACjB,CAAQ,CAAC,OAAT,EADiB,CAEjB,CAAO,CAAC,CAAC,CAAG,CAAL,CACV,CAL+B,CAArB,EAMZ,EANY,EAOlB,CAfD,CAgBA,CAAO,CAAC,CAAD,CACV,CAlBD,CAoBP,C,iDAEa,CACV,GAAI,KAAK,MAAL,CAAY,OAAZ,EAAuB,KAAK,MAAL,CAAY,OAAZ,CAAoB,MAA/C,CAAuD,CACnD,KAAK,MAAL,CAAY,OAAZ,CAAoB,MAApB,CAA2B,IAA3B,CAAkC,SAAS,CAAC,MAAM,CAAC,QAAP,CAAgB,IAAjB,CADQ,CAEnD,GAAM,CAAA,CAAM,CAAG,GAAI,CAAA,MAAJ,CAAW,KAAK,MAAL,CAAY,OAAZ,CAAoB,MAApB,CAA2B,IAAtC,CAAf,CACA,CAAM,CAAC,MAAP,CAAc,QAAd,CACH,CACG,KAAK,MAAL,CAAY,OAAZ,EAAuB,KAAK,MAAL,CAAY,OAAZ,CAAoB,MANrC,EAM6C,GAAI,CAAA,MAAJ,CAAW,KAAK,MAAL,CAAY,OAAZ,CAAoB,MAA/B,CAC1D,C,2DAEkB,CACX,YADW,EACG,GAAI,CAAA,YAAJ,CAAiB,eAAjB,CAAgC,CAAE,KAAK,CAAE,GAAT,CAAc,eAAe,GAA7B,CAAqC,MAAM,CAAE,iBAA7C,CAAhC,CACrB,C,2CAEU,YACD,CAAQ,CAAG,EADV,CAIP,GAFuC,MAAnC,QAAK,MAAL,CAAY,UAAZ,CAAuB,OAE3B,EAF+C,CAAQ,CAAC,IAAT,CAAc,QAAQ,CAAC,cAAT,CAAwB,gBAAxB,CAAd,CAE/C,CADsC,MAAlC,QAAK,MAAL,CAAY,UAAZ,CAAuB,MAC3B,EAD8C,CAAQ,CAAC,IAAT,CAAc,QAAQ,CAAC,cAAT,CAAwB,eAAxB,CAAd,CAC9C,CAAI,QAAQ,CAAC,cAAT,CAAwB,UAAxB,CAAJ,CAAyC,CACrC,GAAM,CAAA,CAAa,CAAG,QAAQ,CAAC,cAAT,CAAwB,eAAxB,CAAtB,CACA,CAAa,CAAC,IAAd,YAFqC,CAGrC,CAAa,CAAC,KAAd,CAAoB,OAApB,CAA8B,OACjC,CARM,GASD,CAAA,CAAa,CAAG,QAAQ,CAAC,cAAT,CAAwB,eAAxB,CATf,CAUD,CAAU,CAAG,EAVZ,CAWP,MAAM,CAAC,gBAAP,CAAwB,QAAxB,CAAkC,UAAM,CACpC,CAAI,CAAC,YAAL,CAAoB,CAAI,CAAC,IAAL,CAAU,YAAV,EADgB,CAEpC,GAAM,CAAA,CAAM,CAAG,CAAI,CAAC,YAAL,CAAoB,CAAI,CAAC,YAAxC,CACA,CAAI,CAAC,IAAL,CAAU,OAAV,CAAkB,CAAlB,CAA4B,SAAA,CAAO,CAAI,CAC/B,CAAM,CAAG,CADsB,EAE/B,CAAO,CAAC,SAAR,CAAkB,MAAlB,CAAyB,YAAzB,CAF+B,CAG/B,CAAI,CAAC,IAAL,CAAU,UAAV,CAAqB,CAArB,CAA8B,CAAC,WAAD,CAAc,QAAd,CAA9B,IAH+B,EAIxB,CAAM,CAAG,CAAE,CAJa,GAK/B,CAAO,CAAC,SAAR,CAAkB,MAAlB,CAAyB,WAAzB,CAL+B,CAM/B,CAAI,CAAC,IAAL,CAAU,UAAV,CAAqB,CAArB,CAA8B,CAAC,YAAD,CAAe,QAAf,CAA9B,IAN+B,CAQtC,CARD,CAHoC,CAYhC,CAAI,CAAC,YAAL,CAAoB,CAZY,CAa5B,CAAM,CAAG,CAbmB,EAc5B,CAAa,CAAC,SAAd,CAAwB,MAAxB,CAA+B,QAA/B,CAd4B,CAe5B,CAAI,CAAC,IAAL,CAAU,UAAV,CAAqB,CAArB,CAAoC,CAAC,SAAD,CAAY,QAAZ,CAApC,IAf4B,EAgBrB,CAAM,CAAG,CAAE,CAhBU,GAiB5B,CAAa,CAAC,KAAd,CAAoB,OAApB,CAA8B,OAjBF,CAkB5B,CAAa,CAAC,SAAd,CAAwB,MAAxB,CAA+B,SAA/B,CAlB4B,CAmB5B,CAAI,CAAC,IAAL,CAAU,UAAV,CAAqB,CAArB,CAAoC,CAAC,QAAD,CAAW,QAAX,CAApC,IAnB4B,EAsBhC,CAAa,CAAC,KAAd,CAAoB,OAApB,CAA8B,MAtBE,oCAwBlB,CAAI,CAAC,cAxBa,MAwBpC,+BAAS,CAAA,CAAT,SAAuC,CAAK,EAA5C,CAxBoC,+BAyBpC,CAAI,CAAC,YAAL,CAAoB,CAAI,CAAC,YAC5B,CA1BD,IA2BH,C,2CAEU,YACP,MAAM,CAAC,gBAAP,CAAwB,QAAxB,CAAkC,UAAM,CAC/B,CAAI,CAAC,cAD0B,GAEhC,CAAI,CAAC,cAAL,CAAsB,MAAM,CAAC,UAAP,CAAkB,UAAM,CAC1C,CAAI,CAAC,cAAL,CAAsB,IADoB,oCAExB,CAAI,CAAC,cAFmB,MAE1C,+BAAS,CAAA,CAAT,SAAuC,CAAK,EAA5C,CAF0C,+BAG1C,CAAI,CAAC,OAAL,EAH0C,CAI1C,CAAI,CAAC,WAAL,EAJ0C,CAK1C,CAAI,CAAC,UAAL,EACH,CANqB,CAMnB,GANmB,CAFU,CAUvC,CAVD,IAWH,C,iDAEa,YACV,QAAQ,CAAC,cAAT,CAAwB,MAAxB,EAAgC,gBAAhC,CAAiD,OAAjD,CAA0D,UAAM,oCAC1C,CAAI,CAAC,iBADqC,MAC5D,+BAAS,CAAA,CAAT,SAA0C,CAAK,EAA/C,CAD4D,+BAE5D,QAAQ,CAAC,IAAT,CAAc,SAAd,CAAwB,MAAxB,CAA+B,MAA/B,CACH,CAHD,IAIH,C,mCAEM,CACH,KAAK,WAAL,EADG,CAEH,KAAK,WAAL,EAFG,CAGH,KAAK,cAAL,EAHG,CAIH,KAAK,eAAL,EAJG,CAKH,KAAK,UAAL,EALG,CAMH,KAAK,WAAL,EANG,CAOH,KAAK,gBAAL,EAPG,CAQH,KAAK,aAAL,EARG,CASH,KAAK,SAAL,EATG,CAUH,KAAK,cAAL,EAVG,CAWH,KAAK,OAAL,EAXG,CAYH,KAAK,WAAL,EAZG,CAaH,KAAK,gBAAL,EAbG,CAcH,KAAK,QAAL,EAdG,CAeH,KAAK,WAAL,EAfG,CAgBH,KAAK,WAAL,EAhBG,CAiBH,KAAK,UAAL,EAjBG,CAkBH,KAAK,UAAL,EAlBG,CAoBH,KAAK,QAAL,EApBG,CAqBH,KAAK,QAAL,EArBG,CAsBH,KAAK,WAAL,EACH,C,SAGC,SAAS,CAAG,UAAM,CACpB,GAAM,CAAA,CAAK,CAAG,GAAI,CAAA,KAAlB,CACA,CAAK,CAAC,IAAN,EACH,C,CAE2B,SAAxB,GAAA,QAAQ,CAAC,U,CAGT,QAAQ,CAAC,gBAAT,CAA0B,kBAA1B,CAA8C,SAA9C,I,CAFA,SAAS,E","file":"theme.min.js","sourcesContent":["class Util {\n forEach(elements, handler) {\n elements = elements || [];\n for (let i = 0; i < elements.length; i++) handler(elements[i]);\n }\n\n getScrollTop() {\n return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n }\n\n isMobile() {\n return window.matchMedia('only screen and (max-width: 680px)').matches;\n }\n\n isTocStatic() {\n return window.matchMedia('only screen and (max-width: 960px)').matches;\n }\n\n animateCSS(element, animation, reserved, callback) {\n if (!Array.isArray(animation)) animation = [animation];\n element.classList.add('animated', ...animation);\n const handler = () => {\n element.classList.remove('animated', ...animation);\n element.removeEventListener('animationend', handler);\n if (typeof callback === 'function') callback();\n };\n if (!reserved) element.addEventListener('animationend', handler, false);\n }\n}\n\nclass Theme {\n constructor() {\n this.config = window.config;\n this.data = this.config.data;\n this.isDark = document.body.getAttribute('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 if (objectFitImages) objectFitImages();\n }\n\n initSVGIcon() {\n this.util.forEach(document.querySelectorAll('[data-svg-src]'), $icon => {\n fetch($icon.getAttribute('data-svg-src'))\n .then(response => response.text())\n .then(svg => {\n const $temp = document.createElement('div');\n $temp.insertAdjacentHTML('afterbegin', svg);\n const $svg = $temp.firstChild;\n $svg.setAttribute('data-svg-src', $icon.getAttribute('data-svg-src'));\n $svg.classList.add('icon');\n const $titleElements = $svg.getElementsByTagName('title');\n if ($titleElements.length) $svg.removeChild($titleElements[0]);\n $icon.parentElement.replaceChild($svg, $icon);\n })\n .catch(err => { console.error(err); });\n });\n }\n\n initTwemoji() {\n if (this.config.twemoji) twemoji.parse(document.body);\n }\n\n initMenuMobile() {\n const $menuToggleMobile = document.getElementById('menu-toggle-mobile');\n const $menuMobile = document.getElementById('menu-mobile');\n $menuToggleMobile.addEventListener('click', () => {\n document.body.classList.toggle('blur');\n $menuToggleMobile.classList.toggle('active');\n $menuMobile.classList.toggle('active');\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 }\n\n initSwitchTheme() {\n this.util.forEach(document.getElementsByClassName('theme-switch'), $themeSwitch => {\n $themeSwitch.addEventListener('click', () => {\n if (document.body.getAttribute('theme') === 'dark') document.body.setAttribute('theme', 'light');\n else document.body.setAttribute('theme', 'dark');\n this.isDark = !this.isDark;\n window.localStorage && localStorage.setItem('theme', this.isDark ? 'dark' : 'light');\n for (let event of this.switchThemeEventSet) event();\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) return;\n\n if (!searchConfig.maxResultLength) searchConfig.maxResultLength = 10;\n if (!searchConfig.snippetLength) searchConfig.snippetLength = 50;\n if (!searchConfig.highlightTag) searchConfig.highlightTag = 'em';\n\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 if (isMobile) {\n this._searchMobileOnce = true;\n $searchInput.addEventListener('focus', () => {\n document.body.classList.add('blur');\n $header.classList.add('open');\n }, false);\n document.getElementById('search-cancel-mobile').addEventListener('click', () => {\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 hint: false,\n autoselect: true,\n dropdownMenuContainer: `#search-dropdown-${suffix}`,\n clearOnSelected: true,\n cssClasses: { noPrefix: true },\n debug: true,\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) query = lunr.queryHandler(query);\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]) return;\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) position = matchPosition;\n }\n });\n position -= searchConfig.snippetLength / 5;\n if (position > 0) {\n position += context.substr(position, 20).lastIndexOf(' ') + 1;\n context = '...' + context.substr(position, searchConfig.snippetLength);\n } else {\n context = context.substr(0, searchConfig.snippetLength);\n }\n Object.keys(metadata).forEach(key => {\n title = title.replace(new RegExp(`(${key})`, 'gi'), `<${searchConfig.highlightTag}>$1`);\n context = context.replace(new RegExp(`(${key})`, 'gi'), `<${searchConfig.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, searchConfig.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 }).catch(err => {\n console.error(err);\n finish([]);\n });\n } else finish(search());\n } else if (searchConfig.type === 'algolia') {\n this._algoliaIndex = this._algoliaIndex || algoliasearch(searchConfig.algoliaAppID, searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);\n this._algoliaIndex\n .search(query, {\n offset: 0,\n length: searchConfig.maxResultLength * 8,\n attributesToHighlight: ['title'],\n attributesToSnippet: [`content:${searchConfig.snippetLength}`],\n highlightPreTag: `<${searchConfig.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) return;\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, searchConfig.maxResultLength));\n })\n .catch(err => {\n console.error(err);\n finish([]);\n });\n }\n },\n templates: {\n suggestion: ({ title, date, context }) => `
${title}${date}
${context}
`,\n empty: ({ query }) => `
${searchConfig.noResultsFound}: \"${query}\"
`,\n footer: ({}) => {\n const { searchType, icon, href } = searchConfig.type === 'algolia' ? {\n searchType: 'algolia',\n icon: '',\n href: 'https://www.algolia.com/',\n } : {\n searchType: 'Lunr.js',\n icon: '',\n href: 'https://lunrjs.com/',\n };\n return ``;},\n },\n });\n autosearch.on('autocomplete:selected', (event, suggestion, dataset, context) => {\n window.location.assign(suggestion.uri);\n });\n if (isMobile) this._searchMobile = autosearch;\n else this._searchDesktop = autosearch;\n };\n if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) {\n const script = document.createElement('script');\n script.id = 'lunr-segmentit';\n script.type = 'text/javascript';\n script.src = searchConfig.lunrSegmentitURL;\n script.async = true;\n if (script.readyState) {\n script.onreadystatechange = () => {\n if (script.readyState == 'loaded' || script.readyState == 'complete'){\n script.onreadystatechange = null;\n initAutosearch();\n }\n };\n } else {\n script.onload = () => {\n initAutosearch();\n };\n }\n document.body.appendChild(script);\n } else initAutosearch();\n }\n\n initDetails() {\n this.util.forEach(document.getElementsByClassName('details'), $details => {\n const $summary = $details.getElementsByClassName('details-summary')[0];\n $summary.addEventListener('click', () => {\n $details.classList.toggle('open');\n }, false);\n });\n }\n\n initLightGallery() {\n if (this.config.lightGallery) lightGallery(document.getElementById('content'), this.config.lightGallery);\n }\n\n initHighlight() {\n this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), $preChroma => {\n const $chroma = document.createElement('div');\n $chroma.className = $preChroma.className;\n const $table = document.createElement('table');\n $chroma.appendChild($table);\n const $tbody = document.createElement('tbody');\n $table.appendChild($tbody);\n const $tr = document.createElement('tr');\n $tbody.appendChild($tr);\n const $td = document.createElement('td');\n $tr.appendChild($td);\n $preChroma.parentElement.replaceChild($chroma, $preChroma);\n $td.appendChild($preChroma);\n });\n this.util.forEach(document.querySelectorAll('.highlight > .chroma'), $chroma => {\n const $codeElements = $chroma.querySelectorAll('pre.chroma > code');\n if ($codeElements.length) {\n const $code = $codeElements[$codeElements.length - 1];\n const $header = document.createElement('div');\n $header.className = 'code-header ' + $code.className.toLowerCase();\n 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 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 const $copy = document.createElement('span');\n $copy.insertAdjacentHTML('afterbegin', '');\n $copy.classList.add('copy');\n const code = $code.innerText;\n if (this.config.code.maxShownLines < 0 || code.split('\\n').length < this.config.code.maxShownLines + 2) $chroma.classList.add('open');\n if (this.config.code.copyTitle) {\n $copy.setAttribute('data-clipboard-text', code);\n $copy.title = this.config.code.copyTitle;\n const clipboard = new ClipboardJS($copy);\n clipboard.on('success', e => {\n this.util.animateCSS($code, 'flash');\n });\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('headerLink');\n $header.insertAdjacentHTML('afterbegin', ``);\n });\n }\n }\n\n initToc() {\n const $tocCore = document.getElementById('TableOfContents');\n if ($tocCore === null) return;\n if (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 if (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 const $page = document.getElementsByClassName('page')[0];\n const rect = $page.getBoundingClientRect();\n $toc.style.left = `${rect.left + rect.width + 20}px`;\n $toc.style.maxWidth = `${$page.getBoundingClientRect().left - 20}px`;\n $toc.style.visibility = 'visible';\n const $tocLinkElements = $tocCore.querySelectorAll('a:first-child');\n const $tocLiElements = $tocCore.getElementsByTagName('li');\n const $headerLinkElements = document.getElementsByClassName('headerLink');\n const headerIsFixed = this.config.headerMode.desktop !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n const TOP_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n const minTocTop = $toc.offsetTop;\n const minScrollTop = minTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n this._tocOnScroll = this._tocOnScroll || (() => {\n const footerTop = document.getElementById('post-footer').offsetTop;\n const maxTocTop = footerTop - $toc.getBoundingClientRect().height;\n const maxScrollTop = maxTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n if (this.newScrollTop < minScrollTop) {\n $toc.style.position = 'absolute';\n $toc.style.top = `${minTocTop}px`;\n } else if (this.newScrollTop > maxScrollTop) {\n $toc.style.position = 'absolute';\n $toc.style.top = `${maxTocTop}px`;\n } else {\n $toc.style.position = 'fixed';\n $toc.style.top = `${TOP_SPACING}px`;\n }\n\n this.util.forEach($tocLinkElements, $tocLink => { $tocLink.classList.remove('active'); });\n this.util.forEach($tocLiElements, $tocLi => { $tocLi.classList.remove('has-active'); });\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)\n || (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 initMath() {\n if (this.config.math) renderMathInElement(document.body, this.config.math);\n }\n\n initMermaid() {\n const $mermaidElements = document.getElementsByClassName('mermaid');\n if ($mermaidElements.length) {\n mermaid.initialize({startOnLoad: false, theme: 'null'});\n this.util.forEach($mermaidElements, $mermaid => {\n mermaid.mermaidAPI.render('svg-' + $mermaid.id, this.data[$mermaid.id], svgCode => {\n $mermaid.insertAdjacentHTML('afterbegin', svgCode);\n }, $mermaid);\n });\n }\n }\n\n initEcharts() {\n this._echartsOnSwitchTheme = this._echartsOnSwitchTheme || (() => {\n this._echartsArr = this._echartsArr || [];\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].dispose();\n }\n this._echartsArr = [];\n this.util.forEach(document.getElementsByClassName('echarts'), $echarts => {\n const chart = echarts.init($echarts, this.isDark ? 'dark' : 'macarons', {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: .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(new mapboxgl.GeolocateControl({\n positionOptions: {\n enableHighAccuracy: true,\n },\n showUserLocation: true,\n trackUserLocation: true,\n }), 'bottom-right');\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 this.config.typeit.forEach(group => {\n const typeone = (i) => {\n const id = group[i];\n if (i === group.length - 1) {\n new TypeIt(`#${id}`, {\n strings: this.data[id],\n }).go();\n return;\n }\n let instance = new TypeIt(`#${id}`, {\n strings: this.data[id],\n afterComplete: () => {\n instance.destroy();\n typeone(i + 1);\n },\n }).go();\n };\n typeone(0);\n });\n }\n }\n\n initComment() {\n if (this.config.comment && this.config.comment.gitalk) {\n this.config.comment.gitalk.body = decodeURI(window.location.href);\n const gitalk = new Gitalk(this.config.comment.gitalk.body);\n gitalk.render('gitalk');\n }\n if (this.config.comment && this.config.comment.valine) new Valine(this.config.comment.valine);\n }\n\n initSmoothScroll() {\n if (SmoothScroll) new SmoothScroll('[href^=\"#\"]', { speed: 300, speedAsDuration: true, header: '#header-desktop' });\n }\n\n onScroll() {\n const $headers = [];\n if (this.config.headerMode.desktop === 'auto') $headers.push(document.getElementById('header-desktop'));\n if (this.config.headerMode.mobile === 'auto') $headers.push(document.getElementById('header-mobile'));\n if (document.getElementById('comments')) {\n const $viewComments = document.getElementById('view-comments');\n $viewComments.href = `#comments`;\n $viewComments.style.display = 'block';\n }\n const $fixedButtons = document.getElementById('fixed-buttons');\n const MIN_SCROLL = 20;\n window.addEventListener('scroll', () => {\n this.newScrollTop = this.util.getScrollTop();\n const scroll = this.newScrollTop - this.oldScrollTop;\n this.util.forEach($headers, $header => {\n if (scroll > MIN_SCROLL) {\n $header.classList.remove('fadeInDown');\n this.util.animateCSS($header, ['fadeOutUp', 'faster'], true);\n } else if (scroll < - MIN_SCROLL) {\n $header.classList.remove('fadeOutUp');\n this.util.animateCSS($header, ['fadeInDown', 'faster'], true);\n }\n });\n if (this.newScrollTop > MIN_SCROLL) {\n if (scroll > MIN_SCROLL) {\n $fixedButtons.classList.remove('fadeIn');\n this.util.animateCSS($fixedButtons, ['fadeOut', 'faster'], true);\n } else if (scroll < - MIN_SCROLL) {\n $fixedButtons.style.display = 'block';\n $fixedButtons.classList.remove('fadeOut');\n this.util.animateCSS($fixedButtons, ['fadeIn', 'faster'], true);\n }\n } else {\n $fixedButtons.style.display = 'none';\n }\n for (let event of this.scrollEventSet) event();\n this.oldScrollTop = this.newScrollTop;\n }, false);\n }\n\n onResize() {\n window.addEventListener('resize', () => {\n if (!this._resizeTimeout) {\n this._resizeTimeout = window.setTimeout(() => {\n this._resizeTimeout = null;\n for (let event of this.resizeEventSet) event();\n this.initToc();\n this.initMermaid();\n this.initSearch();\n }, 100);\n }\n }, false);\n }\n\n onClickMask() {\n document.getElementById('mask').addEventListener('click', () => {\n for (let event of this.clickMaskEventSet) event();\n document.body.classList.remove('blur');\n }, false);\n }\n\n init() {\n this.initSVGIcon();\n this.initTwemoji();\n this.initMenuMobile();\n this.initSwitchTheme();\n this.initSearch();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initToc();\n this.initComment();\n this.initSmoothScroll();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n\n this.onScroll();\n this.onResize();\n this.onClickMask();\n }\n}\n\nconst themeInit = () => {\n const theme = new Theme();\n theme.init();\n};\n\nif (document.readyState !== 'loading') {\n themeInit();\n} else {\n document.addEventListener('DOMContentLoaded', themeInit, false);\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../src/js/theme.js"],"names":[],"mappings":"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","file":"theme.min.js","sourcesContent":["class Util {\n forEach(elements, handler) {\n elements = elements || [];\n for (let i = 0; i < elements.length; i++) handler(elements[i]);\n }\n\n getScrollTop() {\n return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n }\n\n isMobile() {\n return window.matchMedia('only screen and (max-width: 680px)').matches;\n }\n\n isTocStatic() {\n return window.matchMedia('only screen and (max-width: 960px)').matches;\n }\n\n animateCSS(element, animation, reserved, callback) {\n if (!Array.isArray(animation)) animation = [animation];\n element.classList.add('animated', ...animation);\n const handler = () => {\n element.classList.remove('animated', ...animation);\n element.removeEventListener('animationend', handler);\n if (typeof callback === 'function') callback();\n };\n if (!reserved) element.addEventListener('animationend', handler, false);\n }\n}\n\nclass Theme {\n constructor() {\n this.config = window.config;\n this.data = this.config.data;\n this.isDark = document.body.getAttribute('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 if (objectFitImages) objectFitImages();\n }\n\n initSVGIcon() {\n this.util.forEach(document.querySelectorAll('[data-svg-src]'), $icon => {\n fetch($icon.getAttribute('data-svg-src'))\n .then(response => response.text())\n .then(svg => {\n const $temp = document.createElement('div');\n $temp.insertAdjacentHTML('afterbegin', svg);\n const $svg = $temp.firstChild;\n $svg.setAttribute('data-svg-src', $icon.getAttribute('data-svg-src'));\n $svg.classList.add('icon');\n const $titleElements = $svg.getElementsByTagName('title');\n if ($titleElements.length) $svg.removeChild($titleElements[0]);\n $icon.parentElement.replaceChild($svg, $icon);\n })\n .catch(err => { console.error(err); });\n });\n }\n\n initTwemoji() {\n if (this.config.twemoji) twemoji.parse(document.body);\n }\n\n initMenuMobile() {\n const $menuToggleMobile = document.getElementById('menu-toggle-mobile');\n const $menuMobile = document.getElementById('menu-mobile');\n $menuToggleMobile.addEventListener('click', () => {\n document.body.classList.toggle('blur');\n $menuToggleMobile.classList.toggle('active');\n $menuMobile.classList.toggle('active');\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 }\n\n initSwitchTheme() {\n this.util.forEach(document.getElementsByClassName('theme-switch'), $themeSwitch => {\n $themeSwitch.addEventListener('click', () => {\n if (document.body.getAttribute('theme') === 'dark') document.body.setAttribute('theme', 'light');\n else document.body.setAttribute('theme', 'dark');\n this.isDark = !this.isDark;\n window.localStorage && localStorage.setItem('theme', this.isDark ? 'dark' : 'light');\n for (let event of this.switchThemeEventSet) event();\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) return;\n\n const maxResultLength = searchConfig.maxResultLength ? searchConfig.maxResultLength : 10;\n const snippetLength = searchConfig.snippetLength ? searchConfig.snippetLength : 50;\n const highlightTag = searchConfig.highlightTag ? searchConfig.highlightTag : 'em';\n\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 if (isMobile) {\n this._searchMobileOnce = true;\n $searchInput.addEventListener('focus', () => {\n document.body.classList.add('blur');\n $header.classList.add('open');\n }, false);\n document.getElementById('search-cancel-mobile').addEventListener('click', () => {\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 hint: false,\n autoselect: true,\n dropdownMenuContainer: `#search-dropdown-${suffix}`,\n clearOnSelected: true,\n cssClasses: { noPrefix: true },\n debug: true,\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) query = lunr.queryHandler(query);\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]) return;\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) position = matchPosition;\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 }).catch(err => {\n console.error(err);\n finish([]);\n });\n } else finish(search());\n } else if (searchConfig.type === 'algolia') {\n this._algoliaIndex = 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) return;\n results[uri] = {\n uri: uri,\n title: title.value,\n date: date,\n context: content.value,\n };\n });\n finish(Object.values(results).slice(0, maxResultLength));\n })\n .catch(err => {\n console.error(err);\n finish([]);\n });\n }\n },\n templates: {\n suggestion: ({ title, date, context }) => `
${title}${date}
${context}
`,\n empty: ({ query }) => `
${searchConfig.noResultsFound}: \"${query}\"
`,\n footer: ({}) => {\n const { searchType, icon, href } = searchConfig.type === 'algolia' ? {\n searchType: 'algolia',\n icon: '',\n href: 'https://www.algolia.com/',\n } : {\n searchType: 'Lunr.js',\n icon: '',\n href: 'https://lunrjs.com/',\n };\n return ``;},\n },\n });\n autosearch.on('autocomplete:selected', (_event, suggestion, _dataset, _context) => {\n window.location.assign(suggestion.uri);\n });\n if (isMobile) this._searchMobile = autosearch;\n else this._searchDesktop = autosearch;\n };\n if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) {\n const script = document.createElement('script');\n script.id = 'lunr-segmentit';\n script.type = 'text/javascript';\n script.src = searchConfig.lunrSegmentitURL;\n script.async = true;\n if (script.readyState) {\n script.onreadystatechange = () => {\n if (script.readyState == 'loaded' || script.readyState == 'complete'){\n script.onreadystatechange = null;\n initAutosearch();\n }\n };\n } else {\n script.onload = () => {\n initAutosearch();\n };\n }\n document.body.appendChild(script);\n } else initAutosearch();\n }\n\n initDetails() {\n this.util.forEach(document.getElementsByClassName('details'), $details => {\n const $summary = $details.getElementsByClassName('details-summary')[0];\n $summary.addEventListener('click', () => {\n $details.classList.toggle('open');\n }, false);\n });\n }\n\n initLightGallery() {\n if (this.config.lightGallery) lightGallery(document.getElementById('content'), this.config.lightGallery);\n }\n\n initHighlight() {\n this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), $preChroma => {\n const $chroma = document.createElement('div');\n $chroma.className = $preChroma.className;\n const $table = document.createElement('table');\n $chroma.appendChild($table);\n const $tbody = document.createElement('tbody');\n $table.appendChild($tbody);\n const $tr = document.createElement('tr');\n $tbody.appendChild($tr);\n const $td = document.createElement('td');\n $tr.appendChild($td);\n $preChroma.parentElement.replaceChild($chroma, $preChroma);\n $td.appendChild($preChroma);\n });\n this.util.forEach(document.querySelectorAll('.highlight > .chroma'), $chroma => {\n const $codeElements = $chroma.querySelectorAll('pre.chroma > code');\n if ($codeElements.length) {\n const $code = $codeElements[$codeElements.length - 1];\n const $header = document.createElement('div');\n $header.className = 'code-header ' + $code.className.toLowerCase();\n 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 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 const $copy = document.createElement('span');\n $copy.insertAdjacentHTML('afterbegin', '');\n $copy.classList.add('copy');\n const code = $code.innerText;\n if (this.config.code.maxShownLines < 0 || code.split('\\n').length < this.config.code.maxShownLines + 2) $chroma.classList.add('open');\n if (this.config.code.copyTitle) {\n $copy.setAttribute('data-clipboard-text', code);\n $copy.title = this.config.code.copyTitle;\n const clipboard = new ClipboardJS($copy);\n clipboard.on('success', _e => {\n this.util.animateCSS($code, 'flash');\n });\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('headerLink');\n $header.insertAdjacentHTML('afterbegin', ``);\n });\n }\n }\n\n initToc() {\n const $tocCore = document.getElementById('TableOfContents');\n if ($tocCore === null) return;\n if (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 if (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 const $page = document.getElementsByClassName('page')[0];\n const rect = $page.getBoundingClientRect();\n $toc.style.left = `${rect.left + rect.width + 20}px`;\n $toc.style.maxWidth = `${$page.getBoundingClientRect().left - 20}px`;\n $toc.style.visibility = 'visible';\n const $tocLinkElements = $tocCore.querySelectorAll('a:first-child');\n const $tocLiElements = $tocCore.getElementsByTagName('li');\n const $headerLinkElements = document.getElementsByClassName('headerLink');\n const headerIsFixed = this.config.headerMode.desktop !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n const TOP_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n const minTocTop = $toc.offsetTop;\n const minScrollTop = minTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n this._tocOnScroll = this._tocOnScroll || (() => {\n const footerTop = document.getElementById('post-footer').offsetTop;\n const maxTocTop = footerTop - $toc.getBoundingClientRect().height;\n const maxScrollTop = maxTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n if (this.newScrollTop < minScrollTop) {\n $toc.style.position = 'absolute';\n $toc.style.top = `${minTocTop}px`;\n } else if (this.newScrollTop > maxScrollTop) {\n $toc.style.position = 'absolute';\n $toc.style.top = `${maxTocTop}px`;\n } else {\n $toc.style.position = 'fixed';\n $toc.style.top = `${TOP_SPACING}px`;\n }\n\n this.util.forEach($tocLinkElements, $tocLink => { $tocLink.classList.remove('active'); });\n this.util.forEach($tocLiElements, $tocLi => { $tocLi.classList.remove('has-active'); });\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)\n || (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 initMath() {\n if (this.config.math) renderMathInElement(document.body, this.config.math);\n }\n\n initMermaid() {\n const $mermaidElements = document.getElementsByClassName('mermaid');\n if ($mermaidElements.length) {\n mermaid.initialize({startOnLoad: false, theme: 'null'});\n this.util.forEach($mermaidElements, $mermaid => {\n mermaid.mermaidAPI.render('svg-' + $mermaid.id, this.data[$mermaid.id], svgCode => {\n $mermaid.insertAdjacentHTML('afterbegin', svgCode);\n }, $mermaid);\n });\n }\n }\n\n initEcharts() {\n this._echartsOnSwitchTheme = this._echartsOnSwitchTheme || (() => {\n this._echartsArr = this._echartsArr || [];\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].dispose();\n }\n this._echartsArr = [];\n this.util.forEach(document.getElementsByClassName('echarts'), $echarts => {\n const chart = echarts.init($echarts, this.isDark ? 'dark' : 'macarons', {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: .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(new mapboxgl.GeolocateControl({\n positionOptions: {\n enableHighAccuracy: true,\n },\n showUserLocation: true,\n trackUserLocation: true,\n }), 'bottom-right');\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 ? typeitConfig.speed : 100;\n const cursorSpeed = typeitConfig.cursorSpeed ? typeitConfig.cursorSpeed : 1000;\n const cursorChar = typeitConfig.cursorChar ? typeitConfig.cursorChar : '|';\n Object.values(typeitConfig.data).forEach(group => {\n const typeone = (i) => {\n const id = group[i];\n const instance = new TypeIt(`#${id}`, {\n strings: this.data[id],\n speed: speed,\n lifeLike: true,\n cursorSpeed: cursorSpeed,\n cursorChar: cursorChar,\n waitUntilVisible: true,\n afterComplete: () => {\n if (i === group.length - 1) {\n if (typeitConfig.duration >= 0) window.setTimeout(() => {\n instance.destroy();\n }, typeitConfig.duration);\n return;\n }\n instance.destroy();\n typeone(i + 1);\n },\n }).go();\n };\n typeone(0);\n });\n }\n }\n\n initComment() {\n if (this.config.comment && this.config.comment.gitalk) {\n this.config.comment.gitalk.body = decodeURI(window.location.href);\n const gitalk = new Gitalk(this.config.comment.gitalk.body);\n gitalk.render('gitalk');\n }\n if (this.config.comment && this.config.comment.valine) new Valine(this.config.comment.valine);\n }\n\n initSmoothScroll() {\n if (SmoothScroll) new SmoothScroll('[href^=\"#\"]', { speed: 300, speedAsDuration: true, header: '#header-desktop' });\n }\n\n onScroll() {\n const $headers = [];\n if (this.config.headerMode.desktop === 'auto') $headers.push(document.getElementById('header-desktop'));\n if (this.config.headerMode.mobile === 'auto') $headers.push(document.getElementById('header-mobile'));\n if (document.getElementById('comments')) {\n const $viewComments = document.getElementById('view-comments');\n $viewComments.href = `#comments`;\n $viewComments.style.display = 'block';\n }\n const $fixedButtons = document.getElementById('fixed-buttons');\n const MIN_SCROLL = 20;\n window.addEventListener('scroll', () => {\n this.newScrollTop = this.util.getScrollTop();\n const scroll = this.newScrollTop - this.oldScrollTop;\n this.util.forEach($headers, $header => {\n if (scroll > MIN_SCROLL) {\n $header.classList.remove('fadeInDown');\n this.util.animateCSS($header, ['fadeOutUp', 'faster'], true);\n } else if (scroll < - MIN_SCROLL) {\n $header.classList.remove('fadeOutUp');\n this.util.animateCSS($header, ['fadeInDown', 'faster'], true);\n }\n });\n if (this.newScrollTop > MIN_SCROLL) {\n if (scroll > MIN_SCROLL) {\n $fixedButtons.classList.remove('fadeIn');\n this.util.animateCSS($fixedButtons, ['fadeOut', 'faster'], true);\n } else if (scroll < - MIN_SCROLL) {\n $fixedButtons.style.display = 'block';\n $fixedButtons.classList.remove('fadeOut');\n this.util.animateCSS($fixedButtons, ['fadeIn', 'faster'], true);\n }\n } else {\n $fixedButtons.style.display = 'none';\n }\n for (let event of this.scrollEventSet) event();\n this.oldScrollTop = this.newScrollTop;\n }, false);\n }\n\n onResize() {\n window.addEventListener('resize', () => {\n if (!this._resizeTimeout) {\n this._resizeTimeout = window.setTimeout(() => {\n this._resizeTimeout = null;\n for (let event of this.resizeEventSet) event();\n this.initToc();\n this.initMermaid();\n this.initSearch();\n }, 100);\n }\n }, false);\n }\n\n onClickMask() {\n document.getElementById('mask').addEventListener('click', () => {\n for (let event of this.clickMaskEventSet) event();\n document.body.classList.remove('blur');\n }, false);\n }\n\n init() {\n this.initSVGIcon();\n this.initTwemoji();\n this.initMenuMobile();\n this.initSwitchTheme();\n this.initSearch();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initToc();\n this.initComment();\n this.initSmoothScroll();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n\n this.onScroll();\n this.onResize();\n this.onClickMask();\n }\n}\n\nconst themeInit = () => {\n const theme = new Theme();\n theme.init();\n};\n\nif (document.readyState !== 'loading') {\n themeInit();\n} else {\n document.addEventListener('DOMContentLoaded', themeInit, false);\n}\n"]} \ No newline at end of file diff --git a/assets/lib/VERSION b/assets/lib/VERSION index 7551adb78..74bbbfa93 100644 --- a/assets/lib/VERSION +++ b/assets/lib/VERSION @@ -14,7 +14,7 @@ lg-thumbnail.js@1.1.0 https://github.com/sachinchoolur/lg-thumbnail.js lg-zoom.js@1.0.1 https://github.com/sachinchoolur/lg-zoom.js clipboard.js@2.0.6 https://github.com/zenorocha/clipboard.js sharer.js@0.4.0 https://github.com/ellisonleao/sharer.js -typeit@6.5.1 https://github.com/alexmacarthur/typeit +typeit@7.0.4 https://github.com/alexmacarthur/typeit katex@0.11.1 https://katex.org/ mermaid@8.5.0 https://github.com/knsv/mermaid echarts@4.7.0 https://echarts.apache.org/ diff --git a/assets/lib/typeit/typeit.min.js b/assets/lib/typeit/typeit.min.js index 35055def9..7d2477230 100644 --- a/assets/lib/typeit/typeit.min.js +++ b/assets/lib/typeit/typeit.min.js @@ -1,10 +1,8 @@ /** - * * TypeIt - The most versatile animated typing utility on the planet. * Author: Alex MacArthur (https://macarthur.me) - * Version: v6.5.1 + * Version: v7.0.4 * License: GPL-2.0 * URL: https://typeitjs.com - * */ - !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).TypeIt=e()}(this,(function(){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}var e={strings:[],speed:100,cursor:!0,cursorChar:"|",cursorSpeed:1e3,deleteSpeed:null,lifeLike:!0,breakLines:!0,startDelay:250,startDelete:!1,nextStringDelay:750,loop:!1,loopDelay:750,html:!0,waitUntilVisible:!1,beforeString:function(){},afterString:function(){},beforeStep:function(){},afterStep:function(){},afterComplete:function(){}};function n(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.insert=function(e,n){t.waiting.splice(e,0,n)},this.add=function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Array.isArray(e[0])?(t.waiting=t.waiting.concat(e),t):(t.waiting[n?"unshift":"push"](e),t)},this.delete=function(e){return t.waiting.splice(e,1),t},this.reset=function(){return t.waiting=t.executed.concat(t.waiting),t.executed=[],t},this.executed=[],this.waiting=e,!e.length&&n&&this.add(n)}var i=function(t){return document.createElement(t)};function r(t,e){return Math.abs(Math.random()*(t+e-(t-e))+(t-e))}function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=i("style");n.id=e,n.appendChild(document.createTextNode(t)),document.head.appendChild(n)}function u(t){return t.map((function(t){return t.replace(/<\!--.*?-->/g,"")}))}var s=function(t){return["textarea","input"].indexOf(t.tagName.toLowerCase())>-1},a=function(t){return Array.isArray(t)?t:[t]},c=function(t){return Array.from(t)},f=function(t,e){var n=t.nextSibling;return!!n&&!n.isEqualNode(e)};var l=function(e,n){var r=n;if(s(e))e.value="".concat(e.value).concat(r);else{var o=c(e.childNodes).filter((function(t){return t.classList&&t.classList.contains("ti-cursor")}));if(o=o.length?o[0]:null,"object"===t(n)&&!(n instanceof HTMLElement)){var u=n.ancestorTree.slice(0).reverse().join(" "),a=c(e.querySelectorAll("".concat(u))),l=(a=a.filter((function(t){return!o||!o.isEqualNode(t)}))).length>0?a[a.length-1]:null;if(l&&function(t,e){if(!t)return!1;for(var n=!1,i=[],r=t;!n;)i.push(f(r,e)),(r=r.parentNode)&&r.hasAttribute&&!r.hasAttribute("data-typeit-id")||(n=!0);return!i.some((function(t){return t}))}(l,o))e=l,r=n.content;else if(r=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=i(t);return e.forEach((function(t){r.setAttribute(t.name,t.value)})),r.innerHTML=n,r}(n.ancestorTree[0],n.attributes,n.content),n.ancestorTree.length>1){var h=c(e.querySelectorAll(n.ancestorTree[1]));e=h[h.length-1]}}r="object"===t(r)?r:document.createTextNode(r),e.insertBefore(r,o&&e.hasAttribute("data-typeit-id")?o:null)}},h=function(t){var e=[];return e.concat.apply(e,t)},p=function(t){var e=document.implementation.createHTMLDocument("");return e.body.innerHTML=t,e.body},d=function(t){return c(t.childNodes).map((function(t){return 3===t.nodeType?c(t.nodeValue):t}))},v=function(t,e,n){return{ancestorTree:e,attributes:(i=t,c(i.attributes).map((function(t){return{name:t.name,value:t.nodeValue}}))),content:n};var i},y=function(t,e){var n=v(t,e,""),i=d(t).map((function(n,i){return Array.isArray(n)?n.map((function(n,i){return v(t,e,n)})):n}));return i.unshift(n),h(i)},m=function(t){return t instanceof HTMLElement&&"BR"!==t.tagName},g=function t(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=e.map((function(t){if(m(t)){if(!n)return c(t.childNodes);for(var e=t.parentNode,i=[t.tagName];["BODY","HTML"].indexOf(e.tagName)<0;)i.push(e.tagName),e=e.parentNode;return y(t,i)}return t}));return(i=h(i)).some((function(t){return m(t)}))?t(i,n):i};function b(t){var e=p(t),n=d(e);return g(n)}function w(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e?b(t):c(t)}var q=function(t,e){e?t.value="":t.querySelector(".ti-cursor")&&(t.innerHTML="")},S=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=!Array.isArray(t),r=t.length;return(t=i?new Array(t).fill(0):t).map((function(t,o){if(i)return e;var u=[e,t];return n&&(0===o&&u.push({isFirst:!0}),o+1===r&&u.push({isLast:!0})),u}))},A=function(t){t.parentNode.removeChild(t)},T=function(t){return 3!==t.nodeType&&"BR"!==t.tagName&&!t.firstChild},N=function(t){return t.some((function(t){return T(t)}))},L=function(t){for(var e=c(t.querySelectorAll("*")),n=N(e);e.length&&n;){var i=!1;e.forEach((function(t){T(t)&&(A(t),i=!0)})),i&&(e=c(t.querySelectorAll("*"))),n=N(e)}return e},$=function(t){return Array.isArray(t)||(t=[t/2,t/2]),{before:t[0],after:t[1],total:t[0]+t[1]}};function x(t,e,n){var i=(e=null!==e?e:t/3)/2;return n?[r(t,t/2),r(e,i)]:[t,e]}function D(t,e,n){return n?e?e(t):t:(t&&t.then||(t=Promise.resolve(t)),e?t.then(e):t)}function E(t){return function(){for(var e=[],n=0;n0&&void 0!==arguments[0]?arguments[0]:{},h=f.typeIt,d=f.element,v=f.id,y=f.options,m=f.queue,T=void 0===m?[]:m,N=f.isAReset,k=void 0!==N&&N,j=function(){if(J)return c(r.$e.value);var t=c(r.$e.childNodes).filter((function(t){return!t.isEqualNode(Q)}));return g(t,!1)},B=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=r.opts.nextStringDelay;r.queue.insert(t,[r.pause,n.before]),r.queue.insert(t+e+1,[r.pause,n.after])},V=function(){if(J||!r.opts.cursor)return null;var t=i("span");return t.innerHTML=p(r.opts.cursorChar).innerHTML,t.className="ti-cursor",t.setAttribute("style","display:inline;position:relative;font:inherit;color:inherit;line-height:inherit;"),t},F=function(){Q&&(o("@keyframes blink-".concat(v," { 0% {opacity: 0} 49% {opacity: 0} 50% {opacity: 1} }[data-typeit-id='").concat(v,"'] .ti-cursor { animation: blink-").concat(v," ").concat(r.opts.cursorSpeed/1e3,"s infinite; }"),v),r.$e.appendChild(Q))};this.wait=E((function(t,e){return this.timeouts.push(setTimeout(t,e)),D()}));var U=function(){r.opts.strings.forEach((function(t,e){var n=w(t,r.opts.html);r.queue.add(S(n,r.type,!0));var o=r.queue.waiting.length;if(e+1!==r.opts.strings.length){if(r.opts.breakLines)return r.queue.add([r.type,i("BR")]),void B(o);r.queue.add(S(n,r.delete)),B(o,t.length)}}))},Y=function(t){r.queue.reset().delete(0).add([r.pause,t.before],!0);for(var e=0;e0&&void 0!==arguments[0]&&arguments[0];return new Promise((function(n,i){t.wait((function(){return n()}),e||t.opts.nextStringDelay.total)}))},this.reset=function(){return this.queue.reset(),new R({typeIt:h,element:this.$e,id:v,options:this.opts,queue:this.queue.waiting,isAReset:!0})},this.init=function(){var t=this;if(!this.status.started){if(F(),!this.opts.waitUntilVisible)return this.status.started=!0,this.fire();new IntersectionObserver((function(e,n){e.forEach((function(e){e.isIntersecting&&(t.fire(),n.unobserve(t.$e))}))}),{threshold:1}).observe(this.$e)}},this.fire=E((function(){var t=this,e=t.queue.waiting.slice();return I((function(){return z(O(e,(function(n){var i=e[n],r=[i,t.queue,h];if(t.status.frozen)throw new Error;return t.pace=x(t.opts.speed,t.opts.deleteSpeed,t.opts.lifeLike),H((function(){var e;if(i[2]&&i[2].isFirst)return C((e=t.opts).beforeString.apply(e,r))}),(function(){var e;return D((e=t.opts).beforeStep.apply(e,r),(function(){return D(i[0].call(t,i[1],i[2]),(function(){var e=t.queue.waiting.shift(),n=i[2]&&i[2].isPhantom;return P((function(){if(!n)return H((function(){var e;if(i[2]&&i[2].isLast)return C((e=t.opts).afterString.apply(e,r))}),(function(){var n;return D((n=t.opts).afterStep.apply(n,r),(function(){t.queue.executed.push(e)}))}))}))}))}))}))}),(function(){return!1})),(function(e){return t.status.completed=!0,D(t.opts.afterComplete(h),(function(){if(t.opts.loop){var e=t.opts.loopDelay?t.opts.loopDelay:t.opts.nextStringDelay;t.wait((function(){Y(e),t.fire()}),e.after)}}))}))}),M)})),this.type=function(e){var n=this;return"object"!==t(e)||e.content?new Promise((function(t){n.wait((function(){return l(n.$e,e),t()}),n.pace[0])})):(l(this.$e,e),Promise.resolve())},this.empty=E((function(){J?this.$e.value="":c(this.$e.childNodes).forEach((function(t){Q&&Q.isEqualNode(t)||A(t)}))})),this.delete=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return new Promise((function(n){t.wait((function(){var i=j();return i.length&&(J?t.$e.value=t.$e.value.slice(0,-1):A(i[i.length-1])),L(t.$e),e&&i.length-1>0?t.delete(!0).then((function(){return n()})):n()}),t.pace[1])}))},this.setOptions=E((function(t){this.opts=Object.assign({},this.opts,t)}));var J=s(d);this.status={started:!1,complete:!1,frozen:!1,destroyed:!1},this.$e=d,this.timeouts=[],this.opts=Object.assign({},e,y),this.opts.html=!J&&this.opts.html,this.opts.nextStringDelay=$(this.opts.nextStringDelay),this.opts.loopDelay=$(this.opts.loopDelay),this.queue=new n(T,[this.pause,this.opts.startDelay]),this.$e.setAttribute("data-typeit-id",v),o("[data-typeit-id]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}"),q(d,J);var K=a(this.opts.strings);K=G(K),this.opts.strings=u(K);var Q=V();this.opts.strings.length&&!k&&U()}return function(t,e){var n,r=this;this.instances=(n=t,"string"==typeof n?n=document.querySelectorAll(n):n.forEach||(n=[n]),c(n)).map((function(t){return new R({typeIt:r,element:t,id:Math.random().toString(36).substring(2,15),options:e,queue:[],isAReset:!1})}));var o=function(t){r.instances.forEach((function(e){t.call(r,e)}))},u=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;o((function(i){var o="string"!=typeof t,u=o?t:i[t],s=S(n,[u,o?r:e]);i.queue.add(s)}))};this.is=function(t){return e=this.instances,n=t,i=!0,!!e.length&&!e.some((function(t){return t.status[n]!==i}));var e,n,i},this.freeze=function(){o((function(t){t.status.frozen=!0}))},this.unfreeze=function(){o((function(t){t.status.frozen&&(t.status.frozen=!1,t.fire())}))},this.type=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return o((function(e){var n=w(t,e.opts.html);e.queue.add(S(n,e.type,!0))})),this},this.delete=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return u("delete",null===t,null===t?1:t),this},this.pause=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return u("pause",t),this},this.break=function(){return u("type",i("BR")),this},this.options=function(t){return u("setOptions",t),this},this.exec=function(t){return u(t),this},this.destroy=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.instances=this.instances.map((function(e){if(e.timeouts.forEach((function(t){clearTimeout(t)})),e.timeouts=[],t){var n=e.isInput?null:e.$e.querySelector(".ti-cursor");n&&e.$e.removeChild(n)}return e.status.destroyed=!0,e}))},this.empty=function(){return u("empty"),this},this.reset=function(){return this.destroy(),this.instances=this.instances.map((function(t){return t.reset()})),this},this.go=function(){return o((function(t){t.init()})),this}}})); \ No newline at end of file +!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(n=n||self).TypeIt=t()}(this,(function(){"use strict";function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(t)}var t={strings:[],speed:100,cursor:!0,cursorChar:"|",cursorSpeed:1e3,deleteSpeed:null,lifeLike:!0,breakLines:!0,startDelay:250,startDelete:!1,nextStringDelay:750,loop:!1,loopDelay:750,html:!0,waitUntilVisible:!1,beforeString:function(){},afterString:function(){},beforeStep:function(){},afterStep:function(){},afterComplete:function(){}},e=function(n){return n.map((function(n){return void 0===n[1]&&n.push(null),void 0===n[2]&&n.push({}),n}))},r=function(n,t){return Object.assign({},n,t)},i=function(n){return Array.isArray(n)},o=function(n,t){return n[2]=r(n[2],t)||t,n},u=function(n,t){return i(n[0])?n.map((function(n){return o(n,t)})):o(n,t)},c=function(n,t,e,r){r=r||!1,e=e||{};var o=!i(n),c=n.length;return(n=o?new Array(n).fill(0):n).map((function(n,i){if(o)return t;var a=[t,n,e];return r&&(0===i&&(a=u(a,{isFirst:!0})),i+1===c&&(a=u(a,{isLast:!0}))),a}))};function a(n){this.insert=function(n,e){t.splice(n,0,e)},this.add=function(n,u,a){return n=i(n)?n:[n,null],a=a||!1,u=u||1,i(n[0])||(n=c(u,n)),n=e(n).map((function(n){return n[2]=r(n[2],{id:o}),o++,n})),t=a?n.concat(t):t.concat(n),this},this.set=function(n,e){t[n]=e},this.reset=function(){t=t.map((function(n){return n[2].executed=!1,n}))},this.getItems=function(){return(t=e(t)).filter((function(n){return!n[2].executed}))},this.setMeta=function(n,e){var i=t.findIndex((function(t){return t[2].id===n}));t[i][2]=r(t[i][2],e)};var t=[],o=0;this.add(n)}var f=function(n){return Array.from(n)},s=function(n){var t=[];return t.concat.apply(t,n)},l=function(n){var t=document.implementation.createHTMLDocument("");return t.body.innerHTML=n,t.body},d=function n(t,e,r){e=e||null,r=void 0!==r&&r;var i=f(t.childNodes).map((function(t){return 3===(e=t).nodeType||"BR"===e.tagName?t:n(t);var e}));return i=s(i),e&&(i=i.filter((function(n){return!e.contains(n)}))),r?i.reverse():i},p=function(n){return"BODY"===n.tagName},h=function(n,t){t=t||null;var e=n instanceof HTMLElement;return{node:t,isTopLevelText:(!t||p(t.parentNode))&&!e,isHTMLElement:e,content:n}};function v(n){var t,e=l(n);return t=d(e).map((function(n){return n.nodeValue?f(n.nodeValue).map((function(t){return h(t,n)})):h(n)})),s(t)}function y(n,t){return(t=void 0===t||t)?v(n):f(n).map((function(n){return h(n)}))}var m=function(n){return document.createElement(n)},g=function(n,t){var e=m("style");e.id=t||"",e.appendChild(document.createTextNode(n)),document.head.appendChild(e)},b=function(n){return i(n)||(n=[n/2,n/2]),{before:n[0],after:n[1],total:n[0]+n[1]}},S=function(n,t){return Math.abs(Math.random()*(n+t-(n-t))+(n-t))};var N=function(n){return["textarea","input"].indexOf(n.tagName.toLowerCase())>-1},T=function(n,t){var e=t.querySelectorAll("*");return[t].concat(f(e).reverse()).find((function(t){return t.cloneNode().outerHTML===n.outerHTML}))},L=function(n,t,e,r){e=e||null;var i=t.isHTMLElement,o=i?t.content:document.createTextNode(t.content);if(N(n))n.value="".concat(n.value).concat(t.content);else{if(!t.isTopLevelText&&!i){var u=t.node.parentNode,c=T(u.cloneNode(),n);if(function(n,t){if(!n)return!1;var e=n.nextSibling;return!e||e.isEqualNode(t)}(c,e))n=c;else if((o=u.cloneNode()).innerText=t.content,!p(u.parentNode)){for(var a=u.parentNode,f=a.cloneNode(),s=T(f,n);!s&&!p(a);)f.innerHTML=o.outerHTML,o=f,f=a.parentNode.cloneNode(),a=a.parentNode,s=T(f,n);n=s||n}}var l=d(n,e,!0)[r-1],h=l?l.parentNode:n;h.insertBefore(o,h.contains(e)?e:null)}},M=function(n){var t;return null==n||null===(t=n.parentNode)||void 0===t?void 0:t.removeChild(n)};var x=function(n,t,e){var r,i="string"==typeof n,o=!1,u=-1*n;return i&&(u=(r="END"===n.toUpperCase())?-1:1,o=r?t+u>0:t+u-1&&i[o]&&(r.style[o]=i[o]);return r.style.cssText};function D(n,t,e){return e?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}function H(n){return function(){for(var t=[],e=0;et.length?t.length:i)-1];(n=o?o.parentNode:n).insertBefore(e,o||null)}}(W,z(),fn,_),A((function(){if(r.isString&&r.canKeepMoving)return C(n(r.numberOfSteps>0?"START":"END"))}),(function(){return t()}))})),Z[0])}))},K=function(n){return new Promise((function(t){q((function(){return L(W,n,fn,_),t()}),Z[0])}))},Q=H((function(n){en=r(en,n)})),Y=H((function(){X?W.value="":z().forEach((function(n){M(n)}))})),G=function n(t){return t=!0===t,new Promise((function(e){q(H((function(){var r=!1,i=z();return i.length&&(X?W.value=W.value.slice(0,-1):M(i[_])),f(W.querySelectorAll("*")).forEach((function(n){if(!n.innerHTML&&"BR"!==n.tagName){for(var t=n;1===t.parentNode.childNodes.length&&t.parentNode.childNodes[0].isEqualNode(t);)t=t.parentNode;M(t)}})),A((function(){if(t&&i.length-1>0)return D(n(!0),(function(){return r=!0,e()}))}),(function(n){return r?n:e()}))})),Z[1])}))};this.break=function(n){return p([K,h(m("BR"))],1,n)},this.delete=function(n,t){var e=T(t);return p([e[0]].concat([].concat(Array(Math.abs(n)||1)).fill().map((function(){return[G,!n,nn]})),[e[1]]),1,t)},this.empty=function(){return p(Y,1,arguments)},this.exec=function(n,t){var e=T(t);return p([e[0],[n,null],e[1]],1,t)},this.move=function(n,t){var e=x(n,_,z()),r=T(t),i=e.isString?n:Math.sign(n);return p([r[0]].concat([].concat(Array(Math.abs(n)||1)).fill().map((function(){return[F,i,nn]})),[r[1]]),1,t)},this.options=function(n){return p([Q,n],1,n)},this.pause=function(n,t){return p([U,n],1,t)},this.type=function(n,t){var e=T(t),r=y(n,en.html),i=[e[0]].concat(c(r,K,nn,!0),[e[1]]);return p(i,1,t)},this.is=function(n){return tn[n]},this.destroy=function(n){n=void 0===n||n,$.forEach((function(n){clearTimeout(n)})),$=[],n&&M(fn),tn.destroyed=!0},this.freeze=function(){tn.frozen=!0},this.unfreeze=function(){tn.frozen=!1,V()},this.reset=function(){for(var n in!this.is("destroyed")&&this.destroy(),an.reset(),_=0,tn)tn[n]=!1;return X?W.value="":W.innerHTML="",this},this.go=function(){return tn.started?this:(I(),en.waitUntilVisible?(function(n,t){new IntersectionObserver((function(e,r){e.forEach((function(e){e.isIntersecting&&(t(),r.unobserve(n))}))}),{threshold:1}).observe(n)}(W,V.bind(this)),this):(V(),this))},this.getQueue=function(){return an},this.getOptions=function(){return en},this.getElement=function(){return W};var J,W="string"==typeof(J=e)?document.querySelector(J):J,X=N(W),Z=[],$=[],_=0,nn={freezeCursor:!0},tn={started:!1,completed:!1,frozen:!1,destroyed:!1},en=r(t,o);en=r(en,{html:!X&&en.html,nextStringDelay:b(en.nextStringDelay),loopDelay:b(en.loopDelay)});var rn,on,un,cn=Math.random().toString().substring(2,9),an=new a([U,en.startDelay]);W.setAttribute("data-typeit-id",cn),g("[data-typeit-id]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}[data-typeit-id]"),en.strings=(un=en.strings,rn=i(un)?un:[un],(on=function(n){return n.innerHTML.replace(/<\!--.*?-->/g,"").trim()}(W))?(W.innerHTML="",en.startDelete?(v(on).forEach((function(n){L(W,n,fn,_)})),an.add([G,!0]),B(1),rn):[on.trim()].concat(rn)):rn);var fn=function(){if(X||!en.cursor)return null;var n=m("span");return n.innerHTML=l(en.cursorChar).innerHTML,n.className="ti-cursor",n.style.cssText="display:inline;".concat(w(W)),n}();en.strings.length&&function(){var n=en.strings.filter((function(n){return!!n}));n.forEach((function(t,e){var r=y(t,en.html);an.add(c(r,K,nn,!0));var i=an.getItems().length;if(e+1!==n.length){if(en.breakLines){var o=h(m("BR"));return an.add([K,o,nn]),void B(i)}an.add(c(r,G,nn)),B(i,t.length)}}))}()}})); diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 6767b9e57..3ecc63067 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -656,7 +656,7 @@ enableEmoji = true # 你可以在名称 (允许 HTML 格式) 之后添加其他信息, 例如图标 post = "" # whether to use typeit animation for title name - # 是否为副标题显示打字机动画 + # 是否为标题显示打字机动画 typeit = false # Footer config @@ -914,6 +914,22 @@ enableEmoji = true width = 800 height = 600 + # TypeIt config + # TypeIt 配置 + [params.typeit] + # typing speed between each step (measured in milliseconds) + # 每一步的打字速度 (单位是毫秒) + speed = 100 + # blinking speed of the cursor (measured in milliseconds) + # 光标的闪烁速度 (单位是毫秒) + cursorSpeed = 1000 + # character used for the cursor (HTML format is supported) + # 光标的字符 (支持 HTML 格式) + cursorChar = "|" + # cursor duration after typing finishing (measured in milliseconds, "-1" means unlimited) + # 打字结束之后光标的持续时间 (单位是毫秒, "-1" 代表无限大) + duration = -1 + # Site verification code for Google/Bing/Yandex/Pinterest/Baidu # 网站验证代码,用于 Google/Bing/Yandex/Pinterest/Baidu [params.verification] @@ -980,7 +996,7 @@ enableEmoji = true clipboardJS = "" # sharer.js@0.4.0 https://github.com/ellisonleao/sharer.js sharerJS = "" - # typeit@6.5.1 https://github.com/alexmacarthur/typeit + # typeit@7.0.4 https://github.com/alexmacarthur/typeit typeitJS = "" # katex@0.11.1 https://katex.org/ katexCSS = "" diff --git a/exampleSite/content/posts/theme-documentation-basics.en.md b/exampleSite/content/posts/theme-documentation-basics.en.md index f35f8d9ae..32db5b6fb 100644 --- a/exampleSite/content/posts/theme-documentation-basics.en.md +++ b/exampleSite/content/posts/theme-documentation-basics.en.md @@ -254,7 +254,7 @@ Please open the code block below to view the complete sample configuration :(far pre = "" # you can add extra information after the name (HTML format is supported), such as icons post = "" - # whether to use typeit animation for title name + # {{< version 0.2.5 >}} whether to use typeit animation for title name typeit = false # Footer config @@ -317,7 +317,8 @@ Please open the code block below to view the complete sample configuration :(far enable = true # special amount of posts in each home posts page paginate = 6 - # {{< version 0.2.0 deleted >}} default behavior when you don't set "hiddenFromHomePage" in front matter + # {{< version 0.2.0 deleted >}} replaced with hiddenFromHomePage in params.page + # default behavior when you don't set "hiddenFromHomePage" in front matter defaultHiddenFromHomePage = false # Social config about the author @@ -550,6 +551,17 @@ Please open the code block below to view the complete sample configuration :(far width = 800 height = 600 + # {{< version 0.2.5 >}} TypeIt config + [params.typeit] + # typing speed between each step (measured in milliseconds) + speed = 100 + # blinking speed of the cursor (measured in milliseconds) + cursorSpeed = 1000 + # character used for the cursor (HTML format is supported) + cursorChar = "|" + # cursor duration after typing finishing (measured in milliseconds, "-1" means unlimited) + duration = -1 + # Site verification code config for Google/Bing/Yandex/Pinterest/Baidu [params.verification] google = "" @@ -610,7 +622,7 @@ Please open the code block below to view the complete sample configuration :(far clipboardJS = "" # {{< link "https://github.com/ellisonleao/sharer.js" "sharer.js" >}}@0.4.0 sharerJS = "" - # {{< link "https://github.com/alexmacarthur/typeit" "typeit" >}}@6.5.1 + # {{< link "https://github.com/alexmacarthur/typeit" "typeit" >}}@7.0.4 typeitJS = "" # {{< link "https://github.com/KaTeX/KaTeX" "katex" >}}@0.11.1 katexCSS = "" diff --git a/exampleSite/content/posts/theme-documentation-basics.fr.md b/exampleSite/content/posts/theme-documentation-basics.fr.md index 7be524591..a16679886 100644 --- a/exampleSite/content/posts/theme-documentation-basics.fr.md +++ b/exampleSite/content/posts/theme-documentation-basics.fr.md @@ -259,7 +259,7 @@ Please open the code block below to view the complete sample configuration :(far pre = "" # you can add extra information after the name (HTML format is supported), such as icons post = "" - # whether to use typeit animation for title name + # {{< version 0.2.5 >}} whether to use typeit animation for title name typeit = false # Footer config @@ -322,7 +322,8 @@ Please open the code block below to view the complete sample configuration :(far enable = true # special amount of posts in each home posts page paginate = 6 - # {{< version 0.2.0 deleted >}} default behavior when you don't set "hiddenFromHomePage" in front matter + # {{< version 0.2.0 deleted >}} replaced with hiddenFromHomePage in params.page + # default behavior when you don't set "hiddenFromHomePage" in front matter defaultHiddenFromHomePage = false # Social config about the author @@ -555,6 +556,17 @@ Please open the code block below to view the complete sample configuration :(far width = 800 height = 600 + # {{< version 0.2.5 >}} TypeIt config + [params.typeit] + # typing speed between each step (measured in milliseconds) + speed = 100 + # blinking speed of the cursor (measured in milliseconds) + cursorSpeed = 1000 + # character used for the cursor (HTML format is supported) + cursorChar = "|" + # cursor duration after typing finishing (measured in milliseconds, "-1" means unlimited) + duration = -1 + # Site verification code config for Google/Bing/Yandex/Pinterest/Baidu [params.verification] google = "" @@ -615,7 +627,7 @@ Please open the code block below to view the complete sample configuration :(far clipboardJS = "" # {{< link "https://github.com/ellisonleao/sharer.js" "sharer.js" >}}@0.4.0 sharerJS = "" - # {{< link "https://github.com/alexmacarthur/typeit" "typeit" >}}@6.5.1 + # {{< link "https://github.com/alexmacarthur/typeit" "typeit" >}}@7.0.4 typeitJS = "" # {{< link "https://github.com/KaTeX/KaTeX" "katex" >}}@0.11.1 katexCSS = "" diff --git a/exampleSite/content/posts/theme-documentation-basics.zh-cn.md b/exampleSite/content/posts/theme-documentation-basics.zh-cn.md index 54ed1a420..60e7f5d5f 100644 --- a/exampleSite/content/posts/theme-documentation-basics.zh-cn.md +++ b/exampleSite/content/posts/theme-documentation-basics.zh-cn.md @@ -257,7 +257,7 @@ hugo pre = "" # 你可以在名称 (允许 HTML 格式) 之后添加其他信息, 例如图标 post = "" - # 是否为副标题显示打字机动画 + # {{< version 0.2.5 >}} 是否为标题显示打字机动画 typeit = false # 页面底部信息配置 @@ -320,7 +320,8 @@ hugo enable = true # 主页每页显示文章数量 paginate = 6 - # {{< version 0.2.0 deleted >}} 当你没有在文章前置参数中设置 "hiddenFromHomePage" 时的默认行为 + # {{< version 0.2.0 deleted >}} 被 params.page 中的 hiddenFromHomePage 替代 + # 当你没有在文章前置参数中设置 "hiddenFromHomePage" 时的默认行为 defaultHiddenFromHomePage = false # 作者的社交信息设置 @@ -553,6 +554,17 @@ hugo width = 800 height = 600 + # {{< version 0.2.5 >}} TypeIt 配置 + [params.typeit] + # 每一步的打字速度 (单位是毫秒) + speed = 100 + # 光标的闪烁速度 (单位是毫秒) + cursorSpeed = 1000 + # 光标的字符 (支持 HTML 格式) + cursorChar = "|" + # 打字结束之后光标的持续时间 (单位是毫秒, "-1" 代表无限大) + duration = -1 + # 网站验证代码,用于 Google/Bing/Yandex/Pinterest/Baidu [params.verification] google = "" @@ -613,7 +625,7 @@ hugo clipboardJS = "" # {{< link "https://github.com/ellisonleao/sharer.js" "sharer.js" >}}@0.4.0 sharerJS = "" - # {{< link "https://github.com/alexmacarthur/typeit" "typeit" >}}@6.5.1 + # {{< link "https://github.com/alexmacarthur/typeit" "typeit" >}}@7.0.4 typeitJS = "" # {{< link "https://github.com/KaTeX/KaTeX" "katex" >}}@0.11.1 katexCSS = "" @@ -1010,7 +1022,7 @@ defaultContentLanguage = "zh-cn" * `lunr`: 简单, 无需同步 `index.json`, 没有 `contentLength` 的限制, 但占用带宽大且性能低 (特别是中文需要一个较大的分词依赖库) * `algolia`: 高性能并且占用带宽低, 但需要同步 `index.json` 且有 `contentLength` 的限制 -{{< version 0.2.3 >}} 文章内容被 `h2` 和 `h3` HTML 标签切分来提供查询效果并且基本实现全文搜索. +{{< version 0.2.3 >}} 文章内容被 `h2` 和 `h3` HTML 标签切分来提高查询效果并且基本实现全文搜索. `contentLength` 用来限制 `h2` 和 `h3` HTML 标签开头的内容部分的最大长度. {{< /admonition >}} diff --git a/layouts/partials/assets.html b/layouts/partials/assets.html index 8f95a2fc3..cad8f1fe9 100644 --- a/layouts/partials/assets.html +++ b/layouts/partials/assets.html @@ -8,30 +8,30 @@ {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} {{- /* Search */ -}} -{{- if .Site.Params.search.enable -}} +{{- if .Site.Params.search | and .Site.Params.search.enable -}} + {{- $search := .Site.Params.search -}} {{- $source := $cdn.autocompleteJS | default "lib/autocomplete/autocomplete.min.js" -}} {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} - {{- $searchConfig := dict "noResultsFound" (T "noResultsFound") -}} - {{- if eq .Site.Params.search.type "lunr" -}} + {{- $config = dict "maxResultLength" $search.maxResultLength "snippetLength" $search.snippetLength "highlightTag" $search.highlightTag "noResultsFound" (T "noResultsFound") | dict "search" | merge $config -}} + {{- if eq $search.type "lunr" -}} {{- with .Site.Home.OutputFormats.Get "json" -}} - {{- $searchConfig = dict "type" "lunr" "lunrIndexURL" .RelPermalink | merge $searchConfig -}} + {{- $config = dict "type" "lunr" "lunrIndexURL" .RelPermalink | dict "search" | merge $config -}} {{- end -}} {{- $source := $cdn.lunrJS | default "lib/lunr/lunr.min.js" -}} {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} {{- if ne .Language.Lang "en" -}} - {{- $searchConfig = T "lunrLanguageCode" | dict "lunrLanguageCode" | merge $searchConfig -}} + {{- $config = T "lunrLanguageCode" | dict "lunrLanguageCode" | dict "search" | merge $config -}} {{- if eq .Language.Lang "zh-cn" -}} - {{- $searchConfig = dict "lunrSegmentitURL" (resources.Get "lib/lunr/lunr.segmentit.js").RelPermalink | merge $searchConfig -}} + {{- $config = dict "lunrSegmentitURL" (resources.Get "lib/lunr/lunr.segmentit.js").RelPermalink | dict "search" | merge $config -}} {{- end -}} {{- dict "source" "lib/lunr/lunr.stemmer.support.js" "minify" true "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} {{- dict "source" (T "lunrLanguageLib") "minify" true "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} {{- end -}} - {{- else if eq .Site.Params.search.type "algolia" -}} + {{- else if eq $search.type "algolia" -}} {{- $source := $cdn.algoliasearchJS | default "lib/algoliasearch/algoliasearch-lite.umd.min.js" -}} {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} - {{- $searchConfig = dict "type" "algolia" "algoliaIndex" .Site.Params.search.algolia.index "algoliaAppID" .Site.Params.search.algolia.appID "algoliaSearchKey" .Site.Params.search.algolia.searchKey | merge $searchConfig -}} + {{- $config = dict "type" "algolia" "algoliaIndex" $search.algolia.index "algoliaAppID" $search.algolia.appID "algoliaSearchKey" $search.algolia.searchKey | dict "search" | merge $config -}} {{- end -}} - {{- $config = dict "search" $searchConfig | merge $config -}} {{- end -}} {{- /* lazysizes */ -}} @@ -59,8 +59,7 @@ {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} {{- $source := $cdn.lightgalleryZoomJS | default "lib/lightgallery/lg-zoom.min.js" -}} {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} - {{- $lightGalleryConfig := dict "selector" ".lightgallery" "speed" 400 "hideBarsDelay" 2000 "thumbnail" true "exThumbImage" "data-thumbnail" "thumbWidth" 80 "thumbContHeight" 80 "actualSize" false -}} - {{- $config = dict "lightGallery" $lightGalleryConfig | merge $config -}} + {{- $config = dict "selector" ".lightgallery" "speed" 400 "hideBarsDelay" 2000 "thumbnail" true "exThumbImage" "data-thumbnail" "thumbWidth" 80 "thumbContHeight" 80 "actualSize" false | dict "lightGallery" | merge $config -}} {{- $styleArr := (.Scratch.Get "this").styleArr | default slice -}} {{- $styleArr | append ".lg-toolbar .lg-icon::after { color: #999; }" | .Scratch.SetInMap "this" "styleArr" -}} {{- end -}} @@ -83,24 +82,21 @@ {{- /* TypeIt */ -}} {{- with (.Scratch.Get "this").typeitMap -}} + {{- $typeit := $.Site.Params.typeit -}} {{- $source := $cdn.typeitJS | default "lib/typeit/typeit.min.js" -}} {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} - {{- $typeitConfig := slice -}} - {{- range $key, $val := . -}} - {{- $typeitConfig = $typeitConfig | append (slice $val) -}} - {{- end -}} - {{- $config = dict "typeit" $typeitConfig | merge $config -}} + {{- $config = dict "speed" $typeit.speed "cursorSpeed" $typeit.cursorSpeed "cursorChar" $typeit.cursorChar "duration" $typeit.duration "data" . | dict "typeit" | merge $config -}} {{- end -}} {{- /* KaTeX */ -}} {{- if $params.math.enable -}} + {{- $math := $params.math -}} {{- $source := $cdn.katexCSS | default "lib/katex/katex.min.css" -}} {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/stylesheet.html" -}} {{- $source := $cdn.katexJS | default "lib/katex/katex.min.js" -}} {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} {{- $source := $cdn.katexAutoRenderJS | default "lib/katex/auto-render.min.js" -}} {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} - {{- $math := $params.math -}} {{- if $math.copyTex -}} {{- $source := $cdn.katexCopyTexCSS | default "lib/katex/copy-tex.min.css" -}} {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/stylesheet.html" -}} @@ -111,7 +107,6 @@ {{- $source := $cdn.katexMhchemJS | default "lib/katex/mhchem.min.js" -}} {{- dict "source" $source "fingerprint" $fingerprint | dict "scratch" $.Scratch "data" | partial "scratch/script.html" -}} {{- end -}} - {{- $mathConfig := dict "strict" false -}} {{- $delimiters := slice (dict "left" "$$" "right" "$$" "display" true) (dict "left" "\\[" "right" "\\]" "display" true) -}} {{- if and $math.blockLeftDelimiter $math.blockRightDelimiter -}} {{- $delimiters = $delimiters | append (dict "left" $math.blockLeftDelimiter "right" $math.blockRightDelimiter "display" true) -}} @@ -120,8 +115,7 @@ {{- if and $math.inlineLeftDelimiter $math.inlineRightDelimiter -}} {{- $delimiters = $delimiters | append (dict "left" $math.inlineRightDelimiter "right" $math.inlineRightDelimiter "display" false) -}} {{- end -}} - {{- $mathConfig = dict "delimiters" $delimiters | merge $mathConfig -}} - {{- $config = dict "math" $mathConfig | merge $config -}} + {{- $config = dict "strict" false "delimiters" $delimiters | dict "math" | merge $config -}} {{- end -}} {{- /* mermaid */ -}} @@ -182,7 +176,7 @@ {{- /* Polyfill.io */ -}} -{{- dict "source" "https://polyfill.io/v3/polyfill.min.js?features=Element.prototype.closest%2CrequestAnimationFrame%2CCustomEvent%2CPromise%2CObject.entries%2CObject.assign%2CObject.values%2Cfetch%2CElement.prototype.after%2CArray.prototype.fill%2CIntersectionObserver%2CArray.from%2CArray.prototype.find%2CMath.sign" | partial "plugin/script.html" -}} +{{- dict "source" "https://polyfill.io/v3/polyfill.min.js?features=html5shiv%2CElement.prototype.closest%2CrequestAnimationFrame%2CCustomEvent%2CPromise%2CObject.entries%2CObject.assign%2CObject.values%2Cfetch%2CElement.prototype.after%2CArray.prototype.fill%2CIntersectionObserver%2CArray.from%2CArray.prototype.find%2CMath.sign" | partial "plugin/script.html" -}} {{- range (.Scratch.Get "this").script -}} {{- partial "plugin/script.html" . -}} diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 51a97c6cf..09a920a42 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -15,7 +15,7 @@ {{- dict $id (slice $id) | dict "typeitMap" | merge ($.Scratch.Get "this") | $.Scratch.Set "this" -}} {{- else -}} - {{- .name -}} + {{- .name -}} {{- end -}} {{- with .post -}} {{ . | safeHTML }} @@ -99,7 +99,7 @@ {{- dict $id (slice $id) | dict "typeitMap" | merge ($.Scratch.Get "this") | $.Scratch.Set "this" -}} {{- else -}} - {{- .name -}} + {{- .name -}} {{- end -}} {{- with .post -}} {{ . | safeHTML }} diff --git a/resources/_gen/assets/scss/css/style.template.scss_788c4a23da05f3aa3e03b28055a2e5f9.content b/resources/_gen/assets/scss/css/style.template.scss_788c4a23da05f3aa3e03b28055a2e5f9.content index 0cf574b8e..8b9c4822f 100644 --- a/resources/_gen/assets/scss/css/style.template.scss_788c4a23da05f3aa3e03b28055a2e5f9.content +++ b/resources/_gen/assets/scss/css/style.template.scss_788c4a23da05f3aa3e03b28055a2e5f9.content @@ -1,3 +1,3 @@ -@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap");html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background-color:rgba(53,166,247,0.25)}[theme=dark] ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;word-wrap:break-word;overflow-wrap:break-word;scrollbar-color:auto}body[theme=dark]{color:#a9a9b3;background-color:#292a2d}input::-ms-clear{display:none}a,a::before,a::after{text-decoration:none;color:#161209}[theme=dark] a,[theme=dark] a::before,[theme=dark] a::after{color:#a9a9b3}a:active,a:hover{color:#2d96bd}[theme=dark] a:active,[theme=dark] a:hover{color:#fff}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#a9a9b3;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}[theme=dark] .details i.details-icon{color:#5d5d5f}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open i.details-icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.details.open .details-content{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;-webkit-border-radius:2rem;-moz-border-radius:2rem;border-radius:2rem}.blur .fixed-button{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}[theme=dark] .fixed-button{color:#5d5d5f;background:#252627}[theme=dark] .fixed-button:hover,[theme=dark] .fixed-button:active{color:#a9a9b3}#back-to-top{display:block;bottom:1.5rem}#view-comments{bottom:4.5rem}img{-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;"}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.page{position:relative;max-width:800px;width:60%;margin:0 auto;padding-top:3.5rem}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.85rem;padding-left:.8rem;list-style:none}.toc .toc-content ul a:first-child::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}[theme=dark] .toc .toc-content ul a:first-child::before{color:#55bde2}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f5f5f5}.toc ruby rt{color:#a9a9b3}[theme=dark] .toc ruby{background:#272C34}[theme=dark] .toc ruby rt{color:#5d5d5f}#toc-auto{display:block;position:absolute;width:9999px;padding:0 .8rem;border-left:4px solid #f0f0f0;word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:0;visibility:hidden}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}[theme=dark] #toc-auto{border-left-color:#363636}#toc-auto .toc-title{margin:.8rem 0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:.625rem 0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}[theme=dark] #toc-auto .toc-content a.active{color:#55bde2}#toc-auto .toc-content a.active::before{color:#ef3982}[theme=dark] #toc-auto .toc-content a.active::before{color:#bdebfc}#toc-static{display:none;margin:.8rem 0}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 .75rem;background:#e6e6e6}[theme=dark] #toc-static .toc-title{background:#1a1d23}#toc-static .toc-content{background-color:#f5f5f5}#toc-static .toc-content>nav>ul{margin:0;padding:.4rem 1rem .4rem 1.8rem}[theme=dark] #toc-static .toc-content{background-color:#272C34}#toc-static.open .toc-title{background:#ededed}[theme=dark] #toc-static.open .toc-title{background:#20252b}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}[theme=dark] .single .post-meta{color:#5d5d5f}.single .post-meta a,.single .post-meta a::before,.single .post-meta a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-meta a,[theme=dark] .single .post-meta a::before,[theme=dark] .single .post-meta a::after{color:#a9a9b3}.single .post-meta a:active,.single .post-meta a:hover{color:#ef3982}[theme=dark] .single .post-meta a:active,[theme=dark] .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{margin:.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single .content>h2{font-size:1.5rem}.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}[theme=dark] .single .content h2,[theme=dark] .single .content h3,[theme=dark] .single .content h4,[theme=dark] .single .content h5,[theme=dark] .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}[theme=dark] .single .content>h2>.header-mark::before,[theme=dark] .single .content>h3>.header-mark::before,[theme=dark] .single .content>h4>.header-mark::before,[theme=dark] .single .content>h5>.header-mark::before,[theme=dark] .single .content>h6>.header-mark::before{color:#55bde2}.single .content>h2>.header-mark::before{content:"#"}.single .content p{margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}[theme=dark] .single .content b,[theme=dark] .single .content strong{color:#ddd}.single .content a,.single .content a::before,.single .content a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .content a,[theme=dark] .single .content a::before,[theme=dark] .single .content a::after{color:#55bde2}.single .content a:active,.single .content a:hover{color:#ef3982}[theme=dark] .single .content a:active,[theme=dark] .single .content a:hover{color:#bdebfc}.single .content a{word-wrap:break-word;overflow-wrap:break-word}[theme=dark] .single .content a b,[theme=dark] .single .content a strong{color:#55bde2}.single .content [theme=dark] a:hover b,.single .content [theme=dark] a:hover strong{color:#bdebfc}.single .content ul,.single .content ol{margin:.5rem 0;padding-left:2.5rem}.single .content ul{list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}[theme=dark] .single .content ruby{background:#272C34}[theme=dark] .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}[theme=dark] .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}[theme=dark] .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}[theme=dark] .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px solid #e8e8e8}[theme=dark] .single .content .table-wrapper>table th,[theme=dark] .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content figure{margin:.5rem;text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{-o-object-fit:none;object-fit:none;font-family:"object-fit: none;"}.single .content blockquote{display:block;border-left:0.5rem solid #6bd6fd;background-color:rgba(107,214,253,0.2);padding:.25rem .75rem;margin:1rem 0}[theme=dark] .single .content blockquote{border-left-color:#59c5ec;background-color:rgba(89,197,236,0.2)}.single .content .footnotes{color:#a9a9b3}[theme=dark] .single .content .footnotes{color:#5d5d5f}.single .content .footnotes p{margin:.25rem 0}.single .content code{display:inline-block;max-width:100%;padding:0 .4rem;word-wrap:break-word;overflow-wrap:break-word;-webkit-line-break:anywhere;-ms-line-break:anywhere;line-break:anywhere;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content code{color:#E5BF78}.single .content pre{margin:0;padding:.25rem 0 .25rem .5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.single .content pre code{padding:0}.single .content pre img{min-height:1em;max-height:1.2em;vertical-align:text-bottom}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}[theme=dark] .single .content code,[theme=dark] .single .content pre,[theme=dark] .single .content .highlight table,[theme=dark] .single .content .highlight tr,[theme=dark] .single .content .highlight td{background:#272C34}.single .content .highlight,.single .content .gist{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight{line-height:1.4em;margin:.5rem 0}.single .content .highlight>.chroma{position:relative}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;color:#9c9c9c;background:#e1e1e1}[theme=dark] .single .content .highlight>.chroma .code-header{color:#b1b0b0;background:#1a1d23}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:.4rem}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:.2rem;content:'Code'}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-cs .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"LaTeX"}.single .content .highlight>.chroma .code-header.language-less .code-title::after{content:"Less"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Lisp"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Makefile"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"Markdown"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"Scss"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Shell"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"Vue"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .lntd:first-child{min-width:1.6rem;text-align:right}.single .content .highlight>.chroma .lntd:last-child{width:100%}.single .content .highlight>.chroma .lntd:last-child pre{min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}.single .content .highlight>.chroma .ln{padding-right:.75rem}.single .content .highlight>.chroma .hl{display:block;background-color:#dcdcdc}[theme=dark] .single .content .highlight>.chroma .hl{background-color:#1c2025}.single .content .highlight>.chroma .ln,.single .content .highlight>.chroma .lnt{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .ln,[theme=dark] .single .content .highlight>.chroma .lnt{color:#5d5d5f}.single .content .highlight>.chroma .arrow{padding:0 .2rem;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .ellipses{padding:.4rem}.single .content .highlight>.chroma .copy{display:none;padding:.4rem}.single .content .highlight>.chroma .copy:hover{cursor:pointer;color:#2d96bd}[theme=dark] .single .content .highlight>.chroma .copy:hover{color:#fff}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma.open .code-header{background:#ededed}[theme=dark] .single .content .highlight>.chroma.open .code-header{background:#20252b}.single .content .highlight>.chroma.open .table-wrapper{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight .c,.single .content .highlight .ch,.single .content .highlight .cm,.single .content .highlight .c1,.single .content .highlight .cs,.single .content .highlight .cp,.single .content .highlight .cpf{font-style:italic}.single .content .highlight .gl{text-decoration:underline}.single .content .highlight .p{color:#a9a9b3}.single .content .highlight .k{color:#b501a9}.single .content .highlight .kc{color:#b501a9}.single .content .highlight .kd{color:#b501a9}.single .content .highlight .kn{color:#b501a9}.single .content .highlight .kp{color:#b501a9}.single .content .highlight .kr{color:#b501a9}.single .content .highlight .kt{color:#b501a9}.single .content .highlight .n{color:#333}.single .content .highlight .na{color:#2b77fa}.single .content .highlight .nb{color:#f74840}.single .content .highlight .bp{color:#f74840}.single .content .highlight .nc{color:#cb8100}.single .content .highlight .no{color:#2b77fa}.single .content .highlight .nd{color:#0086c1}.single .content .highlight .ni{color:#2b77fa}.single .content .highlight .ne{color:#2b77fa}.single .content .highlight .nf{color:#2b77fa}.single .content .highlight .fm{color:#1ccad6}.single .content .highlight .nl{color:#2b77fa}.single .content .highlight .nn{color:#2b77fa}.single .content .highlight .nx{color:#333}.single .content .highlight .py{color:#2b77fa}.single .content .highlight .nt{color:#2b77fa}.single .content .highlight .nv{color:#2b77fa}.single .content .highlight .vc{color:#2b77fa}.single .content .highlight .vg{color:#2b77fa}.single .content .highlight .vi{color:#2b77fa}.single .content .highlight .vm{color:#2b77fa}.single .content .highlight .l{color:#2aa198}.single .content .highlight .ld{color:#2aa198}.single .content .highlight .s{color:#24a443}.single .content .highlight .sa{color:#24a443}.single .content .highlight .sb{color:#24a443}.single .content .highlight .sc{color:#24a443}.single .content .highlight .dl{color:#24a443}.single .content .highlight .sd{color:#24a443}.single .content .highlight .s2{color:#24a443}.single .content .highlight .se{color:#24a443}.single .content .highlight .sh{color:#24a443}.single .content .highlight .si{color:#24a443}.single .content .highlight .sx{color:#24a443}.single .content .highlight .sr{color:#24a443}.single .content .highlight .s1{color:#24a443}.single .content .highlight .ss{color:#24a443}.single .content .highlight .m{color:#e2893c}.single .content .highlight .mb{color:#e2893c}.single .content .highlight .mf{color:#e2893c}.single .content .highlight .mh{color:#e2893c}.single .content .highlight .mi{color:#e2893c}.single .content .highlight .il{color:#e2893c}.single .content .highlight .mo{color:#e2893c}.single .content .highlight .o{color:#f19b04}.single .content .highlight .ow{color:#b501a9}.single .content .highlight .c{color:#a0a1a8}.single .content .highlight .ch{color:#a0a1a8}.single .content .highlight .cm{color:#a0a1a8}.single .content .highlight .c1{color:#a0a1a8}.single .content .highlight .cs{color:#a0a1a8}.single .content .highlight .cp{color:#a0a1a8}.single .content .highlight .cpf{color:#a0a1a8}.single .content .highlight .g{color:#e72d40}.single .content .highlight .gd{color:#e72d40}.single .content .highlight .ge{color:#e72d40}.single .content .highlight .gr{color:#e72d40}.single .content .highlight .gh{color:#e72d40}.single .content .highlight .gi{color:#e72d40}.single .content .highlight .go{color:#e72d40}.single .content .highlight .gp{color:#e72d40}.single .content .highlight .gs{color:#e72d40}.single .content .highlight .gu{color:#e72d40}.single .content .highlight .gt{color:#e72d40}.single .content .highlight .w{color:#bbb}[theme=dark] .single .content .highlight .p{color:#a9a9b3}[theme=dark] .single .content .highlight .k{color:#d371e3}[theme=dark] .single .content .highlight .kc{color:#d371e3}[theme=dark] .single .content .highlight .kd{color:#d371e3}[theme=dark] .single .content .highlight .kn{color:#d371e3}[theme=dark] .single .content .highlight .kp{color:#d371e3}[theme=dark] .single .content .highlight .kr{color:#d371e3}[theme=dark] .single .content .highlight .kt{color:#d371e3}[theme=dark] .single .content .highlight .n{color:#a9b2c0}[theme=dark] .single .content .highlight .na{color:#41b0f5}[theme=dark] .single .content .highlight .nb{color:#19b9c4}[theme=dark] .single .content .highlight .bp{color:#ecbf6f}[theme=dark] .single .content .highlight .nc{color:#ecbf6f}[theme=dark] .single .content .highlight .no{color:#41b0f5}[theme=dark] .single .content .highlight .nd{color:#ecbf6f}[theme=dark] .single .content .highlight .ni{color:#41b0f5}[theme=dark] .single .content .highlight .ne{color:#41b0f5}[theme=dark] .single .content .highlight .nf{color:#41b0f5}[theme=dark] .single .content .highlight .fm{color:#19b9c4}[theme=dark] .single .content .highlight .nl{color:#41b0f5}[theme=dark] .single .content .highlight .nn{color:#41b0f5}[theme=dark] .single .content .highlight .nx{color:#a9a9b3}[theme=dark] .single .content .highlight .py{color:#41b0f5}[theme=dark] .single .content .highlight .nt{color:#41b0f5}[theme=dark] .single .content .highlight .nv{color:#41b0f5}[theme=dark] .single .content .highlight .vc{color:#41b0f5}[theme=dark] .single .content .highlight .vg{color:#41b0f5}[theme=dark] .single .content .highlight .vi{color:#41b0f5}[theme=dark] .single .content .highlight .vm{color:#41b0f5}[theme=dark] .single .content .highlight .l{color:#2aa198}[theme=dark] .single .content .highlight .ld{color:#2aa198}[theme=dark] .single .content .highlight .s{color:#8cc570}[theme=dark] .single .content .highlight .sa{color:#8cc570}[theme=dark] .single .content .highlight .sb{color:#8cc570}[theme=dark] .single .content .highlight .sc{color:#8cc570}[theme=dark] .single .content .highlight .dl{color:#8cc570}[theme=dark] .single .content .highlight .sd{color:#8cc570}[theme=dark] .single .content .highlight .s2{color:#8cc570}[theme=dark] .single .content .highlight .se{color:#8cc570}[theme=dark] .single .content .highlight .sh{color:#8cc570}[theme=dark] .single .content .highlight .si{color:#8cc570}[theme=dark] .single .content .highlight .sx{color:#8cc570}[theme=dark] .single .content .highlight .sr{color:#8cc570}[theme=dark] .single .content .highlight .s1{color:#8cc570}[theme=dark] .single .content .highlight .ss{color:#8cc570}[theme=dark] .single .content .highlight .m{color:#db985c}[theme=dark] .single .content .highlight .mb{color:#db985c}[theme=dark] .single .content .highlight .mf{color:#db985c}[theme=dark] .single .content .highlight .mh{color:#db985c}[theme=dark] .single .content .highlight .mi{color:#db985c}[theme=dark] .single .content .highlight .il{color:#db985c}[theme=dark] .single .content .highlight .mo{color:#db985c}[theme=dark] .single .content .highlight .o{color:#ecbf6f}[theme=dark] .single .content .highlight .ow{color:#d371e3}[theme=dark] .single .content .highlight .c{color:#7e848f}[theme=dark] .single .content .highlight .ch{color:#7e848f}[theme=dark] .single .content .highlight .cm{color:#7e848f}[theme=dark] .single .content .highlight .c1{color:#7e848f}[theme=dark] .single .content .highlight .cs{color:#7e848f}[theme=dark] .single .content .highlight .cp{color:#7e848f}[theme=dark] .single .content .highlight .cpf{color:#7e848f}[theme=dark] .single .content .highlight .g{color:#f16372}[theme=dark] .single .content .highlight .gd{color:#f16372}[theme=dark] .single .content .highlight .ge{color:#f16372}[theme=dark] .single .content .highlight .gr{color:#f16372}[theme=dark] .single .content .highlight .gh{color:#f16372}[theme=dark] .single .content .highlight .gi{color:#f16372}[theme=dark] .single .content .highlight .go{color:#f16372}[theme=dark] .single .content .highlight .gp{color:#f16372}[theme=dark] .single .content .highlight .gs{color:#f16372}[theme=dark] .single .content .highlight .gu{color:#f16372}[theme=dark] .single .content .highlight .gt{color:#f16372}[theme=dark] .single .content .highlight .w{color:#bbb}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a,.single .content .gist .gist-meta a::before,.single .content .gist .gist-meta a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .content .gist .gist-meta a,[theme=dark] .single .content .gist .gist-meta a::before,[theme=dark] .single .content .gist .gist-meta a::after{color:#55bde2}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ef3982}[theme=dark] .single .content .gist .gist-meta a:active,[theme=dark] .single .content .gist .gist-meta a:hover{color:#bdebfc}[theme=dark] .single .content .gist .gist-meta{background-color:#1c2025}[theme=dark] .single .content .gist .highlight{background:#141414}[theme=dark] .single .content .gist .blob-num,[theme=dark] .single .content .gist .blob-code-inner,[theme=dark] .single .content .gist .highlight,[theme=dark] .single .content .gist .pl-enm,[theme=dark] .single .content .gist .pl-ko,[theme=dark] .single .content .gist .pl-mo,[theme=dark] .single .content .gist .pl-mp1 .pl-sf,[theme=dark] .single .content .gist .pl-ms,[theme=dark] .single .content .gist .pl-pdc1,[theme=dark] .single .content .gist .pl-scp,[theme=dark] .single .content .gist .pl-smc,[theme=dark] .single .content .gist .pl-som,[theme=dark] .single .content .gist .pl-va,[theme=dark] .single .content .gist .pl-vpf,[theme=dark] .single .content .gist .pl-vpu,[theme=dark] .single .content .gist .pl-mdr{color:#aab1bf}[theme=dark] .single .content .gist .pl-mb,[theme=dark] .single .content .gist .pl-pdb{font-weight:700}[theme=dark] .single .content .gist .pl-c,[theme=dark] .single .content .gist .pl-c span,[theme=dark] .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}[theme=dark] .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}[theme=dark] .single .content .gist .pl-ef,[theme=dark] .single .content .gist .pl-en,[theme=dark] .single .content .gist .pl-enf,[theme=dark] .single .content .gist .pl-eoai,[theme=dark] .single .content .gist .pl-kos,[theme=dark] .single .content .gist .pl-mh .pl-pdh,[theme=dark] .single .content .gist .pl-mr{color:#61afef}[theme=dark] .single .content .gist .pl-ens,[theme=dark] .single .content .gist .pl-vi{color:#be5046}[theme=dark] .single .content .gist .pl-enti,[theme=dark] .single .content .gist .pl-mai .pl-sf,[theme=dark] .single .content .gist .pl-ml,[theme=dark] .single .content .gist .pl-sf,[theme=dark] .single .content .gist .pl-sr,[theme=dark] .single .content .gist .pl-sr .pl-sra,[theme=dark] .single .content .gist .pl-src,[theme=dark] .single .content .gist .pl-st,[theme=dark] .single .content .gist .pl-vo{color:#56b5c2}[theme=dark] .single .content .gist .pl-eoi,[theme=dark] .single .content .gist .pl-mri,[theme=dark] .single .content .gist .pl-pds,[theme=dark] .single .content .gist .pl-pse .pl-s1,[theme=dark] .single .content .gist .pl-s,[theme=dark] .single .content .gist .pl-s1{color:#97c279}[theme=dark] .single .content .gist .pl-k,[theme=dark] .single .content .gist .pl-kolp,[theme=dark] .single .content .gist .pl-mc,[theme=dark] .single .content .gist .pl-pde{color:#c578dd}[theme=dark] .single .content .gist .pl-mi,[theme=dark] .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}[theme=dark] .single .content .gist .pl-mp,[theme=dark] .single .content .gist .pl-stp{color:#818896}[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi,[theme=dark] .single .content .gist .pl-mdr{font-weight:400}[theme=dark] .single .content .gist .pl-mdht,[theme=dark] .single .content .gist .pl-mi1{color:#97c279;background:#020}[theme=dark] .single .content .gist .pl-md,[theme=dark] .single .content .gist .pl-mdhf{color:#df6b75;background:#200}[theme=dark] .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}[theme=dark] .single .content .gist .pl-ib{background:#df6b75}[theme=dark] .single .content .gist .pl-ii{background:#e0c184;color:#fff}[theme=dark] .single .content .gist .pl-iu{background:#e05151}[theme=dark] .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}[theme=dark] .single .content .gist .pl-c1,[theme=dark] .single .content .gist .pl-cn,[theme=dark] .single .content .gist .pl-e,[theme=dark] .single .content .gist .pl-eoa,[theme=dark] .single .content .gist .pl-eoac,[theme=dark] .single .content .gist .pl-eoac .pl-pde,[theme=dark] .single .content .gist .pl-kou,[theme=dark] .single .content .gist .pl-mm,[theme=dark] .single .content .gist .pl-mp .pl-s3,[theme=dark] .single .content .gist .pl-mq,[theme=dark] .single .content .gist .pl-s3,[theme=dark] .single .content .gist .pl-sok,[theme=dark] .single .content .gist .pl-sv,[theme=dark] .single .content .gist .pl-mb{color:#d19965}[theme=dark] .single .content .gist .pl-enc,[theme=dark] .single .content .gist .pl-entc,[theme=dark] .single .content .gist .pl-pse .pl-s2,[theme=dark] .single .content .gist .pl-s2,[theme=dark] .single .content .gist .pl-sc,[theme=dark] .single .content .gist .pl-smp,[theme=dark] .single .content .gist .pl-sr .pl-sre,[theme=dark] .single .content .gist .pl-stj,[theme=dark] .single .content .gist .pl-v,[theme=dark] .single .content .gist .pl-pdb{color:#e4bf7a}[theme=dark] .single .content .gist .pl-ent,[theme=dark] .single .content .gist .pl-entl,[theme=dark] .single .content .gist .pl-entm,[theme=dark] .single .content .gist .pl-mh,[theme=dark] .single .content .gist .pl-pdv,[theme=dark] .single .content .gist .pl-smi,[theme=dark] .single .content .gist .pl-sol,[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi{color:#df6b75}[theme=dark] .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:1rem 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{font-weight:bold;margin:0 -0.75rem;padding:.25rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{padding:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;position:absolute;top:.6rem;left:.4rem}.single .content .admonition i.details-icon{position:absolute;top:.6rem;right:.3rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.note.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.25)}.single .content .admonition.abstract.open .admonition-title{background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.25)}.single .content .admonition.info.open .admonition-title{background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.25)}.single .content .admonition.tip.open .admonition-title{background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.25)}.single .content .admonition.success.open .admonition-title{background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.25)}.single .content .admonition.question.open .admonition-title{background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.25)}.single .content .admonition.warning.open .admonition-title{background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.25)}.single .content .admonition.failure.open .admonition-title{background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.25)}.single .content .admonition.danger.open .admonition-title{background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.25)}.single .content .admonition.bug.open .admonition-title{background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.25)}.single .content .admonition.example.open .admonition-title{background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(159,159,159,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(159,159,159,0.1);background-color:rgba(159,159,159,0.25)}.single .content .admonition.quote.open .admonition-title{background-color:rgba(159,159,159,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content .echarts{margin:.5rem 0;text-align:center}.single .content .mapbox{margin:.5rem 0;padding:.5rem 0}.single .content meting-js{margin:.5rem 0}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}[theme=dark] .single .content hr{border-top:1px dashed #363636}.single .content kbd{display:inline-block;padding:.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content kbd{background-color:#292a2d;border:1px solid #363636;border-bottom-color:#363636;-webkit-box-shadow:inset 0 -1px 0 #363636;box-shadow:inset 0 -1px 0 #363636;color:#E5BF78}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all}.single .content .version{height:1.25em;vertical-align:text-bottom}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}[theme=dark] .single .post-footer .post-info{border-bottom:1px solid #363636}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a,.single .post-footer .post-info .post-info-line .post-info-mod a::before,.single .post-footer .post-info .post-info-line .post-info-mod a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a::before,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a::after{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a,.single .post-footer .post-info .post-info-line .post-info-md a::before,.single .post-footer .post-info .post-info-line .post-info-md a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a::before,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a::after{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .group-title{margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:.25rem 0 .25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}[theme=dark] .archive .archive-item-link{color:#a9a9b3}[theme=dark] .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{width:4em;text-align:right;color:#a9a9b3}[theme=dark] .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a,.archive .tag-cloud-tags a::before,.archive .tag-cloud-tags a::after{text-decoration:none;color:#161209}[theme=dark] .archive .tag-cloud-tags a,[theme=dark] .archive .tag-cloud-tags a::before,[theme=dark] .archive .tag-cloud-tags a::after{color:#a9a9b3}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2d96bd}[theme=dark] .archive .tag-cloud-tags a:active,[theme=dark] .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:#a9a9b3}[theme=dark] .archive .tag-cloud-tags a sup{color:#5d5d5f}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{display:inline-block;width:6rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem .2rem;font-size:1.6rem}.home .home-profile .social-links a *{vertical-align:text-bottom}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}[theme=dark] .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}[theme=dark] .home .summary{color:#a9a9b3;border-bottom:1px dashed #363636}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;"}.home .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;line-height:1.5;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2{font-size:1.125rem}.home .summary .content a,.home .summary .content a::before,.home .summary .content a::after{text-decoration:none;color:#2d96bd}[theme=dark] .home .summary .content a,[theme=dark] .home .summary .content a::before,[theme=dark] .home .summary .content a::after{color:#a9a9b3}.home .summary .content a:active,.home .summary .content a:hover{color:#ef3982}[theme=dark] .home .summary .content a:active,[theme=dark] .home .summary .content a:hover{color:#fff}.home .summary .content b,.home .summary .content strong{color:#a9a9b3}[theme=dark] .home .summary .content b,[theme=dark] .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a,.home .summary .post-footer a::before,.home .summary .post-footer a::after{text-decoration:none;color:#2d96bd}[theme=dark] .home .summary .post-footer a,[theme=dark] .home .summary .post-footer a::before,[theme=dark] .home .summary .post-footer a::after{color:#55bde2}.home .summary .post-footer a:active,.home .summary .post-footer a:hover{color:#ef3982}[theme=dark] .home .summary .post-footer a:active,[theme=dark] .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a,.home .summary .post-footer .post-tags a::before,.home .summary .post-footer .post-tags a::after{text-decoration:none;color:#161209}[theme=dark] .home .summary .post-footer .post-tags a,[theme=dark] .home .summary .post-footer .post-tags a::before,[theme=dark] .home .summary .post-footer .post-tags a::after{color:#a9a9b3}.home .summary .post-footer .post-tags a:active,.home .summary .post-footer .post-tags a:hover{color:#2d96bd}[theme=dark] .home .summary .post-footer .post-tags a:active,[theme=dark] .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}header{width:100%;z-index:150;background-color:#f8f8f8}[theme=dark] header{background-color:#252627}header .logo{min-height:1.5em;height:1.5em;vertical-align:text-bottom}header .logo,header .header-title-pre{padding-right:.25rem}header .header-title-post{padding-left:.25rem}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin-right:.5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.menu .menu-item{position:relative}.language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.language-select:hover{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:2.5rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:#f8f8f8;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}[theme=dark] .search input{background-color:#252627}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:.5rem;right:auto}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}[theme=dark] .open .search input,[theme=dark] .search.mobile input{color:#a9a9b3;background-color:#363636}[theme=dark] .open .search input::-webkit-input-placeholder,[theme=dark] .search.mobile input::-webkit-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-moz-placeholder,[theme=dark] .search.mobile input:-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input::-moz-placeholder,[theme=dark] .search.mobile input::-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-ms-input-placeholder,[theme=dark] .search.mobile input:-ms-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input::placeholder,[theme=dark] .search.mobile input::placeholder{color:#5d5d5f}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#a9a9b3}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#a9a9b3}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#a9a9b3}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#a9a9b3}.open .search input::placeholder,.search.mobile input::placeholder{color:#a9a9b3}.open .search .search-button,.search.mobile .search-button{color:#a9a9b3}[theme=dark] .open .search .search-button,[theme=dark] .search.mobile .search-button{color:#5d5d5f}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{padding:0 2rem 0 10vh}#header-desktop .header-wrapper .header-title{font-size:1.5rem}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-inner{float:right}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{border-left:1.5px solid #161209}[theme=dark] #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#363636}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.search{margin:0 -.5rem 0 0}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}[theme=dark] #header-desktop .header-wrapper .menu a.active{color:#fff}#header-desktop.open .header-wrapper .menu .menu-item.search{margin:0 .25rem 0 .5rem}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.5rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}[theme=dark] #header-mobile .header-container .header-wrapper .menu-toggle span{background:#a9a9b3}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{text-align:center;background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;padding-top:.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-button{top:0}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:.75rem}#header-mobile .header-container .menu .menu-item{display:block;line-height:2.5rem}#header-mobile .header-container .menu.active{display:block}[theme=dark] #header-mobile .header-container .menu{background:#252627;border-top-color:#363636}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:2rem;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}[theme=dark] .search-dropdown .dropdown-menu{background-color:#292a2d}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:.875rem;float:right;text-align:right;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e8e8e8}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#323843}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}[theme=dark] .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:.5rem 1rem;float:right;font-size:.8rem;color:#a9a9b3}.search-dropdown .dropdown-menu .search-footer [theme=dark]{color:#5d5d5f}.search-dropdown .dropdown-menu .search-footer a,.search-dropdown .dropdown-menu .search-footer a::before,.search-dropdown .dropdown-menu .search-footer a::after{text-decoration:none;color:#2d96bd}[theme=dark] .search-dropdown .dropdown-menu .search-footer a,[theme=dark] .search-dropdown .dropdown-menu .search-footer a::before,[theme=dark] .search-dropdown .dropdown-menu .search-footer a::after{color:#55bde2}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ef3982}[theme=dark] .search-dropdown .dropdown-menu .search-footer a:active,[theme=dark] .search-dropdown .dropdown-menu .search-footer a:hover{color:#bdebfc}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}footer .footer-container{font-size:.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .icp-br{display:none}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}[theme=dark] .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}[theme=dark] .pagination li:before,[theme=dark] .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}[theme=dark] .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1440px){.page{width:56%}}@media only screen and (max-width: 1200px){.page{width:52%}#header-desktop .header-wrapper{padding-right:1rem}.search-dropdown.desktop{right:1rem}}@media only screen and (max-width: 960px){#toc-auto{display:none}#toc-static{display:block}.page{width:80%}#header-desktop .header-wrapper{padding-left:1rem}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}body.blur{overflow:hidden}.page{width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}} +@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap");html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background-color:rgba(53,166,247,0.25)}[theme=dark] ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;word-wrap:break-word;overflow-wrap:break-word;scrollbar-color:auto}body[theme=dark]{color:#a9a9b3;background-color:#292a2d}input::-ms-clear{display:none}a,a::before,a::after{text-decoration:none;color:#161209}[theme=dark] a,[theme=dark] a::before,[theme=dark] a::after{color:#a9a9b3}a:active,a:hover{color:#2d96bd}[theme=dark] a:active,[theme=dark] a:hover{color:#fff}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#a9a9b3;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}[theme=dark] .details i.details-icon{color:#5d5d5f}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open i.details-icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.details.open .details-content{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;-webkit-border-radius:2rem;-moz-border-radius:2rem;border-radius:2rem}.blur .fixed-button{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}[theme=dark] .fixed-button{color:#5d5d5f;background:#252627}[theme=dark] .fixed-button:hover,[theme=dark] .fixed-button:active{color:#a9a9b3}#back-to-top{display:block;bottom:1.5rem}#view-comments{bottom:4.5rem}img{-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;"}.wrapper{display:flex;flex-direction:column;min-height:100vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding:0 1rem}.page{position:relative;max-width:800px;width:60%;margin:0 auto;padding-top:3.5rem}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.85rem;padding-left:.8rem;list-style:none}.toc .toc-content ul a:first-child::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}[theme=dark] .toc .toc-content ul a:first-child::before{color:#55bde2}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f5f5f5}.toc ruby rt{color:#a9a9b3}[theme=dark] .toc ruby{background:#272C34}[theme=dark] .toc ruby rt{color:#5d5d5f}#toc-auto{display:block;position:absolute;width:9999px;padding:0 .8rem;border-left:4px solid #f0f0f0;word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:0;visibility:hidden}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}[theme=dark] #toc-auto{border-left-color:#363636}#toc-auto .toc-title{margin:.8rem 0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:.625rem 0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}[theme=dark] #toc-auto .toc-content a.active{color:#55bde2}#toc-auto .toc-content a.active::before{color:#ef3982}[theme=dark] #toc-auto .toc-content a.active::before{color:#bdebfc}#toc-static{display:none;margin:.8rem 0}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 .75rem;background:#e6e6e6}[theme=dark] #toc-static .toc-title{background:#1a1d23}#toc-static .toc-content{background-color:#f5f5f5}#toc-static .toc-content>nav>ul{margin:0;padding:.4rem 1rem .4rem 1.8rem}[theme=dark] #toc-static .toc-content{background-color:#272C34}#toc-static.open .toc-title{background:#ededed}[theme=dark] #toc-static.open .toc-title{background:#20252b}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}[theme=dark] .single .post-meta{color:#5d5d5f}.single .post-meta a,.single .post-meta a::before,.single .post-meta a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-meta a,[theme=dark] .single .post-meta a::before,[theme=dark] .single .post-meta a::after{color:#a9a9b3}.single .post-meta a:active,.single .post-meta a:hover{color:#ef3982}[theme=dark] .single .post-meta a:active,[theme=dark] .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{margin:.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single .content>h2{font-size:1.5rem}.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}[theme=dark] .single .content h2,[theme=dark] .single .content h3,[theme=dark] .single .content h4,[theme=dark] .single .content h5,[theme=dark] .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}[theme=dark] .single .content>h2>.header-mark::before,[theme=dark] .single .content>h3>.header-mark::before,[theme=dark] .single .content>h4>.header-mark::before,[theme=dark] .single .content>h5>.header-mark::before,[theme=dark] .single .content>h6>.header-mark::before{color:#55bde2}.single .content>h2>.header-mark::before{content:"#"}.single .content p{margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}[theme=dark] .single .content b,[theme=dark] .single .content strong{color:#ddd}.single .content a,.single .content a::before,.single .content a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .content a,[theme=dark] .single .content a::before,[theme=dark] .single .content a::after{color:#55bde2}.single .content a:active,.single .content a:hover{color:#ef3982}[theme=dark] .single .content a:active,[theme=dark] .single .content a:hover{color:#bdebfc}.single .content a{word-wrap:break-word;overflow-wrap:break-word}[theme=dark] .single .content a b,[theme=dark] .single .content a strong{color:#55bde2}.single .content [theme=dark] a:hover b,.single .content [theme=dark] a:hover strong{color:#bdebfc}.single .content ul,.single .content ol{margin:.5rem 0;padding-left:2.5rem}.single .content ul{list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}[theme=dark] .single .content ruby{background:#272C34}[theme=dark] .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}[theme=dark] .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}[theme=dark] .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}[theme=dark] .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px solid #e8e8e8}[theme=dark] .single .content .table-wrapper>table th,[theme=dark] .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content figure{margin:.5rem;text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{-o-object-fit:none;object-fit:none;font-family:"object-fit: none;"}.single .content blockquote{display:block;border-left:0.5rem solid #6bd6fd;background-color:rgba(107,214,253,0.2);padding:.25rem .75rem;margin:1rem 0}[theme=dark] .single .content blockquote{border-left-color:#59c5ec;background-color:rgba(89,197,236,0.2)}.single .content .footnotes{color:#a9a9b3}[theme=dark] .single .content .footnotes{color:#5d5d5f}.single .content .footnotes p{margin:.25rem 0}.single .content code{display:inline-block;max-width:100%;padding:0 .4rem;word-wrap:break-word;overflow-wrap:break-word;-webkit-line-break:anywhere;-ms-line-break:anywhere;line-break:anywhere;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content code{color:#E5BF78}.single .content pre{margin:0;padding:.25rem 0 .25rem .5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.single .content pre code{padding:0}.single .content pre img{min-height:1em;max-height:1.2em;vertical-align:text-bottom}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}[theme=dark] .single .content code,[theme=dark] .single .content pre,[theme=dark] .single .content .highlight table,[theme=dark] .single .content .highlight tr,[theme=dark] .single .content .highlight td{background:#272C34}.single .content .highlight,.single .content .gist{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight{line-height:1.4em;margin:.5rem 0}.single .content .highlight>.chroma{position:relative}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;color:#9c9c9c;background:#e1e1e1}[theme=dark] .single .content .highlight>.chroma .code-header{color:#b1b0b0;background:#1a1d23}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:.4rem}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:.2rem;content:'Code'}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-cs .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"LaTeX"}.single .content .highlight>.chroma .code-header.language-less .code-title::after{content:"Less"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Lisp"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Makefile"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"Markdown"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"Scss"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Shell"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"Vue"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .lntd:first-child{min-width:1.6rem;text-align:right}.single .content .highlight>.chroma .lntd:last-child{width:100%}.single .content .highlight>.chroma .lntd:last-child pre{min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}.single .content .highlight>.chroma .ln{padding-right:.75rem}.single .content .highlight>.chroma .hl{display:block;background-color:#dcdcdc}[theme=dark] .single .content .highlight>.chroma .hl{background-color:#1c2025}.single .content .highlight>.chroma .ln,.single .content .highlight>.chroma .lnt{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .ln,[theme=dark] .single .content .highlight>.chroma .lnt{color:#5d5d5f}.single .content .highlight>.chroma .arrow{padding:0 .2rem;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .ellipses{padding:.4rem}.single .content .highlight>.chroma .copy{display:none;padding:.4rem}.single .content .highlight>.chroma .copy:hover{cursor:pointer;color:#2d96bd}[theme=dark] .single .content .highlight>.chroma .copy:hover{color:#fff}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma.open .code-header{background:#ededed}[theme=dark] .single .content .highlight>.chroma.open .code-header{background:#20252b}.single .content .highlight>.chroma.open .table-wrapper{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight .c,.single .content .highlight .ch,.single .content .highlight .cm,.single .content .highlight .c1,.single .content .highlight .cs,.single .content .highlight .cp,.single .content .highlight .cpf{font-style:italic}.single .content .highlight .gl{text-decoration:underline}.single .content .highlight .p{color:#a9a9b3}.single .content .highlight .k{color:#b501a9}.single .content .highlight .kc{color:#b501a9}.single .content .highlight .kd{color:#b501a9}.single .content .highlight .kn{color:#b501a9}.single .content .highlight .kp{color:#b501a9}.single .content .highlight .kr{color:#b501a9}.single .content .highlight .kt{color:#b501a9}.single .content .highlight .n{color:#333}.single .content .highlight .na{color:#2b77fa}.single .content .highlight .nb{color:#f74840}.single .content .highlight .bp{color:#f74840}.single .content .highlight .nc{color:#cb8100}.single .content .highlight .no{color:#2b77fa}.single .content .highlight .nd{color:#0086c1}.single .content .highlight .ni{color:#2b77fa}.single .content .highlight .ne{color:#2b77fa}.single .content .highlight .nf{color:#2b77fa}.single .content .highlight .fm{color:#1ccad6}.single .content .highlight .nl{color:#2b77fa}.single .content .highlight .nn{color:#2b77fa}.single .content .highlight .nx{color:#333}.single .content .highlight .py{color:#2b77fa}.single .content .highlight .nt{color:#2b77fa}.single .content .highlight .nv{color:#2b77fa}.single .content .highlight .vc{color:#2b77fa}.single .content .highlight .vg{color:#2b77fa}.single .content .highlight .vi{color:#2b77fa}.single .content .highlight .vm{color:#2b77fa}.single .content .highlight .l{color:#2aa198}.single .content .highlight .ld{color:#2aa198}.single .content .highlight .s{color:#24a443}.single .content .highlight .sa{color:#24a443}.single .content .highlight .sb{color:#24a443}.single .content .highlight .sc{color:#24a443}.single .content .highlight .dl{color:#24a443}.single .content .highlight .sd{color:#24a443}.single .content .highlight .s2{color:#24a443}.single .content .highlight .se{color:#24a443}.single .content .highlight .sh{color:#24a443}.single .content .highlight .si{color:#24a443}.single .content .highlight .sx{color:#24a443}.single .content .highlight .sr{color:#24a443}.single .content .highlight .s1{color:#24a443}.single .content .highlight .ss{color:#24a443}.single .content .highlight .m{color:#e2893c}.single .content .highlight .mb{color:#e2893c}.single .content .highlight .mf{color:#e2893c}.single .content .highlight .mh{color:#e2893c}.single .content .highlight .mi{color:#e2893c}.single .content .highlight .il{color:#e2893c}.single .content .highlight .mo{color:#e2893c}.single .content .highlight .o{color:#f19b04}.single .content .highlight .ow{color:#b501a9}.single .content .highlight .c{color:#a0a1a8}.single .content .highlight .ch{color:#a0a1a8}.single .content .highlight .cm{color:#a0a1a8}.single .content .highlight .c1{color:#a0a1a8}.single .content .highlight .cs{color:#a0a1a8}.single .content .highlight .cp{color:#a0a1a8}.single .content .highlight .cpf{color:#a0a1a8}.single .content .highlight .g{color:#e72d40}.single .content .highlight .gd{color:#e72d40}.single .content .highlight .ge{color:#e72d40}.single .content .highlight .gr{color:#e72d40}.single .content .highlight .gh{color:#e72d40}.single .content .highlight .gi{color:#e72d40}.single .content .highlight .go{color:#e72d40}.single .content .highlight .gp{color:#e72d40}.single .content .highlight .gs{color:#e72d40}.single .content .highlight .gu{color:#e72d40}.single .content .highlight .gt{color:#e72d40}.single .content .highlight .w{color:#bbb}[theme=dark] .single .content .highlight .p{color:#a9a9b3}[theme=dark] .single .content .highlight .k{color:#d371e3}[theme=dark] .single .content .highlight .kc{color:#d371e3}[theme=dark] .single .content .highlight .kd{color:#d371e3}[theme=dark] .single .content .highlight .kn{color:#d371e3}[theme=dark] .single .content .highlight .kp{color:#d371e3}[theme=dark] .single .content .highlight .kr{color:#d371e3}[theme=dark] .single .content .highlight .kt{color:#d371e3}[theme=dark] .single .content .highlight .n{color:#a9b2c0}[theme=dark] .single .content .highlight .na{color:#41b0f5}[theme=dark] .single .content .highlight .nb{color:#19b9c4}[theme=dark] .single .content .highlight .bp{color:#ecbf6f}[theme=dark] .single .content .highlight .nc{color:#ecbf6f}[theme=dark] .single .content .highlight .no{color:#41b0f5}[theme=dark] .single .content .highlight .nd{color:#ecbf6f}[theme=dark] .single .content .highlight .ni{color:#41b0f5}[theme=dark] .single .content .highlight .ne{color:#41b0f5}[theme=dark] .single .content .highlight .nf{color:#41b0f5}[theme=dark] .single .content .highlight .fm{color:#19b9c4}[theme=dark] .single .content .highlight .nl{color:#41b0f5}[theme=dark] .single .content .highlight .nn{color:#41b0f5}[theme=dark] .single .content .highlight .nx{color:#a9a9b3}[theme=dark] .single .content .highlight .py{color:#41b0f5}[theme=dark] .single .content .highlight .nt{color:#41b0f5}[theme=dark] .single .content .highlight .nv{color:#41b0f5}[theme=dark] .single .content .highlight .vc{color:#41b0f5}[theme=dark] .single .content .highlight .vg{color:#41b0f5}[theme=dark] .single .content .highlight .vi{color:#41b0f5}[theme=dark] .single .content .highlight .vm{color:#41b0f5}[theme=dark] .single .content .highlight .l{color:#2aa198}[theme=dark] .single .content .highlight .ld{color:#2aa198}[theme=dark] .single .content .highlight .s{color:#8cc570}[theme=dark] .single .content .highlight .sa{color:#8cc570}[theme=dark] .single .content .highlight .sb{color:#8cc570}[theme=dark] .single .content .highlight .sc{color:#8cc570}[theme=dark] .single .content .highlight .dl{color:#8cc570}[theme=dark] .single .content .highlight .sd{color:#8cc570}[theme=dark] .single .content .highlight .s2{color:#8cc570}[theme=dark] .single .content .highlight .se{color:#8cc570}[theme=dark] .single .content .highlight .sh{color:#8cc570}[theme=dark] .single .content .highlight .si{color:#8cc570}[theme=dark] .single .content .highlight .sx{color:#8cc570}[theme=dark] .single .content .highlight .sr{color:#8cc570}[theme=dark] .single .content .highlight .s1{color:#8cc570}[theme=dark] .single .content .highlight .ss{color:#8cc570}[theme=dark] .single .content .highlight .m{color:#db985c}[theme=dark] .single .content .highlight .mb{color:#db985c}[theme=dark] .single .content .highlight .mf{color:#db985c}[theme=dark] .single .content .highlight .mh{color:#db985c}[theme=dark] .single .content .highlight .mi{color:#db985c}[theme=dark] .single .content .highlight .il{color:#db985c}[theme=dark] .single .content .highlight .mo{color:#db985c}[theme=dark] .single .content .highlight .o{color:#ecbf6f}[theme=dark] .single .content .highlight .ow{color:#d371e3}[theme=dark] .single .content .highlight .c{color:#7e848f}[theme=dark] .single .content .highlight .ch{color:#7e848f}[theme=dark] .single .content .highlight .cm{color:#7e848f}[theme=dark] .single .content .highlight .c1{color:#7e848f}[theme=dark] .single .content .highlight .cs{color:#7e848f}[theme=dark] .single .content .highlight .cp{color:#7e848f}[theme=dark] .single .content .highlight .cpf{color:#7e848f}[theme=dark] .single .content .highlight .g{color:#f16372}[theme=dark] .single .content .highlight .gd{color:#f16372}[theme=dark] .single .content .highlight .ge{color:#f16372}[theme=dark] .single .content .highlight .gr{color:#f16372}[theme=dark] .single .content .highlight .gh{color:#f16372}[theme=dark] .single .content .highlight .gi{color:#f16372}[theme=dark] .single .content .highlight .go{color:#f16372}[theme=dark] .single .content .highlight .gp{color:#f16372}[theme=dark] .single .content .highlight .gs{color:#f16372}[theme=dark] .single .content .highlight .gu{color:#f16372}[theme=dark] .single .content .highlight .gt{color:#f16372}[theme=dark] .single .content .highlight .w{color:#bbb}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a,.single .content .gist .gist-meta a::before,.single .content .gist .gist-meta a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .content .gist .gist-meta a,[theme=dark] .single .content .gist .gist-meta a::before,[theme=dark] .single .content .gist .gist-meta a::after{color:#55bde2}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ef3982}[theme=dark] .single .content .gist .gist-meta a:active,[theme=dark] .single .content .gist .gist-meta a:hover{color:#bdebfc}[theme=dark] .single .content .gist .gist-meta{background-color:#1c2025}[theme=dark] .single .content .gist .highlight{background:#141414}[theme=dark] .single .content .gist .blob-num,[theme=dark] .single .content .gist .blob-code-inner,[theme=dark] .single .content .gist .highlight,[theme=dark] .single .content .gist .pl-enm,[theme=dark] .single .content .gist .pl-ko,[theme=dark] .single .content .gist .pl-mo,[theme=dark] .single .content .gist .pl-mp1 .pl-sf,[theme=dark] .single .content .gist .pl-ms,[theme=dark] .single .content .gist .pl-pdc1,[theme=dark] .single .content .gist .pl-scp,[theme=dark] .single .content .gist .pl-smc,[theme=dark] .single .content .gist .pl-som,[theme=dark] .single .content .gist .pl-va,[theme=dark] .single .content .gist .pl-vpf,[theme=dark] .single .content .gist .pl-vpu,[theme=dark] .single .content .gist .pl-mdr{color:#aab1bf}[theme=dark] .single .content .gist .pl-mb,[theme=dark] .single .content .gist .pl-pdb{font-weight:700}[theme=dark] .single .content .gist .pl-c,[theme=dark] .single .content .gist .pl-c span,[theme=dark] .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}[theme=dark] .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}[theme=dark] .single .content .gist .pl-ef,[theme=dark] .single .content .gist .pl-en,[theme=dark] .single .content .gist .pl-enf,[theme=dark] .single .content .gist .pl-eoai,[theme=dark] .single .content .gist .pl-kos,[theme=dark] .single .content .gist .pl-mh .pl-pdh,[theme=dark] .single .content .gist .pl-mr{color:#61afef}[theme=dark] .single .content .gist .pl-ens,[theme=dark] .single .content .gist .pl-vi{color:#be5046}[theme=dark] .single .content .gist .pl-enti,[theme=dark] .single .content .gist .pl-mai .pl-sf,[theme=dark] .single .content .gist .pl-ml,[theme=dark] .single .content .gist .pl-sf,[theme=dark] .single .content .gist .pl-sr,[theme=dark] .single .content .gist .pl-sr .pl-sra,[theme=dark] .single .content .gist .pl-src,[theme=dark] .single .content .gist .pl-st,[theme=dark] .single .content .gist .pl-vo{color:#56b5c2}[theme=dark] .single .content .gist .pl-eoi,[theme=dark] .single .content .gist .pl-mri,[theme=dark] .single .content .gist .pl-pds,[theme=dark] .single .content .gist .pl-pse .pl-s1,[theme=dark] .single .content .gist .pl-s,[theme=dark] .single .content .gist .pl-s1{color:#97c279}[theme=dark] .single .content .gist .pl-k,[theme=dark] .single .content .gist .pl-kolp,[theme=dark] .single .content .gist .pl-mc,[theme=dark] .single .content .gist .pl-pde{color:#c578dd}[theme=dark] .single .content .gist .pl-mi,[theme=dark] .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}[theme=dark] .single .content .gist .pl-mp,[theme=dark] .single .content .gist .pl-stp{color:#818896}[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi,[theme=dark] .single .content .gist .pl-mdr{font-weight:400}[theme=dark] .single .content .gist .pl-mdht,[theme=dark] .single .content .gist .pl-mi1{color:#97c279;background:#020}[theme=dark] .single .content .gist .pl-md,[theme=dark] .single .content .gist .pl-mdhf{color:#df6b75;background:#200}[theme=dark] .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}[theme=dark] .single .content .gist .pl-ib{background:#df6b75}[theme=dark] .single .content .gist .pl-ii{background:#e0c184;color:#fff}[theme=dark] .single .content .gist .pl-iu{background:#e05151}[theme=dark] .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}[theme=dark] .single .content .gist .pl-c1,[theme=dark] .single .content .gist .pl-cn,[theme=dark] .single .content .gist .pl-e,[theme=dark] .single .content .gist .pl-eoa,[theme=dark] .single .content .gist .pl-eoac,[theme=dark] .single .content .gist .pl-eoac .pl-pde,[theme=dark] .single .content .gist .pl-kou,[theme=dark] .single .content .gist .pl-mm,[theme=dark] .single .content .gist .pl-mp .pl-s3,[theme=dark] .single .content .gist .pl-mq,[theme=dark] .single .content .gist .pl-s3,[theme=dark] .single .content .gist .pl-sok,[theme=dark] .single .content .gist .pl-sv,[theme=dark] .single .content .gist .pl-mb{color:#d19965}[theme=dark] .single .content .gist .pl-enc,[theme=dark] .single .content .gist .pl-entc,[theme=dark] .single .content .gist .pl-pse .pl-s2,[theme=dark] .single .content .gist .pl-s2,[theme=dark] .single .content .gist .pl-sc,[theme=dark] .single .content .gist .pl-smp,[theme=dark] .single .content .gist .pl-sr .pl-sre,[theme=dark] .single .content .gist .pl-stj,[theme=dark] .single .content .gist .pl-v,[theme=dark] .single .content .gist .pl-pdb{color:#e4bf7a}[theme=dark] .single .content .gist .pl-ent,[theme=dark] .single .content .gist .pl-entl,[theme=dark] .single .content .gist .pl-entm,[theme=dark] .single .content .gist .pl-mh,[theme=dark] .single .content .gist .pl-pdv,[theme=dark] .single .content .gist .pl-smi,[theme=dark] .single .content .gist .pl-sol,[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi{color:#df6b75}[theme=dark] .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:1rem 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{font-weight:bold;margin:0 -0.75rem;padding:.25rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{padding:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;position:absolute;top:.6rem;left:.4rem}.single .content .admonition i.details-icon{position:absolute;top:.6rem;right:.3rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.note.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.25)}.single .content .admonition.abstract.open .admonition-title{background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.25)}.single .content .admonition.info.open .admonition-title{background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.25)}.single .content .admonition.tip.open .admonition-title{background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.25)}.single .content .admonition.success.open .admonition-title{background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.25)}.single .content .admonition.question.open .admonition-title{background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.25)}.single .content .admonition.warning.open .admonition-title{background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.25)}.single .content .admonition.failure.open .admonition-title{background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.25)}.single .content .admonition.danger.open .admonition-title{background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.25)}.single .content .admonition.bug.open .admonition-title{background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.25)}.single .content .admonition.example.open .admonition-title{background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(159,159,159,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(159,159,159,0.1);background-color:rgba(159,159,159,0.25)}.single .content .admonition.quote.open .admonition-title{background-color:rgba(159,159,159,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content .echarts{margin:.5rem 0;text-align:center}.single .content .mapbox{margin:.5rem 0;padding:.5rem 0}.single .content meting-js{margin:.5rem 0}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}[theme=dark] .single .content hr{border-top:1px dashed #363636}.single .content kbd{display:inline-block;padding:.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content kbd{background-color:#292a2d;border:1px solid #363636;border-bottom-color:#363636;-webkit-box-shadow:inset 0 -1px 0 #363636;box-shadow:inset 0 -1px 0 #363636;color:#E5BF78}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all}.single .content .version{height:1.25em;vertical-align:text-bottom}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}[theme=dark] .single .post-footer .post-info{border-bottom:1px solid #363636}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a,.single .post-footer .post-info .post-info-line .post-info-mod a::before,.single .post-footer .post-info .post-info-line .post-info-mod a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a::before,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a::after{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a,.single .post-footer .post-info .post-info-line .post-info-md a::before,.single .post-footer .post-info .post-info-line .post-info-md a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a::before,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a::after{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .group-title{margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:.25rem 0 .25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}[theme=dark] .archive .archive-item-link{color:#a9a9b3}[theme=dark] .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{width:4em;text-align:right;color:#a9a9b3}[theme=dark] .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a,.archive .tag-cloud-tags a::before,.archive .tag-cloud-tags a::after{text-decoration:none;color:#161209}[theme=dark] .archive .tag-cloud-tags a,[theme=dark] .archive .tag-cloud-tags a::before,[theme=dark] .archive .tag-cloud-tags a::after{color:#a9a9b3}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2d96bd}[theme=dark] .archive .tag-cloud-tags a:active,[theme=dark] .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:#a9a9b3}[theme=dark] .archive .tag-cloud-tags a sup{color:#5d5d5f}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{display:inline-block;width:6rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem .2rem;font-size:1.6rem}.home .home-profile .social-links a *{vertical-align:text-bottom}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}[theme=dark] .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}[theme=dark] .home .summary{color:#a9a9b3;border-bottom:1px dashed #363636}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;"}.home .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;line-height:1.5;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2{font-size:1.125rem}.home .summary .content a,.home .summary .content a::before,.home .summary .content a::after{text-decoration:none;color:#2d96bd}[theme=dark] .home .summary .content a,[theme=dark] .home .summary .content a::before,[theme=dark] .home .summary .content a::after{color:#a9a9b3}.home .summary .content a:active,.home .summary .content a:hover{color:#ef3982}[theme=dark] .home .summary .content a:active,[theme=dark] .home .summary .content a:hover{color:#fff}.home .summary .content b,.home .summary .content strong{color:#a9a9b3}[theme=dark] .home .summary .content b,[theme=dark] .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a,.home .summary .post-footer a::before,.home .summary .post-footer a::after{text-decoration:none;color:#2d96bd}[theme=dark] .home .summary .post-footer a,[theme=dark] .home .summary .post-footer a::before,[theme=dark] .home .summary .post-footer a::after{color:#55bde2}.home .summary .post-footer a:active,.home .summary .post-footer a:hover{color:#ef3982}[theme=dark] .home .summary .post-footer a:active,[theme=dark] .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a,.home .summary .post-footer .post-tags a::before,.home .summary .post-footer .post-tags a::after{text-decoration:none;color:#161209}[theme=dark] .home .summary .post-footer .post-tags a,[theme=dark] .home .summary .post-footer .post-tags a::before,[theme=dark] .home .summary .post-footer .post-tags a::after{color:#a9a9b3}.home .summary .post-footer .post-tags a:active,.home .summary .post-footer .post-tags a:hover{color:#2d96bd}[theme=dark] .home .summary .post-footer .post-tags a:active,[theme=dark] .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}header{width:100%;z-index:150;background-color:#f8f8f8}[theme=dark] header{background-color:#252627}header .logo{min-height:1.5em;height:1.5em;vertical-align:text-bottom}header .logo,header .header-title-pre{padding-right:.25rem}header .header-title-post{padding-left:.25rem}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin-right:.5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.menu .menu-item{position:relative}.language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.language-select:hover{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:2.5rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:#f8f8f8;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}[theme=dark] .search input{background-color:#252627}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:.5rem;right:auto}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}[theme=dark] .open .search input,[theme=dark] .search.mobile input{color:#a9a9b3;background-color:#363636}[theme=dark] .open .search input::-webkit-input-placeholder,[theme=dark] .search.mobile input::-webkit-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-moz-placeholder,[theme=dark] .search.mobile input:-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input::-moz-placeholder,[theme=dark] .search.mobile input::-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-ms-input-placeholder,[theme=dark] .search.mobile input:-ms-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input::placeholder,[theme=dark] .search.mobile input::placeholder{color:#5d5d5f}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#a9a9b3}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#a9a9b3}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#a9a9b3}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#a9a9b3}.open .search input::placeholder,.search.mobile input::placeholder{color:#a9a9b3}.open .search .search-button,.search.mobile .search-button{color:#a9a9b3}[theme=dark] .open .search .search-button,[theme=dark] .search.mobile .search-button{color:#5d5d5f}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{padding:0 2rem 0 10vh}#header-desktop .header-wrapper .header-title{font-size:1.5rem}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-inner{float:right}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{border-left:1.5px solid #161209}[theme=dark] #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#363636}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.search{margin:0 -.5rem 0 0}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}[theme=dark] #header-desktop .header-wrapper .menu a.active{color:#fff}#header-desktop.open .header-wrapper .menu .menu-item.search{margin:0 .25rem 0 .5rem}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.5rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}[theme=dark] #header-mobile .header-container .header-wrapper .menu-toggle span{background:#a9a9b3}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{text-align:center;background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;padding-top:.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-button{top:0}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:.75rem}#header-mobile .header-container .menu .menu-item{display:block;line-height:2.5rem}#header-mobile .header-container .menu.active{display:block}[theme=dark] #header-mobile .header-container .menu{background:#252627;border-top-color:#363636}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:2rem;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}[theme=dark] .search-dropdown .dropdown-menu{background-color:#292a2d}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:.875rem;float:right;text-align:right;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e8e8e8}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#323843}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}[theme=dark] .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:.5rem 1rem;float:right;font-size:.8rem;color:#a9a9b3}.search-dropdown .dropdown-menu .search-footer [theme=dark]{color:#5d5d5f}.search-dropdown .dropdown-menu .search-footer a,.search-dropdown .dropdown-menu .search-footer a::before,.search-dropdown .dropdown-menu .search-footer a::after{text-decoration:none;color:#2d96bd}[theme=dark] .search-dropdown .dropdown-menu .search-footer a,[theme=dark] .search-dropdown .dropdown-menu .search-footer a::before,[theme=dark] .search-dropdown .dropdown-menu .search-footer a::after{color:#55bde2}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ef3982}[theme=dark] .search-dropdown .dropdown-menu .search-footer a:active,[theme=dark] .search-dropdown .dropdown-menu .search-footer a:hover{color:#bdebfc}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:2rem;width:100%;text-align:center;line-height:1.25rem;padding:1rem 0}footer .footer-container{font-size:.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .icp-br{display:none}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}[theme=dark] .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}[theme=dark] .pagination li:before,[theme=dark] .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}[theme=dark] .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1440px){.page{width:56%}}@media only screen and (max-width: 1200px){.page{width:52%}#header-desktop .header-wrapper{padding-right:1rem}.search-dropdown.desktop{right:1rem}}@media only screen and (max-width: 960px){#toc-auto{display:none}#toc-static{display:block}.page{width:80%}#header-desktop .header-wrapper{padding-left:1rem}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}body.blur{overflow:hidden}.page{width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}} /*# sourceMappingURL=style.fr.min.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/scss/css/style.template.scss_84a735b886b24531b6e80c5fb2060510.content b/resources/_gen/assets/scss/css/style.template.scss_84a735b886b24531b6e80c5fb2060510.content index 18fac34e7..08344bcf1 100644 --- a/resources/_gen/assets/scss/css/style.template.scss_84a735b886b24531b6e80c5fb2060510.content +++ b/resources/_gen/assets/scss/css/style.template.scss_84a735b886b24531b6e80c5fb2060510.content @@ -1,3 +1,3 @@ -@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap");html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background-color:rgba(53,166,247,0.25)}[theme=dark] ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;word-wrap:break-word;overflow-wrap:break-word;scrollbar-color:auto}body[theme=dark]{color:#a9a9b3;background-color:#292a2d}input::-ms-clear{display:none}a,a::before,a::after{text-decoration:none;color:#161209}[theme=dark] a,[theme=dark] a::before,[theme=dark] a::after{color:#a9a9b3}a:active,a:hover{color:#2d96bd}[theme=dark] a:active,[theme=dark] a:hover{color:#fff}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#a9a9b3;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}[theme=dark] .details i.details-icon{color:#5d5d5f}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open i.details-icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.details.open .details-content{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;-webkit-border-radius:2rem;-moz-border-radius:2rem;border-radius:2rem}.blur .fixed-button{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}[theme=dark] .fixed-button{color:#5d5d5f;background:#252627}[theme=dark] .fixed-button:hover,[theme=dark] .fixed-button:active{color:#a9a9b3}#back-to-top{display:block;bottom:1.5rem}#view-comments{bottom:4.5rem}img{-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;"}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.page{position:relative;max-width:800px;width:60%;margin:0 auto;padding-top:3.5rem}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.85rem;padding-left:.8rem;list-style:none}.toc .toc-content ul a:first-child::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}[theme=dark] .toc .toc-content ul a:first-child::before{color:#55bde2}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f5f5f5}.toc ruby rt{color:#a9a9b3}[theme=dark] .toc ruby{background:#272C34}[theme=dark] .toc ruby rt{color:#5d5d5f}#toc-auto{display:block;position:absolute;width:9999px;padding:0 .8rem;border-left:4px solid #f0f0f0;word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:0;visibility:hidden}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}[theme=dark] #toc-auto{border-left-color:#363636}#toc-auto .toc-title{margin:.8rem 0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:.625rem 0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}[theme=dark] #toc-auto .toc-content a.active{color:#55bde2}#toc-auto .toc-content a.active::before{color:#ef3982}[theme=dark] #toc-auto .toc-content a.active::before{color:#bdebfc}#toc-static{display:none;margin:.8rem 0}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 .75rem;background:#e6e6e6}[theme=dark] #toc-static .toc-title{background:#1a1d23}#toc-static .toc-content{background-color:#f5f5f5}#toc-static .toc-content>nav>ul{margin:0;padding:.4rem 1rem .4rem 1.8rem}[theme=dark] #toc-static .toc-content{background-color:#272C34}#toc-static.open .toc-title{background:#ededed}[theme=dark] #toc-static.open .toc-title{background:#20252b}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}[theme=dark] .single .post-meta{color:#5d5d5f}.single .post-meta a,.single .post-meta a::before,.single .post-meta a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-meta a,[theme=dark] .single .post-meta a::before,[theme=dark] .single .post-meta a::after{color:#a9a9b3}.single .post-meta a:active,.single .post-meta a:hover{color:#ef3982}[theme=dark] .single .post-meta a:active,[theme=dark] .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{margin:.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single .content>h2{font-size:1.5rem}.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}[theme=dark] .single .content h2,[theme=dark] .single .content h3,[theme=dark] .single .content h4,[theme=dark] .single .content h5,[theme=dark] .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}[theme=dark] .single .content>h2>.header-mark::before,[theme=dark] .single .content>h3>.header-mark::before,[theme=dark] .single .content>h4>.header-mark::before,[theme=dark] .single .content>h5>.header-mark::before,[theme=dark] .single .content>h6>.header-mark::before{color:#55bde2}.single .content>h2>.header-mark::before{content:"#"}.single .content p{margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}[theme=dark] .single .content b,[theme=dark] .single .content strong{color:#ddd}.single .content a,.single .content a::before,.single .content a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .content a,[theme=dark] .single .content a::before,[theme=dark] .single .content a::after{color:#55bde2}.single .content a:active,.single .content a:hover{color:#ef3982}[theme=dark] .single .content a:active,[theme=dark] .single .content a:hover{color:#bdebfc}.single .content a{word-wrap:break-word;overflow-wrap:break-word}[theme=dark] .single .content a b,[theme=dark] .single .content a strong{color:#55bde2}.single .content [theme=dark] a:hover b,.single .content [theme=dark] a:hover strong{color:#bdebfc}.single .content ul,.single .content ol{margin:.5rem 0;padding-left:2.5rem}.single .content ul{list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}[theme=dark] .single .content ruby{background:#272C34}[theme=dark] .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}[theme=dark] .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}[theme=dark] .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}[theme=dark] .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px solid #e8e8e8}[theme=dark] .single .content .table-wrapper>table th,[theme=dark] .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content figure{margin:.5rem;text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{-o-object-fit:none;object-fit:none;font-family:"object-fit: none;"}.single .content blockquote{display:block;border-left:0.5rem solid #6bd6fd;background-color:rgba(107,214,253,0.2);padding:.25rem .75rem;margin:1rem 0}[theme=dark] .single .content blockquote{border-left-color:#59c5ec;background-color:rgba(89,197,236,0.2)}.single .content .footnotes{color:#a9a9b3}[theme=dark] .single .content .footnotes{color:#5d5d5f}.single .content .footnotes p{margin:.25rem 0}.single .content code{display:inline-block;max-width:100%;padding:0 .4rem;word-wrap:break-word;overflow-wrap:break-word;-webkit-line-break:anywhere;-ms-line-break:anywhere;line-break:anywhere;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content code{color:#E5BF78}.single .content pre{margin:0;padding:.25rem 0 .25rem .5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.single .content pre code{padding:0}.single .content pre img{min-height:1em;max-height:1.2em;vertical-align:text-bottom}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}[theme=dark] .single .content code,[theme=dark] .single .content pre,[theme=dark] .single .content .highlight table,[theme=dark] .single .content .highlight tr,[theme=dark] .single .content .highlight td{background:#272C34}.single .content .highlight,.single .content .gist{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight{line-height:1.4em;margin:.5rem 0}.single .content .highlight>.chroma{position:relative}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;color:#9c9c9c;background:#e1e1e1}[theme=dark] .single .content .highlight>.chroma .code-header{color:#b1b0b0;background:#1a1d23}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:.4rem}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:.2rem;content:'Code'}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-cs .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"LaTeX"}.single .content .highlight>.chroma .code-header.language-less .code-title::after{content:"Less"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Lisp"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Makefile"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"Markdown"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"Scss"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Shell"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"Vue"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .lntd:first-child{min-width:1.6rem;text-align:right}.single .content .highlight>.chroma .lntd:last-child{width:100%}.single .content .highlight>.chroma .lntd:last-child pre{min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}.single .content .highlight>.chroma .ln{padding-right:.75rem}.single .content .highlight>.chroma .hl{display:block;background-color:#dcdcdc}[theme=dark] .single .content .highlight>.chroma .hl{background-color:#1c2025}.single .content .highlight>.chroma .ln,.single .content .highlight>.chroma .lnt{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .ln,[theme=dark] .single .content .highlight>.chroma .lnt{color:#5d5d5f}.single .content .highlight>.chroma .arrow{padding:0 .2rem;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .ellipses{padding:.4rem}.single .content .highlight>.chroma .copy{display:none;padding:.4rem}.single .content .highlight>.chroma .copy:hover{cursor:pointer;color:#2d96bd}[theme=dark] .single .content .highlight>.chroma .copy:hover{color:#fff}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma.open .code-header{background:#ededed}[theme=dark] .single .content .highlight>.chroma.open .code-header{background:#20252b}.single .content .highlight>.chroma.open .table-wrapper{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight .c,.single .content .highlight .ch,.single .content .highlight .cm,.single .content .highlight .c1,.single .content .highlight .cs,.single .content .highlight .cp,.single .content .highlight .cpf{font-style:italic}.single .content .highlight .gl{text-decoration:underline}.single .content .highlight .p{color:#a9a9b3}.single .content .highlight .k{color:#b501a9}.single .content .highlight .kc{color:#b501a9}.single .content .highlight .kd{color:#b501a9}.single .content .highlight .kn{color:#b501a9}.single .content .highlight .kp{color:#b501a9}.single .content .highlight .kr{color:#b501a9}.single .content .highlight .kt{color:#b501a9}.single .content .highlight .n{color:#333}.single .content .highlight .na{color:#2b77fa}.single .content .highlight .nb{color:#f74840}.single .content .highlight .bp{color:#f74840}.single .content .highlight .nc{color:#cb8100}.single .content .highlight .no{color:#2b77fa}.single .content .highlight .nd{color:#0086c1}.single .content .highlight .ni{color:#2b77fa}.single .content .highlight .ne{color:#2b77fa}.single .content .highlight .nf{color:#2b77fa}.single .content .highlight .fm{color:#1ccad6}.single .content .highlight .nl{color:#2b77fa}.single .content .highlight .nn{color:#2b77fa}.single .content .highlight .nx{color:#333}.single .content .highlight .py{color:#2b77fa}.single .content .highlight .nt{color:#2b77fa}.single .content .highlight .nv{color:#2b77fa}.single .content .highlight .vc{color:#2b77fa}.single .content .highlight .vg{color:#2b77fa}.single .content .highlight .vi{color:#2b77fa}.single .content .highlight .vm{color:#2b77fa}.single .content .highlight .l{color:#2aa198}.single .content .highlight .ld{color:#2aa198}.single .content .highlight .s{color:#24a443}.single .content .highlight .sa{color:#24a443}.single .content .highlight .sb{color:#24a443}.single .content .highlight .sc{color:#24a443}.single .content .highlight .dl{color:#24a443}.single .content .highlight .sd{color:#24a443}.single .content .highlight .s2{color:#24a443}.single .content .highlight .se{color:#24a443}.single .content .highlight .sh{color:#24a443}.single .content .highlight .si{color:#24a443}.single .content .highlight .sx{color:#24a443}.single .content .highlight .sr{color:#24a443}.single .content .highlight .s1{color:#24a443}.single .content .highlight .ss{color:#24a443}.single .content .highlight .m{color:#e2893c}.single .content .highlight .mb{color:#e2893c}.single .content .highlight .mf{color:#e2893c}.single .content .highlight .mh{color:#e2893c}.single .content .highlight .mi{color:#e2893c}.single .content .highlight .il{color:#e2893c}.single .content .highlight .mo{color:#e2893c}.single .content .highlight .o{color:#f19b04}.single .content .highlight .ow{color:#b501a9}.single .content .highlight .c{color:#a0a1a8}.single .content .highlight .ch{color:#a0a1a8}.single .content .highlight .cm{color:#a0a1a8}.single .content .highlight .c1{color:#a0a1a8}.single .content .highlight .cs{color:#a0a1a8}.single .content .highlight .cp{color:#a0a1a8}.single .content .highlight .cpf{color:#a0a1a8}.single .content .highlight .g{color:#e72d40}.single .content .highlight .gd{color:#e72d40}.single .content .highlight .ge{color:#e72d40}.single .content .highlight .gr{color:#e72d40}.single .content .highlight .gh{color:#e72d40}.single .content .highlight .gi{color:#e72d40}.single .content .highlight .go{color:#e72d40}.single .content .highlight .gp{color:#e72d40}.single .content .highlight .gs{color:#e72d40}.single .content .highlight .gu{color:#e72d40}.single .content .highlight .gt{color:#e72d40}.single .content .highlight .w{color:#bbb}[theme=dark] .single .content .highlight .p{color:#a9a9b3}[theme=dark] .single .content .highlight .k{color:#d371e3}[theme=dark] .single .content .highlight .kc{color:#d371e3}[theme=dark] .single .content .highlight .kd{color:#d371e3}[theme=dark] .single .content .highlight .kn{color:#d371e3}[theme=dark] .single .content .highlight .kp{color:#d371e3}[theme=dark] .single .content .highlight .kr{color:#d371e3}[theme=dark] .single .content .highlight .kt{color:#d371e3}[theme=dark] .single .content .highlight .n{color:#a9b2c0}[theme=dark] .single .content .highlight .na{color:#41b0f5}[theme=dark] .single .content .highlight .nb{color:#19b9c4}[theme=dark] .single .content .highlight .bp{color:#ecbf6f}[theme=dark] .single .content .highlight .nc{color:#ecbf6f}[theme=dark] .single .content .highlight .no{color:#41b0f5}[theme=dark] .single .content .highlight .nd{color:#ecbf6f}[theme=dark] .single .content .highlight .ni{color:#41b0f5}[theme=dark] .single .content .highlight .ne{color:#41b0f5}[theme=dark] .single .content .highlight .nf{color:#41b0f5}[theme=dark] .single .content .highlight .fm{color:#19b9c4}[theme=dark] .single .content .highlight .nl{color:#41b0f5}[theme=dark] .single .content .highlight .nn{color:#41b0f5}[theme=dark] .single .content .highlight .nx{color:#a9a9b3}[theme=dark] .single .content .highlight .py{color:#41b0f5}[theme=dark] .single .content .highlight .nt{color:#41b0f5}[theme=dark] .single .content .highlight .nv{color:#41b0f5}[theme=dark] .single .content .highlight .vc{color:#41b0f5}[theme=dark] .single .content .highlight .vg{color:#41b0f5}[theme=dark] .single .content .highlight .vi{color:#41b0f5}[theme=dark] .single .content .highlight .vm{color:#41b0f5}[theme=dark] .single .content .highlight .l{color:#2aa198}[theme=dark] .single .content .highlight .ld{color:#2aa198}[theme=dark] .single .content .highlight .s{color:#8cc570}[theme=dark] .single .content .highlight .sa{color:#8cc570}[theme=dark] .single .content .highlight .sb{color:#8cc570}[theme=dark] .single .content .highlight .sc{color:#8cc570}[theme=dark] .single .content .highlight .dl{color:#8cc570}[theme=dark] .single .content .highlight .sd{color:#8cc570}[theme=dark] .single .content .highlight .s2{color:#8cc570}[theme=dark] .single .content .highlight .se{color:#8cc570}[theme=dark] .single .content .highlight .sh{color:#8cc570}[theme=dark] .single .content .highlight .si{color:#8cc570}[theme=dark] .single .content .highlight .sx{color:#8cc570}[theme=dark] .single .content .highlight .sr{color:#8cc570}[theme=dark] .single .content .highlight .s1{color:#8cc570}[theme=dark] .single .content .highlight .ss{color:#8cc570}[theme=dark] .single .content .highlight .m{color:#db985c}[theme=dark] .single .content .highlight .mb{color:#db985c}[theme=dark] .single .content .highlight .mf{color:#db985c}[theme=dark] .single .content .highlight .mh{color:#db985c}[theme=dark] .single .content .highlight .mi{color:#db985c}[theme=dark] .single .content .highlight .il{color:#db985c}[theme=dark] .single .content .highlight .mo{color:#db985c}[theme=dark] .single .content .highlight .o{color:#ecbf6f}[theme=dark] .single .content .highlight .ow{color:#d371e3}[theme=dark] .single .content .highlight .c{color:#7e848f}[theme=dark] .single .content .highlight .ch{color:#7e848f}[theme=dark] .single .content .highlight .cm{color:#7e848f}[theme=dark] .single .content .highlight .c1{color:#7e848f}[theme=dark] .single .content .highlight .cs{color:#7e848f}[theme=dark] .single .content .highlight .cp{color:#7e848f}[theme=dark] .single .content .highlight .cpf{color:#7e848f}[theme=dark] .single .content .highlight .g{color:#f16372}[theme=dark] .single .content .highlight .gd{color:#f16372}[theme=dark] .single .content .highlight .ge{color:#f16372}[theme=dark] .single .content .highlight .gr{color:#f16372}[theme=dark] .single .content .highlight .gh{color:#f16372}[theme=dark] .single .content .highlight .gi{color:#f16372}[theme=dark] .single .content .highlight .go{color:#f16372}[theme=dark] .single .content .highlight .gp{color:#f16372}[theme=dark] .single .content .highlight .gs{color:#f16372}[theme=dark] .single .content .highlight .gu{color:#f16372}[theme=dark] .single .content .highlight .gt{color:#f16372}[theme=dark] .single .content .highlight .w{color:#bbb}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a,.single .content .gist .gist-meta a::before,.single .content .gist .gist-meta a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .content .gist .gist-meta a,[theme=dark] .single .content .gist .gist-meta a::before,[theme=dark] .single .content .gist .gist-meta a::after{color:#55bde2}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ef3982}[theme=dark] .single .content .gist .gist-meta a:active,[theme=dark] .single .content .gist .gist-meta a:hover{color:#bdebfc}[theme=dark] .single .content .gist .gist-meta{background-color:#1c2025}[theme=dark] .single .content .gist .highlight{background:#141414}[theme=dark] .single .content .gist .blob-num,[theme=dark] .single .content .gist .blob-code-inner,[theme=dark] .single .content .gist .highlight,[theme=dark] .single .content .gist .pl-enm,[theme=dark] .single .content .gist .pl-ko,[theme=dark] .single .content .gist .pl-mo,[theme=dark] .single .content .gist .pl-mp1 .pl-sf,[theme=dark] .single .content .gist .pl-ms,[theme=dark] .single .content .gist .pl-pdc1,[theme=dark] .single .content .gist .pl-scp,[theme=dark] .single .content .gist .pl-smc,[theme=dark] .single .content .gist .pl-som,[theme=dark] .single .content .gist .pl-va,[theme=dark] .single .content .gist .pl-vpf,[theme=dark] .single .content .gist .pl-vpu,[theme=dark] .single .content .gist .pl-mdr{color:#aab1bf}[theme=dark] .single .content .gist .pl-mb,[theme=dark] .single .content .gist .pl-pdb{font-weight:700}[theme=dark] .single .content .gist .pl-c,[theme=dark] .single .content .gist .pl-c span,[theme=dark] .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}[theme=dark] .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}[theme=dark] .single .content .gist .pl-ef,[theme=dark] .single .content .gist .pl-en,[theme=dark] .single .content .gist .pl-enf,[theme=dark] .single .content .gist .pl-eoai,[theme=dark] .single .content .gist .pl-kos,[theme=dark] .single .content .gist .pl-mh .pl-pdh,[theme=dark] .single .content .gist .pl-mr{color:#61afef}[theme=dark] .single .content .gist .pl-ens,[theme=dark] .single .content .gist .pl-vi{color:#be5046}[theme=dark] .single .content .gist .pl-enti,[theme=dark] .single .content .gist .pl-mai .pl-sf,[theme=dark] .single .content .gist .pl-ml,[theme=dark] .single .content .gist .pl-sf,[theme=dark] .single .content .gist .pl-sr,[theme=dark] .single .content .gist .pl-sr .pl-sra,[theme=dark] .single .content .gist .pl-src,[theme=dark] .single .content .gist .pl-st,[theme=dark] .single .content .gist .pl-vo{color:#56b5c2}[theme=dark] .single .content .gist .pl-eoi,[theme=dark] .single .content .gist .pl-mri,[theme=dark] .single .content .gist .pl-pds,[theme=dark] .single .content .gist .pl-pse .pl-s1,[theme=dark] .single .content .gist .pl-s,[theme=dark] .single .content .gist .pl-s1{color:#97c279}[theme=dark] .single .content .gist .pl-k,[theme=dark] .single .content .gist .pl-kolp,[theme=dark] .single .content .gist .pl-mc,[theme=dark] .single .content .gist .pl-pde{color:#c578dd}[theme=dark] .single .content .gist .pl-mi,[theme=dark] .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}[theme=dark] .single .content .gist .pl-mp,[theme=dark] .single .content .gist .pl-stp{color:#818896}[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi,[theme=dark] .single .content .gist .pl-mdr{font-weight:400}[theme=dark] .single .content .gist .pl-mdht,[theme=dark] .single .content .gist .pl-mi1{color:#97c279;background:#020}[theme=dark] .single .content .gist .pl-md,[theme=dark] .single .content .gist .pl-mdhf{color:#df6b75;background:#200}[theme=dark] .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}[theme=dark] .single .content .gist .pl-ib{background:#df6b75}[theme=dark] .single .content .gist .pl-ii{background:#e0c184;color:#fff}[theme=dark] .single .content .gist .pl-iu{background:#e05151}[theme=dark] .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}[theme=dark] .single .content .gist .pl-c1,[theme=dark] .single .content .gist .pl-cn,[theme=dark] .single .content .gist .pl-e,[theme=dark] .single .content .gist .pl-eoa,[theme=dark] .single .content .gist .pl-eoac,[theme=dark] .single .content .gist .pl-eoac .pl-pde,[theme=dark] .single .content .gist .pl-kou,[theme=dark] .single .content .gist .pl-mm,[theme=dark] .single .content .gist .pl-mp .pl-s3,[theme=dark] .single .content .gist .pl-mq,[theme=dark] .single .content .gist .pl-s3,[theme=dark] .single .content .gist .pl-sok,[theme=dark] .single .content .gist .pl-sv,[theme=dark] .single .content .gist .pl-mb{color:#d19965}[theme=dark] .single .content .gist .pl-enc,[theme=dark] .single .content .gist .pl-entc,[theme=dark] .single .content .gist .pl-pse .pl-s2,[theme=dark] .single .content .gist .pl-s2,[theme=dark] .single .content .gist .pl-sc,[theme=dark] .single .content .gist .pl-smp,[theme=dark] .single .content .gist .pl-sr .pl-sre,[theme=dark] .single .content .gist .pl-stj,[theme=dark] .single .content .gist .pl-v,[theme=dark] .single .content .gist .pl-pdb{color:#e4bf7a}[theme=dark] .single .content .gist .pl-ent,[theme=dark] .single .content .gist .pl-entl,[theme=dark] .single .content .gist .pl-entm,[theme=dark] .single .content .gist .pl-mh,[theme=dark] .single .content .gist .pl-pdv,[theme=dark] .single .content .gist .pl-smi,[theme=dark] .single .content .gist .pl-sol,[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi{color:#df6b75}[theme=dark] .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:1rem 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{font-weight:bold;margin:0 -0.75rem;padding:.25rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{padding:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;position:absolute;top:.6rem;left:.4rem}.single .content .admonition i.details-icon{position:absolute;top:.6rem;right:.3rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.note.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.25)}.single .content .admonition.abstract.open .admonition-title{background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.25)}.single .content .admonition.info.open .admonition-title{background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.25)}.single .content .admonition.tip.open .admonition-title{background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.25)}.single .content .admonition.success.open .admonition-title{background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.25)}.single .content .admonition.question.open .admonition-title{background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.25)}.single .content .admonition.warning.open .admonition-title{background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.25)}.single .content .admonition.failure.open .admonition-title{background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.25)}.single .content .admonition.danger.open .admonition-title{background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.25)}.single .content .admonition.bug.open .admonition-title{background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.25)}.single .content .admonition.example.open .admonition-title{background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(159,159,159,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(159,159,159,0.1);background-color:rgba(159,159,159,0.25)}.single .content .admonition.quote.open .admonition-title{background-color:rgba(159,159,159,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content .echarts{margin:.5rem 0;text-align:center}.single .content .mapbox{margin:.5rem 0;padding:.5rem 0}.single .content meting-js{margin:.5rem 0}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}[theme=dark] .single .content hr{border-top:1px dashed #363636}.single .content kbd{display:inline-block;padding:.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content kbd{background-color:#292a2d;border:1px solid #363636;border-bottom-color:#363636;-webkit-box-shadow:inset 0 -1px 0 #363636;box-shadow:inset 0 -1px 0 #363636;color:#E5BF78}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all}.single .content .version{height:1.25em;vertical-align:text-bottom}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}[theme=dark] .single .post-footer .post-info{border-bottom:1px solid #363636}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a,.single .post-footer .post-info .post-info-line .post-info-mod a::before,.single .post-footer .post-info .post-info-line .post-info-mod a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a::before,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a::after{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a,.single .post-footer .post-info .post-info-line .post-info-md a::before,.single .post-footer .post-info .post-info-line .post-info-md a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a::before,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a::after{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .group-title{margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:.25rem 0 .25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}[theme=dark] .archive .archive-item-link{color:#a9a9b3}[theme=dark] .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{width:4em;text-align:right;color:#a9a9b3}[theme=dark] .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a,.archive .tag-cloud-tags a::before,.archive .tag-cloud-tags a::after{text-decoration:none;color:#161209}[theme=dark] .archive .tag-cloud-tags a,[theme=dark] .archive .tag-cloud-tags a::before,[theme=dark] .archive .tag-cloud-tags a::after{color:#a9a9b3}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2d96bd}[theme=dark] .archive .tag-cloud-tags a:active,[theme=dark] .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:#a9a9b3}[theme=dark] .archive .tag-cloud-tags a sup{color:#5d5d5f}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{display:inline-block;width:6rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem .2rem;font-size:1.6rem}.home .home-profile .social-links a *{vertical-align:text-bottom}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}[theme=dark] .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}[theme=dark] .home .summary{color:#a9a9b3;border-bottom:1px dashed #363636}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;"}.home .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;line-height:1.5;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2{font-size:1.125rem}.home .summary .content a,.home .summary .content a::before,.home .summary .content a::after{text-decoration:none;color:#2d96bd}[theme=dark] .home .summary .content a,[theme=dark] .home .summary .content a::before,[theme=dark] .home .summary .content a::after{color:#a9a9b3}.home .summary .content a:active,.home .summary .content a:hover{color:#ef3982}[theme=dark] .home .summary .content a:active,[theme=dark] .home .summary .content a:hover{color:#fff}.home .summary .content b,.home .summary .content strong{color:#a9a9b3}[theme=dark] .home .summary .content b,[theme=dark] .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a,.home .summary .post-footer a::before,.home .summary .post-footer a::after{text-decoration:none;color:#2d96bd}[theme=dark] .home .summary .post-footer a,[theme=dark] .home .summary .post-footer a::before,[theme=dark] .home .summary .post-footer a::after{color:#55bde2}.home .summary .post-footer a:active,.home .summary .post-footer a:hover{color:#ef3982}[theme=dark] .home .summary .post-footer a:active,[theme=dark] .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a,.home .summary .post-footer .post-tags a::before,.home .summary .post-footer .post-tags a::after{text-decoration:none;color:#161209}[theme=dark] .home .summary .post-footer .post-tags a,[theme=dark] .home .summary .post-footer .post-tags a::before,[theme=dark] .home .summary .post-footer .post-tags a::after{color:#a9a9b3}.home .summary .post-footer .post-tags a:active,.home .summary .post-footer .post-tags a:hover{color:#2d96bd}[theme=dark] .home .summary .post-footer .post-tags a:active,[theme=dark] .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}header{width:100%;z-index:150;background-color:#f8f8f8}[theme=dark] header{background-color:#252627}header .logo{min-height:1.5em;height:1.5em;vertical-align:text-bottom}header .logo,header .header-title-pre{padding-right:.25rem}header .header-title-post{padding-left:.25rem}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin-right:.5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.menu .menu-item{position:relative}.language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.language-select:hover{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:2.5rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:#f8f8f8;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}[theme=dark] .search input{background-color:#252627}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:.5rem;right:auto}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}[theme=dark] .open .search input,[theme=dark] .search.mobile input{color:#a9a9b3;background-color:#363636}[theme=dark] .open .search input::-webkit-input-placeholder,[theme=dark] .search.mobile input::-webkit-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-moz-placeholder,[theme=dark] .search.mobile input:-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input::-moz-placeholder,[theme=dark] .search.mobile input::-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-ms-input-placeholder,[theme=dark] .search.mobile input:-ms-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input::placeholder,[theme=dark] .search.mobile input::placeholder{color:#5d5d5f}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#a9a9b3}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#a9a9b3}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#a9a9b3}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#a9a9b3}.open .search input::placeholder,.search.mobile input::placeholder{color:#a9a9b3}.open .search .search-button,.search.mobile .search-button{color:#a9a9b3}[theme=dark] .open .search .search-button,[theme=dark] .search.mobile .search-button{color:#5d5d5f}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{padding:0 2rem 0 10vh}#header-desktop .header-wrapper .header-title{font-size:1.5rem}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-inner{float:right}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{border-left:1.5px solid #161209}[theme=dark] #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#363636}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.search{margin:0 -.5rem 0 0}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}[theme=dark] #header-desktop .header-wrapper .menu a.active{color:#fff}#header-desktop.open .header-wrapper .menu .menu-item.search{margin:0 .25rem 0 .5rem}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.5rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}[theme=dark] #header-mobile .header-container .header-wrapper .menu-toggle span{background:#a9a9b3}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{text-align:center;background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;padding-top:.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-button{top:0}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:.75rem}#header-mobile .header-container .menu .menu-item{display:block;line-height:2.5rem}#header-mobile .header-container .menu.active{display:block}[theme=dark] #header-mobile .header-container .menu{background:#252627;border-top-color:#363636}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:2rem;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}[theme=dark] .search-dropdown .dropdown-menu{background-color:#292a2d}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:.875rem;float:right;text-align:right;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e8e8e8}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#323843}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}[theme=dark] .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:.5rem 1rem;float:right;font-size:.8rem;color:#a9a9b3}.search-dropdown .dropdown-menu .search-footer [theme=dark]{color:#5d5d5f}.search-dropdown .dropdown-menu .search-footer a,.search-dropdown .dropdown-menu .search-footer a::before,.search-dropdown .dropdown-menu .search-footer a::after{text-decoration:none;color:#2d96bd}[theme=dark] .search-dropdown .dropdown-menu .search-footer a,[theme=dark] .search-dropdown .dropdown-menu .search-footer a::before,[theme=dark] .search-dropdown .dropdown-menu .search-footer a::after{color:#55bde2}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ef3982}[theme=dark] .search-dropdown .dropdown-menu .search-footer a:active,[theme=dark] .search-dropdown .dropdown-menu .search-footer a:hover{color:#bdebfc}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}footer .footer-container{font-size:.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .icp-br{display:none}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}[theme=dark] .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}[theme=dark] .pagination li:before,[theme=dark] .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}[theme=dark] .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1440px){.page{width:56%}}@media only screen and (max-width: 1200px){.page{width:52%}#header-desktop .header-wrapper{padding-right:1rem}.search-dropdown.desktop{right:1rem}}@media only screen and (max-width: 960px){#toc-auto{display:none}#toc-static{display:block}.page{width:80%}#header-desktop .header-wrapper{padding-left:1rem}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}body.blur{overflow:hidden}.page{width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}} +@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap");html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background-color:rgba(53,166,247,0.25)}[theme=dark] ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;word-wrap:break-word;overflow-wrap:break-word;scrollbar-color:auto}body[theme=dark]{color:#a9a9b3;background-color:#292a2d}input::-ms-clear{display:none}a,a::before,a::after{text-decoration:none;color:#161209}[theme=dark] a,[theme=dark] a::before,[theme=dark] a::after{color:#a9a9b3}a:active,a:hover{color:#2d96bd}[theme=dark] a:active,[theme=dark] a:hover{color:#fff}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#a9a9b3;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}[theme=dark] .details i.details-icon{color:#5d5d5f}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open i.details-icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.details.open .details-content{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;-webkit-border-radius:2rem;-moz-border-radius:2rem;border-radius:2rem}.blur .fixed-button{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}[theme=dark] .fixed-button{color:#5d5d5f;background:#252627}[theme=dark] .fixed-button:hover,[theme=dark] .fixed-button:active{color:#a9a9b3}#back-to-top{display:block;bottom:1.5rem}#view-comments{bottom:4.5rem}img{-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;"}.wrapper{display:flex;flex-direction:column;min-height:100vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding:0 1rem}.page{position:relative;max-width:800px;width:60%;margin:0 auto;padding-top:3.5rem}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.85rem;padding-left:.8rem;list-style:none}.toc .toc-content ul a:first-child::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}[theme=dark] .toc .toc-content ul a:first-child::before{color:#55bde2}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f5f5f5}.toc ruby rt{color:#a9a9b3}[theme=dark] .toc ruby{background:#272C34}[theme=dark] .toc ruby rt{color:#5d5d5f}#toc-auto{display:block;position:absolute;width:9999px;padding:0 .8rem;border-left:4px solid #f0f0f0;word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:0;visibility:hidden}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}[theme=dark] #toc-auto{border-left-color:#363636}#toc-auto .toc-title{margin:.8rem 0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:.625rem 0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}[theme=dark] #toc-auto .toc-content a.active{color:#55bde2}#toc-auto .toc-content a.active::before{color:#ef3982}[theme=dark] #toc-auto .toc-content a.active::before{color:#bdebfc}#toc-static{display:none;margin:.8rem 0}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 .75rem;background:#e6e6e6}[theme=dark] #toc-static .toc-title{background:#1a1d23}#toc-static .toc-content{background-color:#f5f5f5}#toc-static .toc-content>nav>ul{margin:0;padding:.4rem 1rem .4rem 1.8rem}[theme=dark] #toc-static .toc-content{background-color:#272C34}#toc-static.open .toc-title{background:#ededed}[theme=dark] #toc-static.open .toc-title{background:#20252b}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}[theme=dark] .single .post-meta{color:#5d5d5f}.single .post-meta a,.single .post-meta a::before,.single .post-meta a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-meta a,[theme=dark] .single .post-meta a::before,[theme=dark] .single .post-meta a::after{color:#a9a9b3}.single .post-meta a:active,.single .post-meta a:hover{color:#ef3982}[theme=dark] .single .post-meta a:active,[theme=dark] .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{margin:.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single .content>h2{font-size:1.5rem}.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}[theme=dark] .single .content h2,[theme=dark] .single .content h3,[theme=dark] .single .content h4,[theme=dark] .single .content h5,[theme=dark] .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}[theme=dark] .single .content>h2>.header-mark::before,[theme=dark] .single .content>h3>.header-mark::before,[theme=dark] .single .content>h4>.header-mark::before,[theme=dark] .single .content>h5>.header-mark::before,[theme=dark] .single .content>h6>.header-mark::before{color:#55bde2}.single .content>h2>.header-mark::before{content:"#"}.single .content p{margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}[theme=dark] .single .content b,[theme=dark] .single .content strong{color:#ddd}.single .content a,.single .content a::before,.single .content a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .content a,[theme=dark] .single .content a::before,[theme=dark] .single .content a::after{color:#55bde2}.single .content a:active,.single .content a:hover{color:#ef3982}[theme=dark] .single .content a:active,[theme=dark] .single .content a:hover{color:#bdebfc}.single .content a{word-wrap:break-word;overflow-wrap:break-word}[theme=dark] .single .content a b,[theme=dark] .single .content a strong{color:#55bde2}.single .content [theme=dark] a:hover b,.single .content [theme=dark] a:hover strong{color:#bdebfc}.single .content ul,.single .content ol{margin:.5rem 0;padding-left:2.5rem}.single .content ul{list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}[theme=dark] .single .content ruby{background:#272C34}[theme=dark] .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}[theme=dark] .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}[theme=dark] .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}[theme=dark] .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px solid #e8e8e8}[theme=dark] .single .content .table-wrapper>table th,[theme=dark] .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content figure{margin:.5rem;text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{-o-object-fit:none;object-fit:none;font-family:"object-fit: none;"}.single .content blockquote{display:block;border-left:0.5rem solid #6bd6fd;background-color:rgba(107,214,253,0.2);padding:.25rem .75rem;margin:1rem 0}[theme=dark] .single .content blockquote{border-left-color:#59c5ec;background-color:rgba(89,197,236,0.2)}.single .content .footnotes{color:#a9a9b3}[theme=dark] .single .content .footnotes{color:#5d5d5f}.single .content .footnotes p{margin:.25rem 0}.single .content code{display:inline-block;max-width:100%;padding:0 .4rem;word-wrap:break-word;overflow-wrap:break-word;-webkit-line-break:anywhere;-ms-line-break:anywhere;line-break:anywhere;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content code{color:#E5BF78}.single .content pre{margin:0;padding:.25rem 0 .25rem .5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.single .content pre code{padding:0}.single .content pre img{min-height:1em;max-height:1.2em;vertical-align:text-bottom}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}[theme=dark] .single .content code,[theme=dark] .single .content pre,[theme=dark] .single .content .highlight table,[theme=dark] .single .content .highlight tr,[theme=dark] .single .content .highlight td{background:#272C34}.single .content .highlight,.single .content .gist{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight{line-height:1.4em;margin:.5rem 0}.single .content .highlight>.chroma{position:relative}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;color:#9c9c9c;background:#e1e1e1}[theme=dark] .single .content .highlight>.chroma .code-header{color:#b1b0b0;background:#1a1d23}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:.4rem}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:.2rem;content:'Code'}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-cs .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"LaTeX"}.single .content .highlight>.chroma .code-header.language-less .code-title::after{content:"Less"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Lisp"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Makefile"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"Markdown"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"Scss"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Shell"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"Vue"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .lntd:first-child{min-width:1.6rem;text-align:right}.single .content .highlight>.chroma .lntd:last-child{width:100%}.single .content .highlight>.chroma .lntd:last-child pre{min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}.single .content .highlight>.chroma .ln{padding-right:.75rem}.single .content .highlight>.chroma .hl{display:block;background-color:#dcdcdc}[theme=dark] .single .content .highlight>.chroma .hl{background-color:#1c2025}.single .content .highlight>.chroma .ln,.single .content .highlight>.chroma .lnt{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .ln,[theme=dark] .single .content .highlight>.chroma .lnt{color:#5d5d5f}.single .content .highlight>.chroma .arrow{padding:0 .2rem;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .ellipses{padding:.4rem}.single .content .highlight>.chroma .copy{display:none;padding:.4rem}.single .content .highlight>.chroma .copy:hover{cursor:pointer;color:#2d96bd}[theme=dark] .single .content .highlight>.chroma .copy:hover{color:#fff}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma.open .code-header{background:#ededed}[theme=dark] .single .content .highlight>.chroma.open .code-header{background:#20252b}.single .content .highlight>.chroma.open .table-wrapper{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight .c,.single .content .highlight .ch,.single .content .highlight .cm,.single .content .highlight .c1,.single .content .highlight .cs,.single .content .highlight .cp,.single .content .highlight .cpf{font-style:italic}.single .content .highlight .gl{text-decoration:underline}.single .content .highlight .p{color:#a9a9b3}.single .content .highlight .k{color:#b501a9}.single .content .highlight .kc{color:#b501a9}.single .content .highlight .kd{color:#b501a9}.single .content .highlight .kn{color:#b501a9}.single .content .highlight .kp{color:#b501a9}.single .content .highlight .kr{color:#b501a9}.single .content .highlight .kt{color:#b501a9}.single .content .highlight .n{color:#333}.single .content .highlight .na{color:#2b77fa}.single .content .highlight .nb{color:#f74840}.single .content .highlight .bp{color:#f74840}.single .content .highlight .nc{color:#cb8100}.single .content .highlight .no{color:#2b77fa}.single .content .highlight .nd{color:#0086c1}.single .content .highlight .ni{color:#2b77fa}.single .content .highlight .ne{color:#2b77fa}.single .content .highlight .nf{color:#2b77fa}.single .content .highlight .fm{color:#1ccad6}.single .content .highlight .nl{color:#2b77fa}.single .content .highlight .nn{color:#2b77fa}.single .content .highlight .nx{color:#333}.single .content .highlight .py{color:#2b77fa}.single .content .highlight .nt{color:#2b77fa}.single .content .highlight .nv{color:#2b77fa}.single .content .highlight .vc{color:#2b77fa}.single .content .highlight .vg{color:#2b77fa}.single .content .highlight .vi{color:#2b77fa}.single .content .highlight .vm{color:#2b77fa}.single .content .highlight .l{color:#2aa198}.single .content .highlight .ld{color:#2aa198}.single .content .highlight .s{color:#24a443}.single .content .highlight .sa{color:#24a443}.single .content .highlight .sb{color:#24a443}.single .content .highlight .sc{color:#24a443}.single .content .highlight .dl{color:#24a443}.single .content .highlight .sd{color:#24a443}.single .content .highlight .s2{color:#24a443}.single .content .highlight .se{color:#24a443}.single .content .highlight .sh{color:#24a443}.single .content .highlight .si{color:#24a443}.single .content .highlight .sx{color:#24a443}.single .content .highlight .sr{color:#24a443}.single .content .highlight .s1{color:#24a443}.single .content .highlight .ss{color:#24a443}.single .content .highlight .m{color:#e2893c}.single .content .highlight .mb{color:#e2893c}.single .content .highlight .mf{color:#e2893c}.single .content .highlight .mh{color:#e2893c}.single .content .highlight .mi{color:#e2893c}.single .content .highlight .il{color:#e2893c}.single .content .highlight .mo{color:#e2893c}.single .content .highlight .o{color:#f19b04}.single .content .highlight .ow{color:#b501a9}.single .content .highlight .c{color:#a0a1a8}.single .content .highlight .ch{color:#a0a1a8}.single .content .highlight .cm{color:#a0a1a8}.single .content .highlight .c1{color:#a0a1a8}.single .content .highlight .cs{color:#a0a1a8}.single .content .highlight .cp{color:#a0a1a8}.single .content .highlight .cpf{color:#a0a1a8}.single .content .highlight .g{color:#e72d40}.single .content .highlight .gd{color:#e72d40}.single .content .highlight .ge{color:#e72d40}.single .content .highlight .gr{color:#e72d40}.single .content .highlight .gh{color:#e72d40}.single .content .highlight .gi{color:#e72d40}.single .content .highlight .go{color:#e72d40}.single .content .highlight .gp{color:#e72d40}.single .content .highlight .gs{color:#e72d40}.single .content .highlight .gu{color:#e72d40}.single .content .highlight .gt{color:#e72d40}.single .content .highlight .w{color:#bbb}[theme=dark] .single .content .highlight .p{color:#a9a9b3}[theme=dark] .single .content .highlight .k{color:#d371e3}[theme=dark] .single .content .highlight .kc{color:#d371e3}[theme=dark] .single .content .highlight .kd{color:#d371e3}[theme=dark] .single .content .highlight .kn{color:#d371e3}[theme=dark] .single .content .highlight .kp{color:#d371e3}[theme=dark] .single .content .highlight .kr{color:#d371e3}[theme=dark] .single .content .highlight .kt{color:#d371e3}[theme=dark] .single .content .highlight .n{color:#a9b2c0}[theme=dark] .single .content .highlight .na{color:#41b0f5}[theme=dark] .single .content .highlight .nb{color:#19b9c4}[theme=dark] .single .content .highlight .bp{color:#ecbf6f}[theme=dark] .single .content .highlight .nc{color:#ecbf6f}[theme=dark] .single .content .highlight .no{color:#41b0f5}[theme=dark] .single .content .highlight .nd{color:#ecbf6f}[theme=dark] .single .content .highlight .ni{color:#41b0f5}[theme=dark] .single .content .highlight .ne{color:#41b0f5}[theme=dark] .single .content .highlight .nf{color:#41b0f5}[theme=dark] .single .content .highlight .fm{color:#19b9c4}[theme=dark] .single .content .highlight .nl{color:#41b0f5}[theme=dark] .single .content .highlight .nn{color:#41b0f5}[theme=dark] .single .content .highlight .nx{color:#a9a9b3}[theme=dark] .single .content .highlight .py{color:#41b0f5}[theme=dark] .single .content .highlight .nt{color:#41b0f5}[theme=dark] .single .content .highlight .nv{color:#41b0f5}[theme=dark] .single .content .highlight .vc{color:#41b0f5}[theme=dark] .single .content .highlight .vg{color:#41b0f5}[theme=dark] .single .content .highlight .vi{color:#41b0f5}[theme=dark] .single .content .highlight .vm{color:#41b0f5}[theme=dark] .single .content .highlight .l{color:#2aa198}[theme=dark] .single .content .highlight .ld{color:#2aa198}[theme=dark] .single .content .highlight .s{color:#8cc570}[theme=dark] .single .content .highlight .sa{color:#8cc570}[theme=dark] .single .content .highlight .sb{color:#8cc570}[theme=dark] .single .content .highlight .sc{color:#8cc570}[theme=dark] .single .content .highlight .dl{color:#8cc570}[theme=dark] .single .content .highlight .sd{color:#8cc570}[theme=dark] .single .content .highlight .s2{color:#8cc570}[theme=dark] .single .content .highlight .se{color:#8cc570}[theme=dark] .single .content .highlight .sh{color:#8cc570}[theme=dark] .single .content .highlight .si{color:#8cc570}[theme=dark] .single .content .highlight .sx{color:#8cc570}[theme=dark] .single .content .highlight .sr{color:#8cc570}[theme=dark] .single .content .highlight .s1{color:#8cc570}[theme=dark] .single .content .highlight .ss{color:#8cc570}[theme=dark] .single .content .highlight .m{color:#db985c}[theme=dark] .single .content .highlight .mb{color:#db985c}[theme=dark] .single .content .highlight .mf{color:#db985c}[theme=dark] .single .content .highlight .mh{color:#db985c}[theme=dark] .single .content .highlight .mi{color:#db985c}[theme=dark] .single .content .highlight .il{color:#db985c}[theme=dark] .single .content .highlight .mo{color:#db985c}[theme=dark] .single .content .highlight .o{color:#ecbf6f}[theme=dark] .single .content .highlight .ow{color:#d371e3}[theme=dark] .single .content .highlight .c{color:#7e848f}[theme=dark] .single .content .highlight .ch{color:#7e848f}[theme=dark] .single .content .highlight .cm{color:#7e848f}[theme=dark] .single .content .highlight .c1{color:#7e848f}[theme=dark] .single .content .highlight .cs{color:#7e848f}[theme=dark] .single .content .highlight .cp{color:#7e848f}[theme=dark] .single .content .highlight .cpf{color:#7e848f}[theme=dark] .single .content .highlight .g{color:#f16372}[theme=dark] .single .content .highlight .gd{color:#f16372}[theme=dark] .single .content .highlight .ge{color:#f16372}[theme=dark] .single .content .highlight .gr{color:#f16372}[theme=dark] .single .content .highlight .gh{color:#f16372}[theme=dark] .single .content .highlight .gi{color:#f16372}[theme=dark] .single .content .highlight .go{color:#f16372}[theme=dark] .single .content .highlight .gp{color:#f16372}[theme=dark] .single .content .highlight .gs{color:#f16372}[theme=dark] .single .content .highlight .gu{color:#f16372}[theme=dark] .single .content .highlight .gt{color:#f16372}[theme=dark] .single .content .highlight .w{color:#bbb}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a,.single .content .gist .gist-meta a::before,.single .content .gist .gist-meta a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .content .gist .gist-meta a,[theme=dark] .single .content .gist .gist-meta a::before,[theme=dark] .single .content .gist .gist-meta a::after{color:#55bde2}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ef3982}[theme=dark] .single .content .gist .gist-meta a:active,[theme=dark] .single .content .gist .gist-meta a:hover{color:#bdebfc}[theme=dark] .single .content .gist .gist-meta{background-color:#1c2025}[theme=dark] .single .content .gist .highlight{background:#141414}[theme=dark] .single .content .gist .blob-num,[theme=dark] .single .content .gist .blob-code-inner,[theme=dark] .single .content .gist .highlight,[theme=dark] .single .content .gist .pl-enm,[theme=dark] .single .content .gist .pl-ko,[theme=dark] .single .content .gist .pl-mo,[theme=dark] .single .content .gist .pl-mp1 .pl-sf,[theme=dark] .single .content .gist .pl-ms,[theme=dark] .single .content .gist .pl-pdc1,[theme=dark] .single .content .gist .pl-scp,[theme=dark] .single .content .gist .pl-smc,[theme=dark] .single .content .gist .pl-som,[theme=dark] .single .content .gist .pl-va,[theme=dark] .single .content .gist .pl-vpf,[theme=dark] .single .content .gist .pl-vpu,[theme=dark] .single .content .gist .pl-mdr{color:#aab1bf}[theme=dark] .single .content .gist .pl-mb,[theme=dark] .single .content .gist .pl-pdb{font-weight:700}[theme=dark] .single .content .gist .pl-c,[theme=dark] .single .content .gist .pl-c span,[theme=dark] .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}[theme=dark] .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}[theme=dark] .single .content .gist .pl-ef,[theme=dark] .single .content .gist .pl-en,[theme=dark] .single .content .gist .pl-enf,[theme=dark] .single .content .gist .pl-eoai,[theme=dark] .single .content .gist .pl-kos,[theme=dark] .single .content .gist .pl-mh .pl-pdh,[theme=dark] .single .content .gist .pl-mr{color:#61afef}[theme=dark] .single .content .gist .pl-ens,[theme=dark] .single .content .gist .pl-vi{color:#be5046}[theme=dark] .single .content .gist .pl-enti,[theme=dark] .single .content .gist .pl-mai .pl-sf,[theme=dark] .single .content .gist .pl-ml,[theme=dark] .single .content .gist .pl-sf,[theme=dark] .single .content .gist .pl-sr,[theme=dark] .single .content .gist .pl-sr .pl-sra,[theme=dark] .single .content .gist .pl-src,[theme=dark] .single .content .gist .pl-st,[theme=dark] .single .content .gist .pl-vo{color:#56b5c2}[theme=dark] .single .content .gist .pl-eoi,[theme=dark] .single .content .gist .pl-mri,[theme=dark] .single .content .gist .pl-pds,[theme=dark] .single .content .gist .pl-pse .pl-s1,[theme=dark] .single .content .gist .pl-s,[theme=dark] .single .content .gist .pl-s1{color:#97c279}[theme=dark] .single .content .gist .pl-k,[theme=dark] .single .content .gist .pl-kolp,[theme=dark] .single .content .gist .pl-mc,[theme=dark] .single .content .gist .pl-pde{color:#c578dd}[theme=dark] .single .content .gist .pl-mi,[theme=dark] .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}[theme=dark] .single .content .gist .pl-mp,[theme=dark] .single .content .gist .pl-stp{color:#818896}[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi,[theme=dark] .single .content .gist .pl-mdr{font-weight:400}[theme=dark] .single .content .gist .pl-mdht,[theme=dark] .single .content .gist .pl-mi1{color:#97c279;background:#020}[theme=dark] .single .content .gist .pl-md,[theme=dark] .single .content .gist .pl-mdhf{color:#df6b75;background:#200}[theme=dark] .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}[theme=dark] .single .content .gist .pl-ib{background:#df6b75}[theme=dark] .single .content .gist .pl-ii{background:#e0c184;color:#fff}[theme=dark] .single .content .gist .pl-iu{background:#e05151}[theme=dark] .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}[theme=dark] .single .content .gist .pl-c1,[theme=dark] .single .content .gist .pl-cn,[theme=dark] .single .content .gist .pl-e,[theme=dark] .single .content .gist .pl-eoa,[theme=dark] .single .content .gist .pl-eoac,[theme=dark] .single .content .gist .pl-eoac .pl-pde,[theme=dark] .single .content .gist .pl-kou,[theme=dark] .single .content .gist .pl-mm,[theme=dark] .single .content .gist .pl-mp .pl-s3,[theme=dark] .single .content .gist .pl-mq,[theme=dark] .single .content .gist .pl-s3,[theme=dark] .single .content .gist .pl-sok,[theme=dark] .single .content .gist .pl-sv,[theme=dark] .single .content .gist .pl-mb{color:#d19965}[theme=dark] .single .content .gist .pl-enc,[theme=dark] .single .content .gist .pl-entc,[theme=dark] .single .content .gist .pl-pse .pl-s2,[theme=dark] .single .content .gist .pl-s2,[theme=dark] .single .content .gist .pl-sc,[theme=dark] .single .content .gist .pl-smp,[theme=dark] .single .content .gist .pl-sr .pl-sre,[theme=dark] .single .content .gist .pl-stj,[theme=dark] .single .content .gist .pl-v,[theme=dark] .single .content .gist .pl-pdb{color:#e4bf7a}[theme=dark] .single .content .gist .pl-ent,[theme=dark] .single .content .gist .pl-entl,[theme=dark] .single .content .gist .pl-entm,[theme=dark] .single .content .gist .pl-mh,[theme=dark] .single .content .gist .pl-pdv,[theme=dark] .single .content .gist .pl-smi,[theme=dark] .single .content .gist .pl-sol,[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi{color:#df6b75}[theme=dark] .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:1rem 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{font-weight:bold;margin:0 -0.75rem;padding:.25rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{padding:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;position:absolute;top:.6rem;left:.4rem}.single .content .admonition i.details-icon{position:absolute;top:.6rem;right:.3rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.note.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.25)}.single .content .admonition.abstract.open .admonition-title{background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.25)}.single .content .admonition.info.open .admonition-title{background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.25)}.single .content .admonition.tip.open .admonition-title{background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.25)}.single .content .admonition.success.open .admonition-title{background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.25)}.single .content .admonition.question.open .admonition-title{background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.25)}.single .content .admonition.warning.open .admonition-title{background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.25)}.single .content .admonition.failure.open .admonition-title{background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.25)}.single .content .admonition.danger.open .admonition-title{background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.25)}.single .content .admonition.bug.open .admonition-title{background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.25)}.single .content .admonition.example.open .admonition-title{background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(159,159,159,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(159,159,159,0.1);background-color:rgba(159,159,159,0.25)}.single .content .admonition.quote.open .admonition-title{background-color:rgba(159,159,159,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content .echarts{margin:.5rem 0;text-align:center}.single .content .mapbox{margin:.5rem 0;padding:.5rem 0}.single .content meting-js{margin:.5rem 0}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}[theme=dark] .single .content hr{border-top:1px dashed #363636}.single .content kbd{display:inline-block;padding:.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content kbd{background-color:#292a2d;border:1px solid #363636;border-bottom-color:#363636;-webkit-box-shadow:inset 0 -1px 0 #363636;box-shadow:inset 0 -1px 0 #363636;color:#E5BF78}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all}.single .content .version{height:1.25em;vertical-align:text-bottom}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}[theme=dark] .single .post-footer .post-info{border-bottom:1px solid #363636}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a,.single .post-footer .post-info .post-info-line .post-info-mod a::before,.single .post-footer .post-info .post-info-line .post-info-mod a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a::before,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a::after{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a,.single .post-footer .post-info .post-info-line .post-info-md a::before,.single .post-footer .post-info .post-info-line .post-info-md a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a::before,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a::after{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .group-title{margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:.25rem 0 .25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}[theme=dark] .archive .archive-item-link{color:#a9a9b3}[theme=dark] .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{width:4em;text-align:right;color:#a9a9b3}[theme=dark] .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a,.archive .tag-cloud-tags a::before,.archive .tag-cloud-tags a::after{text-decoration:none;color:#161209}[theme=dark] .archive .tag-cloud-tags a,[theme=dark] .archive .tag-cloud-tags a::before,[theme=dark] .archive .tag-cloud-tags a::after{color:#a9a9b3}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2d96bd}[theme=dark] .archive .tag-cloud-tags a:active,[theme=dark] .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:#a9a9b3}[theme=dark] .archive .tag-cloud-tags a sup{color:#5d5d5f}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{display:inline-block;width:6rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem .2rem;font-size:1.6rem}.home .home-profile .social-links a *{vertical-align:text-bottom}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}[theme=dark] .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}[theme=dark] .home .summary{color:#a9a9b3;border-bottom:1px dashed #363636}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;"}.home .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;line-height:1.5;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2{font-size:1.125rem}.home .summary .content a,.home .summary .content a::before,.home .summary .content a::after{text-decoration:none;color:#2d96bd}[theme=dark] .home .summary .content a,[theme=dark] .home .summary .content a::before,[theme=dark] .home .summary .content a::after{color:#a9a9b3}.home .summary .content a:active,.home .summary .content a:hover{color:#ef3982}[theme=dark] .home .summary .content a:active,[theme=dark] .home .summary .content a:hover{color:#fff}.home .summary .content b,.home .summary .content strong{color:#a9a9b3}[theme=dark] .home .summary .content b,[theme=dark] .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a,.home .summary .post-footer a::before,.home .summary .post-footer a::after{text-decoration:none;color:#2d96bd}[theme=dark] .home .summary .post-footer a,[theme=dark] .home .summary .post-footer a::before,[theme=dark] .home .summary .post-footer a::after{color:#55bde2}.home .summary .post-footer a:active,.home .summary .post-footer a:hover{color:#ef3982}[theme=dark] .home .summary .post-footer a:active,[theme=dark] .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a,.home .summary .post-footer .post-tags a::before,.home .summary .post-footer .post-tags a::after{text-decoration:none;color:#161209}[theme=dark] .home .summary .post-footer .post-tags a,[theme=dark] .home .summary .post-footer .post-tags a::before,[theme=dark] .home .summary .post-footer .post-tags a::after{color:#a9a9b3}.home .summary .post-footer .post-tags a:active,.home .summary .post-footer .post-tags a:hover{color:#2d96bd}[theme=dark] .home .summary .post-footer .post-tags a:active,[theme=dark] .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}header{width:100%;z-index:150;background-color:#f8f8f8}[theme=dark] header{background-color:#252627}header .logo{min-height:1.5em;height:1.5em;vertical-align:text-bottom}header .logo,header .header-title-pre{padding-right:.25rem}header .header-title-post{padding-left:.25rem}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin-right:.5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.menu .menu-item{position:relative}.language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.language-select:hover{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:2.5rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:#f8f8f8;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}[theme=dark] .search input{background-color:#252627}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:.5rem;right:auto}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}[theme=dark] .open .search input,[theme=dark] .search.mobile input{color:#a9a9b3;background-color:#363636}[theme=dark] .open .search input::-webkit-input-placeholder,[theme=dark] .search.mobile input::-webkit-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-moz-placeholder,[theme=dark] .search.mobile input:-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input::-moz-placeholder,[theme=dark] .search.mobile input::-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-ms-input-placeholder,[theme=dark] .search.mobile input:-ms-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input::placeholder,[theme=dark] .search.mobile input::placeholder{color:#5d5d5f}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#a9a9b3}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#a9a9b3}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#a9a9b3}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#a9a9b3}.open .search input::placeholder,.search.mobile input::placeholder{color:#a9a9b3}.open .search .search-button,.search.mobile .search-button{color:#a9a9b3}[theme=dark] .open .search .search-button,[theme=dark] .search.mobile .search-button{color:#5d5d5f}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{padding:0 2rem 0 10vh}#header-desktop .header-wrapper .header-title{font-size:1.5rem}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-inner{float:right}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{border-left:1.5px solid #161209}[theme=dark] #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#363636}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.search{margin:0 -.5rem 0 0}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}[theme=dark] #header-desktop .header-wrapper .menu a.active{color:#fff}#header-desktop.open .header-wrapper .menu .menu-item.search{margin:0 .25rem 0 .5rem}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.5rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}[theme=dark] #header-mobile .header-container .header-wrapper .menu-toggle span{background:#a9a9b3}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{text-align:center;background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;padding-top:.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-button{top:0}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:.75rem}#header-mobile .header-container .menu .menu-item{display:block;line-height:2.5rem}#header-mobile .header-container .menu.active{display:block}[theme=dark] #header-mobile .header-container .menu{background:#252627;border-top-color:#363636}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:2rem;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}[theme=dark] .search-dropdown .dropdown-menu{background-color:#292a2d}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:.875rem;float:right;text-align:right;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e8e8e8}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#323843}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}[theme=dark] .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:.5rem 1rem;float:right;font-size:.8rem;color:#a9a9b3}.search-dropdown .dropdown-menu .search-footer [theme=dark]{color:#5d5d5f}.search-dropdown .dropdown-menu .search-footer a,.search-dropdown .dropdown-menu .search-footer a::before,.search-dropdown .dropdown-menu .search-footer a::after{text-decoration:none;color:#2d96bd}[theme=dark] .search-dropdown .dropdown-menu .search-footer a,[theme=dark] .search-dropdown .dropdown-menu .search-footer a::before,[theme=dark] .search-dropdown .dropdown-menu .search-footer a::after{color:#55bde2}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ef3982}[theme=dark] .search-dropdown .dropdown-menu .search-footer a:active,[theme=dark] .search-dropdown .dropdown-menu .search-footer a:hover{color:#bdebfc}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:2rem;width:100%;text-align:center;line-height:1.25rem;padding:1rem 0}footer .footer-container{font-size:.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .icp-br{display:none}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}[theme=dark] .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}[theme=dark] .pagination li:before,[theme=dark] .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}[theme=dark] .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1440px){.page{width:56%}}@media only screen and (max-width: 1200px){.page{width:52%}#header-desktop .header-wrapper{padding-right:1rem}.search-dropdown.desktop{right:1rem}}@media only screen and (max-width: 960px){#toc-auto{display:none}#toc-static{display:block}.page{width:80%}#header-desktop .header-wrapper{padding-left:1rem}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}body.blur{overflow:hidden}.page{width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}} /*# sourceMappingURL=style.en.min.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/scss/css/style.template.scss_d40178ffcb058d725849178b0a7a43cc.content b/resources/_gen/assets/scss/css/style.template.scss_d40178ffcb058d725849178b0a7a43cc.content index b010afd7e..a9436997f 100644 --- a/resources/_gen/assets/scss/css/style.template.scss_d40178ffcb058d725849178b0a7a43cc.content +++ b/resources/_gen/assets/scss/css/style.template.scss_d40178ffcb058d725849178b0a7a43cc.content @@ -1,3 +1,3 @@ -@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap");html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background-color:rgba(53,166,247,0.25)}[theme=dark] ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;word-wrap:break-word;overflow-wrap:break-word;scrollbar-color:auto}body[theme=dark]{color:#a9a9b3;background-color:#292a2d}input::-ms-clear{display:none}a,a::before,a::after{text-decoration:none;color:#161209}[theme=dark] a,[theme=dark] a::before,[theme=dark] a::after{color:#a9a9b3}a:active,a:hover{color:#2d96bd}[theme=dark] a:active,[theme=dark] a:hover{color:#fff}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#a9a9b3;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}[theme=dark] .details i.details-icon{color:#5d5d5f}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open i.details-icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.details.open .details-content{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;-webkit-border-radius:2rem;-moz-border-radius:2rem;border-radius:2rem}.blur .fixed-button{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}[theme=dark] .fixed-button{color:#5d5d5f;background:#252627}[theme=dark] .fixed-button:hover,[theme=dark] .fixed-button:active{color:#a9a9b3}#back-to-top{display:block;bottom:1.5rem}#view-comments{bottom:4.5rem}img{-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;"}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.page{position:relative;max-width:800px;width:60%;margin:0 auto;padding-top:3.5rem}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.85rem;padding-left:.8rem;list-style:none}.toc .toc-content ul a:first-child::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}[theme=dark] .toc .toc-content ul a:first-child::before{color:#55bde2}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f5f5f5}.toc ruby rt{color:#a9a9b3}[theme=dark] .toc ruby{background:#272C34}[theme=dark] .toc ruby rt{color:#5d5d5f}#toc-auto{display:block;position:absolute;width:9999px;padding:0 .8rem;border-left:4px solid #f0f0f0;word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:0;visibility:hidden}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}[theme=dark] #toc-auto{border-left-color:#363636}#toc-auto .toc-title{margin:.8rem 0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:.625rem 0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}[theme=dark] #toc-auto .toc-content a.active{color:#55bde2}#toc-auto .toc-content a.active::before{color:#ef3982}[theme=dark] #toc-auto .toc-content a.active::before{color:#bdebfc}#toc-static{display:none;margin:.8rem 0}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 .75rem;background:#e6e6e6}[theme=dark] #toc-static .toc-title{background:#1a1d23}#toc-static .toc-content{background-color:#f5f5f5}#toc-static .toc-content>nav>ul{margin:0;padding:.4rem 1rem .4rem 1.8rem}[theme=dark] #toc-static .toc-content{background-color:#272C34}#toc-static.open .toc-title{background:#ededed}[theme=dark] #toc-static.open .toc-title{background:#20252b}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}[theme=dark] .single .post-meta{color:#5d5d5f}.single .post-meta a,.single .post-meta a::before,.single .post-meta a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-meta a,[theme=dark] .single .post-meta a::before,[theme=dark] .single .post-meta a::after{color:#a9a9b3}.single .post-meta a:active,.single .post-meta a:hover{color:#ef3982}[theme=dark] .single .post-meta a:active,[theme=dark] .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{margin:.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single .content>h2{font-size:1.5rem}.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}[theme=dark] .single .content h2,[theme=dark] .single .content h3,[theme=dark] .single .content h4,[theme=dark] .single .content h5,[theme=dark] .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}[theme=dark] .single .content>h2>.header-mark::before,[theme=dark] .single .content>h3>.header-mark::before,[theme=dark] .single .content>h4>.header-mark::before,[theme=dark] .single .content>h5>.header-mark::before,[theme=dark] .single .content>h6>.header-mark::before{color:#55bde2}.single .content>h2>.header-mark::before{content:"#"}.single .content p{margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}[theme=dark] .single .content b,[theme=dark] .single .content strong{color:#ddd}.single .content a,.single .content a::before,.single .content a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .content a,[theme=dark] .single .content a::before,[theme=dark] .single .content a::after{color:#55bde2}.single .content a:active,.single .content a:hover{color:#ef3982}[theme=dark] .single .content a:active,[theme=dark] .single .content a:hover{color:#bdebfc}.single .content a{word-wrap:break-word;overflow-wrap:break-word}[theme=dark] .single .content a b,[theme=dark] .single .content a strong{color:#55bde2}.single .content [theme=dark] a:hover b,.single .content [theme=dark] a:hover strong{color:#bdebfc}.single .content ul,.single .content ol{margin:.5rem 0;padding-left:2.5rem}.single .content ul{list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}[theme=dark] .single .content ruby{background:#272C34}[theme=dark] .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}[theme=dark] .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}[theme=dark] .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}[theme=dark] .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px solid #e8e8e8}[theme=dark] .single .content .table-wrapper>table th,[theme=dark] .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content figure{margin:.5rem;text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{-o-object-fit:none;object-fit:none;font-family:"object-fit: none;"}.single .content blockquote{display:block;border-left:0.5rem solid #6bd6fd;background-color:rgba(107,214,253,0.2);padding:.25rem .75rem;margin:1rem 0}[theme=dark] .single .content blockquote{border-left-color:#59c5ec;background-color:rgba(89,197,236,0.2)}.single .content .footnotes{color:#a9a9b3}[theme=dark] .single .content .footnotes{color:#5d5d5f}.single .content .footnotes p{margin:.25rem 0}.single .content code{display:inline-block;max-width:100%;padding:0 .4rem;word-wrap:break-word;overflow-wrap:break-word;-webkit-line-break:anywhere;-ms-line-break:anywhere;line-break:anywhere;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content code{color:#E5BF78}.single .content pre{margin:0;padding:.25rem 0 .25rem .5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.single .content pre code{padding:0}.single .content pre img{min-height:1em;max-height:1.2em;vertical-align:text-bottom}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}[theme=dark] .single .content code,[theme=dark] .single .content pre,[theme=dark] .single .content .highlight table,[theme=dark] .single .content .highlight tr,[theme=dark] .single .content .highlight td{background:#272C34}.single .content .highlight,.single .content .gist{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight{line-height:1.4em;margin:.5rem 0}.single .content .highlight>.chroma{position:relative}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;color:#9c9c9c;background:#e1e1e1}[theme=dark] .single .content .highlight>.chroma .code-header{color:#b1b0b0;background:#1a1d23}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:.4rem}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:.2rem;content:'Code'}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-cs .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"LaTeX"}.single .content .highlight>.chroma .code-header.language-less .code-title::after{content:"Less"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Lisp"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Makefile"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"Markdown"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"Scss"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Shell"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"Vue"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .lntd:first-child{min-width:1.6rem;text-align:right}.single .content .highlight>.chroma .lntd:last-child{width:100%}.single .content .highlight>.chroma .lntd:last-child pre{min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}.single .content .highlight>.chroma .ln{padding-right:.75rem}.single .content .highlight>.chroma .hl{display:block;background-color:#dcdcdc}[theme=dark] .single .content .highlight>.chroma .hl{background-color:#1c2025}.single .content .highlight>.chroma .ln,.single .content .highlight>.chroma .lnt{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .ln,[theme=dark] .single .content .highlight>.chroma .lnt{color:#5d5d5f}.single .content .highlight>.chroma .arrow{padding:0 .2rem;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .ellipses{padding:.4rem}.single .content .highlight>.chroma .copy{display:none;padding:.4rem}.single .content .highlight>.chroma .copy:hover{cursor:pointer;color:#2d96bd}[theme=dark] .single .content .highlight>.chroma .copy:hover{color:#fff}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma.open .code-header{background:#ededed}[theme=dark] .single .content .highlight>.chroma.open .code-header{background:#20252b}.single .content .highlight>.chroma.open .table-wrapper{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight .c,.single .content .highlight .ch,.single .content .highlight .cm,.single .content .highlight .c1,.single .content .highlight .cs,.single .content .highlight .cp,.single .content .highlight .cpf{font-style:italic}.single .content .highlight .gl{text-decoration:underline}.single .content .highlight .p{color:#a9a9b3}.single .content .highlight .k{color:#b501a9}.single .content .highlight .kc{color:#b501a9}.single .content .highlight .kd{color:#b501a9}.single .content .highlight .kn{color:#b501a9}.single .content .highlight .kp{color:#b501a9}.single .content .highlight .kr{color:#b501a9}.single .content .highlight .kt{color:#b501a9}.single .content .highlight .n{color:#333}.single .content .highlight .na{color:#2b77fa}.single .content .highlight .nb{color:#f74840}.single .content .highlight .bp{color:#f74840}.single .content .highlight .nc{color:#cb8100}.single .content .highlight .no{color:#2b77fa}.single .content .highlight .nd{color:#0086c1}.single .content .highlight .ni{color:#2b77fa}.single .content .highlight .ne{color:#2b77fa}.single .content .highlight .nf{color:#2b77fa}.single .content .highlight .fm{color:#1ccad6}.single .content .highlight .nl{color:#2b77fa}.single .content .highlight .nn{color:#2b77fa}.single .content .highlight .nx{color:#333}.single .content .highlight .py{color:#2b77fa}.single .content .highlight .nt{color:#2b77fa}.single .content .highlight .nv{color:#2b77fa}.single .content .highlight .vc{color:#2b77fa}.single .content .highlight .vg{color:#2b77fa}.single .content .highlight .vi{color:#2b77fa}.single .content .highlight .vm{color:#2b77fa}.single .content .highlight .l{color:#2aa198}.single .content .highlight .ld{color:#2aa198}.single .content .highlight .s{color:#24a443}.single .content .highlight .sa{color:#24a443}.single .content .highlight .sb{color:#24a443}.single .content .highlight .sc{color:#24a443}.single .content .highlight .dl{color:#24a443}.single .content .highlight .sd{color:#24a443}.single .content .highlight .s2{color:#24a443}.single .content .highlight .se{color:#24a443}.single .content .highlight .sh{color:#24a443}.single .content .highlight .si{color:#24a443}.single .content .highlight .sx{color:#24a443}.single .content .highlight .sr{color:#24a443}.single .content .highlight .s1{color:#24a443}.single .content .highlight .ss{color:#24a443}.single .content .highlight .m{color:#e2893c}.single .content .highlight .mb{color:#e2893c}.single .content .highlight .mf{color:#e2893c}.single .content .highlight .mh{color:#e2893c}.single .content .highlight .mi{color:#e2893c}.single .content .highlight .il{color:#e2893c}.single .content .highlight .mo{color:#e2893c}.single .content .highlight .o{color:#f19b04}.single .content .highlight .ow{color:#b501a9}.single .content .highlight .c{color:#a0a1a8}.single .content .highlight .ch{color:#a0a1a8}.single .content .highlight .cm{color:#a0a1a8}.single .content .highlight .c1{color:#a0a1a8}.single .content .highlight .cs{color:#a0a1a8}.single .content .highlight .cp{color:#a0a1a8}.single .content .highlight .cpf{color:#a0a1a8}.single .content .highlight .g{color:#e72d40}.single .content .highlight .gd{color:#e72d40}.single .content .highlight .ge{color:#e72d40}.single .content .highlight .gr{color:#e72d40}.single .content .highlight .gh{color:#e72d40}.single .content .highlight .gi{color:#e72d40}.single .content .highlight .go{color:#e72d40}.single .content .highlight .gp{color:#e72d40}.single .content .highlight .gs{color:#e72d40}.single .content .highlight .gu{color:#e72d40}.single .content .highlight .gt{color:#e72d40}.single .content .highlight .w{color:#bbb}[theme=dark] .single .content .highlight .p{color:#a9a9b3}[theme=dark] .single .content .highlight .k{color:#d371e3}[theme=dark] .single .content .highlight .kc{color:#d371e3}[theme=dark] .single .content .highlight .kd{color:#d371e3}[theme=dark] .single .content .highlight .kn{color:#d371e3}[theme=dark] .single .content .highlight .kp{color:#d371e3}[theme=dark] .single .content .highlight .kr{color:#d371e3}[theme=dark] .single .content .highlight .kt{color:#d371e3}[theme=dark] .single .content .highlight .n{color:#a9b2c0}[theme=dark] .single .content .highlight .na{color:#41b0f5}[theme=dark] .single .content .highlight .nb{color:#19b9c4}[theme=dark] .single .content .highlight .bp{color:#ecbf6f}[theme=dark] .single .content .highlight .nc{color:#ecbf6f}[theme=dark] .single .content .highlight .no{color:#41b0f5}[theme=dark] .single .content .highlight .nd{color:#ecbf6f}[theme=dark] .single .content .highlight .ni{color:#41b0f5}[theme=dark] .single .content .highlight .ne{color:#41b0f5}[theme=dark] .single .content .highlight .nf{color:#41b0f5}[theme=dark] .single .content .highlight .fm{color:#19b9c4}[theme=dark] .single .content .highlight .nl{color:#41b0f5}[theme=dark] .single .content .highlight .nn{color:#41b0f5}[theme=dark] .single .content .highlight .nx{color:#a9a9b3}[theme=dark] .single .content .highlight .py{color:#41b0f5}[theme=dark] .single .content .highlight .nt{color:#41b0f5}[theme=dark] .single .content .highlight .nv{color:#41b0f5}[theme=dark] .single .content .highlight .vc{color:#41b0f5}[theme=dark] .single .content .highlight .vg{color:#41b0f5}[theme=dark] .single .content .highlight .vi{color:#41b0f5}[theme=dark] .single .content .highlight .vm{color:#41b0f5}[theme=dark] .single .content .highlight .l{color:#2aa198}[theme=dark] .single .content .highlight .ld{color:#2aa198}[theme=dark] .single .content .highlight .s{color:#8cc570}[theme=dark] .single .content .highlight .sa{color:#8cc570}[theme=dark] .single .content .highlight .sb{color:#8cc570}[theme=dark] .single .content .highlight .sc{color:#8cc570}[theme=dark] .single .content .highlight .dl{color:#8cc570}[theme=dark] .single .content .highlight .sd{color:#8cc570}[theme=dark] .single .content .highlight .s2{color:#8cc570}[theme=dark] .single .content .highlight .se{color:#8cc570}[theme=dark] .single .content .highlight .sh{color:#8cc570}[theme=dark] .single .content .highlight .si{color:#8cc570}[theme=dark] .single .content .highlight .sx{color:#8cc570}[theme=dark] .single .content .highlight .sr{color:#8cc570}[theme=dark] .single .content .highlight .s1{color:#8cc570}[theme=dark] .single .content .highlight .ss{color:#8cc570}[theme=dark] .single .content .highlight .m{color:#db985c}[theme=dark] .single .content .highlight .mb{color:#db985c}[theme=dark] .single .content .highlight .mf{color:#db985c}[theme=dark] .single .content .highlight .mh{color:#db985c}[theme=dark] .single .content .highlight .mi{color:#db985c}[theme=dark] .single .content .highlight .il{color:#db985c}[theme=dark] .single .content .highlight .mo{color:#db985c}[theme=dark] .single .content .highlight .o{color:#ecbf6f}[theme=dark] .single .content .highlight .ow{color:#d371e3}[theme=dark] .single .content .highlight .c{color:#7e848f}[theme=dark] .single .content .highlight .ch{color:#7e848f}[theme=dark] .single .content .highlight .cm{color:#7e848f}[theme=dark] .single .content .highlight .c1{color:#7e848f}[theme=dark] .single .content .highlight .cs{color:#7e848f}[theme=dark] .single .content .highlight .cp{color:#7e848f}[theme=dark] .single .content .highlight .cpf{color:#7e848f}[theme=dark] .single .content .highlight .g{color:#f16372}[theme=dark] .single .content .highlight .gd{color:#f16372}[theme=dark] .single .content .highlight .ge{color:#f16372}[theme=dark] .single .content .highlight .gr{color:#f16372}[theme=dark] .single .content .highlight .gh{color:#f16372}[theme=dark] .single .content .highlight .gi{color:#f16372}[theme=dark] .single .content .highlight .go{color:#f16372}[theme=dark] .single .content .highlight .gp{color:#f16372}[theme=dark] .single .content .highlight .gs{color:#f16372}[theme=dark] .single .content .highlight .gu{color:#f16372}[theme=dark] .single .content .highlight .gt{color:#f16372}[theme=dark] .single .content .highlight .w{color:#bbb}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a,.single .content .gist .gist-meta a::before,.single .content .gist .gist-meta a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .content .gist .gist-meta a,[theme=dark] .single .content .gist .gist-meta a::before,[theme=dark] .single .content .gist .gist-meta a::after{color:#55bde2}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ef3982}[theme=dark] .single .content .gist .gist-meta a:active,[theme=dark] .single .content .gist .gist-meta a:hover{color:#bdebfc}[theme=dark] .single .content .gist .gist-meta{background-color:#1c2025}[theme=dark] .single .content .gist .highlight{background:#141414}[theme=dark] .single .content .gist .blob-num,[theme=dark] .single .content .gist .blob-code-inner,[theme=dark] .single .content .gist .highlight,[theme=dark] .single .content .gist .pl-enm,[theme=dark] .single .content .gist .pl-ko,[theme=dark] .single .content .gist .pl-mo,[theme=dark] .single .content .gist .pl-mp1 .pl-sf,[theme=dark] .single .content .gist .pl-ms,[theme=dark] .single .content .gist .pl-pdc1,[theme=dark] .single .content .gist .pl-scp,[theme=dark] .single .content .gist .pl-smc,[theme=dark] .single .content .gist .pl-som,[theme=dark] .single .content .gist .pl-va,[theme=dark] .single .content .gist .pl-vpf,[theme=dark] .single .content .gist .pl-vpu,[theme=dark] .single .content .gist .pl-mdr{color:#aab1bf}[theme=dark] .single .content .gist .pl-mb,[theme=dark] .single .content .gist .pl-pdb{font-weight:700}[theme=dark] .single .content .gist .pl-c,[theme=dark] .single .content .gist .pl-c span,[theme=dark] .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}[theme=dark] .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}[theme=dark] .single .content .gist .pl-ef,[theme=dark] .single .content .gist .pl-en,[theme=dark] .single .content .gist .pl-enf,[theme=dark] .single .content .gist .pl-eoai,[theme=dark] .single .content .gist .pl-kos,[theme=dark] .single .content .gist .pl-mh .pl-pdh,[theme=dark] .single .content .gist .pl-mr{color:#61afef}[theme=dark] .single .content .gist .pl-ens,[theme=dark] .single .content .gist .pl-vi{color:#be5046}[theme=dark] .single .content .gist .pl-enti,[theme=dark] .single .content .gist .pl-mai .pl-sf,[theme=dark] .single .content .gist .pl-ml,[theme=dark] .single .content .gist .pl-sf,[theme=dark] .single .content .gist .pl-sr,[theme=dark] .single .content .gist .pl-sr .pl-sra,[theme=dark] .single .content .gist .pl-src,[theme=dark] .single .content .gist .pl-st,[theme=dark] .single .content .gist .pl-vo{color:#56b5c2}[theme=dark] .single .content .gist .pl-eoi,[theme=dark] .single .content .gist .pl-mri,[theme=dark] .single .content .gist .pl-pds,[theme=dark] .single .content .gist .pl-pse .pl-s1,[theme=dark] .single .content .gist .pl-s,[theme=dark] .single .content .gist .pl-s1{color:#97c279}[theme=dark] .single .content .gist .pl-k,[theme=dark] .single .content .gist .pl-kolp,[theme=dark] .single .content .gist .pl-mc,[theme=dark] .single .content .gist .pl-pde{color:#c578dd}[theme=dark] .single .content .gist .pl-mi,[theme=dark] .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}[theme=dark] .single .content .gist .pl-mp,[theme=dark] .single .content .gist .pl-stp{color:#818896}[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi,[theme=dark] .single .content .gist .pl-mdr{font-weight:400}[theme=dark] .single .content .gist .pl-mdht,[theme=dark] .single .content .gist .pl-mi1{color:#97c279;background:#020}[theme=dark] .single .content .gist .pl-md,[theme=dark] .single .content .gist .pl-mdhf{color:#df6b75;background:#200}[theme=dark] .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}[theme=dark] .single .content .gist .pl-ib{background:#df6b75}[theme=dark] .single .content .gist .pl-ii{background:#e0c184;color:#fff}[theme=dark] .single .content .gist .pl-iu{background:#e05151}[theme=dark] .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}[theme=dark] .single .content .gist .pl-c1,[theme=dark] .single .content .gist .pl-cn,[theme=dark] .single .content .gist .pl-e,[theme=dark] .single .content .gist .pl-eoa,[theme=dark] .single .content .gist .pl-eoac,[theme=dark] .single .content .gist .pl-eoac .pl-pde,[theme=dark] .single .content .gist .pl-kou,[theme=dark] .single .content .gist .pl-mm,[theme=dark] .single .content .gist .pl-mp .pl-s3,[theme=dark] .single .content .gist .pl-mq,[theme=dark] .single .content .gist .pl-s3,[theme=dark] .single .content .gist .pl-sok,[theme=dark] .single .content .gist .pl-sv,[theme=dark] .single .content .gist .pl-mb{color:#d19965}[theme=dark] .single .content .gist .pl-enc,[theme=dark] .single .content .gist .pl-entc,[theme=dark] .single .content .gist .pl-pse .pl-s2,[theme=dark] .single .content .gist .pl-s2,[theme=dark] .single .content .gist .pl-sc,[theme=dark] .single .content .gist .pl-smp,[theme=dark] .single .content .gist .pl-sr .pl-sre,[theme=dark] .single .content .gist .pl-stj,[theme=dark] .single .content .gist .pl-v,[theme=dark] .single .content .gist .pl-pdb{color:#e4bf7a}[theme=dark] .single .content .gist .pl-ent,[theme=dark] .single .content .gist .pl-entl,[theme=dark] .single .content .gist .pl-entm,[theme=dark] .single .content .gist .pl-mh,[theme=dark] .single .content .gist .pl-pdv,[theme=dark] .single .content .gist .pl-smi,[theme=dark] .single .content .gist .pl-sol,[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi{color:#df6b75}[theme=dark] .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:1rem 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{font-weight:bold;margin:0 -0.75rem;padding:.25rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{padding:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;position:absolute;top:.6rem;left:.4rem}.single .content .admonition i.details-icon{position:absolute;top:.6rem;right:.3rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.note.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.25)}.single .content .admonition.abstract.open .admonition-title{background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.25)}.single .content .admonition.info.open .admonition-title{background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.25)}.single .content .admonition.tip.open .admonition-title{background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.25)}.single .content .admonition.success.open .admonition-title{background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.25)}.single .content .admonition.question.open .admonition-title{background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.25)}.single .content .admonition.warning.open .admonition-title{background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.25)}.single .content .admonition.failure.open .admonition-title{background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.25)}.single .content .admonition.danger.open .admonition-title{background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.25)}.single .content .admonition.bug.open .admonition-title{background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.25)}.single .content .admonition.example.open .admonition-title{background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(159,159,159,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(159,159,159,0.1);background-color:rgba(159,159,159,0.25)}.single .content .admonition.quote.open .admonition-title{background-color:rgba(159,159,159,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content .echarts{margin:.5rem 0;text-align:center}.single .content .mapbox{margin:.5rem 0;padding:.5rem 0}.single .content meting-js{margin:.5rem 0}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}[theme=dark] .single .content hr{border-top:1px dashed #363636}.single .content kbd{display:inline-block;padding:.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content kbd{background-color:#292a2d;border:1px solid #363636;border-bottom-color:#363636;-webkit-box-shadow:inset 0 -1px 0 #363636;box-shadow:inset 0 -1px 0 #363636;color:#E5BF78}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all}.single .content .version{height:1.25em;vertical-align:text-bottom}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}[theme=dark] .single .post-footer .post-info{border-bottom:1px solid #363636}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a,.single .post-footer .post-info .post-info-line .post-info-mod a::before,.single .post-footer .post-info .post-info-line .post-info-mod a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a::before,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a::after{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a,.single .post-footer .post-info .post-info-line .post-info-md a::before,.single .post-footer .post-info .post-info-line .post-info-md a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a::before,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a::after{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .group-title{margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:.25rem 0 .25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}[theme=dark] .archive .archive-item-link{color:#a9a9b3}[theme=dark] .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{width:4em;text-align:right;color:#a9a9b3}[theme=dark] .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a,.archive .tag-cloud-tags a::before,.archive .tag-cloud-tags a::after{text-decoration:none;color:#161209}[theme=dark] .archive .tag-cloud-tags a,[theme=dark] .archive .tag-cloud-tags a::before,[theme=dark] .archive .tag-cloud-tags a::after{color:#a9a9b3}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2d96bd}[theme=dark] .archive .tag-cloud-tags a:active,[theme=dark] .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:#a9a9b3}[theme=dark] .archive .tag-cloud-tags a sup{color:#5d5d5f}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{display:inline-block;width:6rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem .2rem;font-size:1.6rem}.home .home-profile .social-links a *{vertical-align:text-bottom}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}[theme=dark] .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}[theme=dark] .home .summary{color:#a9a9b3;border-bottom:1px dashed #363636}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;"}.home .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;line-height:1.5;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2{font-size:1.125rem}.home .summary .content a,.home .summary .content a::before,.home .summary .content a::after{text-decoration:none;color:#2d96bd}[theme=dark] .home .summary .content a,[theme=dark] .home .summary .content a::before,[theme=dark] .home .summary .content a::after{color:#a9a9b3}.home .summary .content a:active,.home .summary .content a:hover{color:#ef3982}[theme=dark] .home .summary .content a:active,[theme=dark] .home .summary .content a:hover{color:#fff}.home .summary .content b,.home .summary .content strong{color:#a9a9b3}[theme=dark] .home .summary .content b,[theme=dark] .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a,.home .summary .post-footer a::before,.home .summary .post-footer a::after{text-decoration:none;color:#2d96bd}[theme=dark] .home .summary .post-footer a,[theme=dark] .home .summary .post-footer a::before,[theme=dark] .home .summary .post-footer a::after{color:#55bde2}.home .summary .post-footer a:active,.home .summary .post-footer a:hover{color:#ef3982}[theme=dark] .home .summary .post-footer a:active,[theme=dark] .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a,.home .summary .post-footer .post-tags a::before,.home .summary .post-footer .post-tags a::after{text-decoration:none;color:#161209}[theme=dark] .home .summary .post-footer .post-tags a,[theme=dark] .home .summary .post-footer .post-tags a::before,[theme=dark] .home .summary .post-footer .post-tags a::after{color:#a9a9b3}.home .summary .post-footer .post-tags a:active,.home .summary .post-footer .post-tags a:hover{color:#2d96bd}[theme=dark] .home .summary .post-footer .post-tags a:active,[theme=dark] .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}header{width:100%;z-index:150;background-color:#f8f8f8}[theme=dark] header{background-color:#252627}header .logo{min-height:1.5em;height:1.5em;vertical-align:text-bottom}header .logo,header .header-title-pre{padding-right:.25rem}header .header-title-post{padding-left:.25rem}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin-right:.5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.menu .menu-item{position:relative}.language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.language-select:hover{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:2.5rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:#f8f8f8;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}[theme=dark] .search input{background-color:#252627}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:.5rem;right:auto}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}[theme=dark] .open .search input,[theme=dark] .search.mobile input{color:#a9a9b3;background-color:#363636}[theme=dark] .open .search input::-webkit-input-placeholder,[theme=dark] .search.mobile input::-webkit-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-moz-placeholder,[theme=dark] .search.mobile input:-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input::-moz-placeholder,[theme=dark] .search.mobile input::-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-ms-input-placeholder,[theme=dark] .search.mobile input:-ms-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input::placeholder,[theme=dark] .search.mobile input::placeholder{color:#5d5d5f}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#a9a9b3}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#a9a9b3}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#a9a9b3}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#a9a9b3}.open .search input::placeholder,.search.mobile input::placeholder{color:#a9a9b3}.open .search .search-button,.search.mobile .search-button{color:#a9a9b3}[theme=dark] .open .search .search-button,[theme=dark] .search.mobile .search-button{color:#5d5d5f}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{padding:0 2rem 0 10vh}#header-desktop .header-wrapper .header-title{font-size:1.5rem}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-inner{float:right}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{border-left:1.5px solid #161209}[theme=dark] #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#363636}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.search{margin:0 -.5rem 0 0}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}[theme=dark] #header-desktop .header-wrapper .menu a.active{color:#fff}#header-desktop.open .header-wrapper .menu .menu-item.search{margin:0 .25rem 0 .5rem}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.5rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}[theme=dark] #header-mobile .header-container .header-wrapper .menu-toggle span{background:#a9a9b3}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{text-align:center;background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;padding-top:.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-button{top:0}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:.75rem}#header-mobile .header-container .menu .menu-item{display:block;line-height:2.5rem}#header-mobile .header-container .menu.active{display:block}[theme=dark] #header-mobile .header-container .menu{background:#252627;border-top-color:#363636}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:2rem;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}[theme=dark] .search-dropdown .dropdown-menu{background-color:#292a2d}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:.875rem;float:right;text-align:right;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e8e8e8}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#323843}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}[theme=dark] .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:.5rem 1rem;float:right;font-size:.8rem;color:#a9a9b3}.search-dropdown .dropdown-menu .search-footer [theme=dark]{color:#5d5d5f}.search-dropdown .dropdown-menu .search-footer a,.search-dropdown .dropdown-menu .search-footer a::before,.search-dropdown .dropdown-menu .search-footer a::after{text-decoration:none;color:#2d96bd}[theme=dark] .search-dropdown .dropdown-menu .search-footer a,[theme=dark] .search-dropdown .dropdown-menu .search-footer a::before,[theme=dark] .search-dropdown .dropdown-menu .search-footer a::after{color:#55bde2}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ef3982}[theme=dark] .search-dropdown .dropdown-menu .search-footer a:active,[theme=dark] .search-dropdown .dropdown-menu .search-footer a:hover{color:#bdebfc}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}footer .footer-container{font-size:.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .icp-br{display:none}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}[theme=dark] .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}[theme=dark] .pagination li:before,[theme=dark] .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}[theme=dark] .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1440px){.page{width:56%}}@media only screen and (max-width: 1200px){.page{width:52%}#header-desktop .header-wrapper{padding-right:1rem}.search-dropdown.desktop{right:1rem}}@media only screen and (max-width: 960px){#toc-auto{display:none}#toc-static{display:block}.page{width:80%}#header-desktop .header-wrapper{padding-left:1rem}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}body.blur{overflow:hidden}.page{width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}} +@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap");html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:.5rem;height:.5rem}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background-color:rgba(53,166,247,0.25)}[theme=dark] ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;word-wrap:break-word;overflow-wrap:break-word;scrollbar-color:auto}body[theme=dark]{color:#a9a9b3;background-color:#292a2d}input::-ms-clear{display:none}a,a::before,a::after{text-decoration:none;color:#161209}[theme=dark] a,[theme=dark] a::before,[theme=dark] a::after{color:#a9a9b3}a:active,a:hover{color:#2d96bd}[theme=dark] a:active,[theme=dark] a:hover{color:#fff}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#a9a9b3;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}[theme=dark] .details i.details-icon{color:#5d5d5f}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open i.details-icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.details.open .details-content{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;-webkit-border-radius:2rem;-moz-border-radius:2rem;border-radius:2rem}.blur .fixed-button{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}[theme=dark] .fixed-button{color:#5d5d5f;background:#252627}[theme=dark] .fixed-button:hover,[theme=dark] .fixed-button:active{color:#a9a9b3}#back-to-top{display:block;bottom:1.5rem}#view-comments{bottom:4.5rem}img{-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;"}.wrapper{display:flex;flex-direction:column;min-height:100vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding:0 1rem}.page{position:relative;max-width:800px;width:60%;margin:0 auto;padding-top:3.5rem}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.85rem;padding-left:.8rem;list-style:none}.toc .toc-content ul a:first-child::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}[theme=dark] .toc .toc-content ul a:first-child::before{color:#55bde2}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f5f5f5}.toc ruby rt{color:#a9a9b3}[theme=dark] .toc ruby{background:#272C34}[theme=dark] .toc ruby rt{color:#5d5d5f}#toc-auto{display:block;position:absolute;width:9999px;padding:0 .8rem;border-left:4px solid #f0f0f0;word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:0;visibility:hidden}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}[theme=dark] #toc-auto{border-left-color:#363636}#toc-auto .toc-title{margin:.8rem 0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:.625rem 0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}[theme=dark] #toc-auto .toc-content a.active{color:#55bde2}#toc-auto .toc-content a.active::before{color:#ef3982}[theme=dark] #toc-auto .toc-content a.active::before{color:#bdebfc}#toc-static{display:none;margin:.8rem 0}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 .75rem;background:#e6e6e6}[theme=dark] #toc-static .toc-title{background:#1a1d23}#toc-static .toc-content{background-color:#f5f5f5}#toc-static .toc-content>nav>ul{margin:0;padding:.4rem 1rem .4rem 1.8rem}[theme=dark] #toc-static .toc-content{background-color:#272C34}#toc-static.open .toc-title{background:#ededed}[theme=dark] #toc-static.open .toc-title{background:#20252b}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}[theme=dark] .single .post-meta{color:#5d5d5f}.single .post-meta a,.single .post-meta a::before,.single .post-meta a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-meta a,[theme=dark] .single .post-meta a::before,[theme=dark] .single .post-meta a::after{color:#a9a9b3}.single .post-meta a:active,.single .post-meta a:hover{color:#ef3982}[theme=dark] .single .post-meta a:active,[theme=dark] .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{margin:.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single .content>h2{font-size:1.5rem}.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}[theme=dark] .single .content h2,[theme=dark] .single .content h3,[theme=dark] .single .content h4,[theme=dark] .single .content h5,[theme=dark] .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}[theme=dark] .single .content>h2>.header-mark::before,[theme=dark] .single .content>h3>.header-mark::before,[theme=dark] .single .content>h4>.header-mark::before,[theme=dark] .single .content>h5>.header-mark::before,[theme=dark] .single .content>h6>.header-mark::before{color:#55bde2}.single .content>h2>.header-mark::before{content:"#"}.single .content p{margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}[theme=dark] .single .content b,[theme=dark] .single .content strong{color:#ddd}.single .content a,.single .content a::before,.single .content a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .content a,[theme=dark] .single .content a::before,[theme=dark] .single .content a::after{color:#55bde2}.single .content a:active,.single .content a:hover{color:#ef3982}[theme=dark] .single .content a:active,[theme=dark] .single .content a:hover{color:#bdebfc}.single .content a{word-wrap:break-word;overflow-wrap:break-word}[theme=dark] .single .content a b,[theme=dark] .single .content a strong{color:#55bde2}.single .content [theme=dark] a:hover b,.single .content [theme=dark] a:hover strong{color:#bdebfc}.single .content ul,.single .content ol{margin:.5rem 0;padding-left:2.5rem}.single .content ul{list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}[theme=dark] .single .content ruby{background:#272C34}[theme=dark] .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}[theme=dark] .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}[theme=dark] .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}[theme=dark] .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px solid #e8e8e8}[theme=dark] .single .content .table-wrapper>table th,[theme=dark] .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content figure{margin:.5rem;text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{-o-object-fit:none;object-fit:none;font-family:"object-fit: none;"}.single .content blockquote{display:block;border-left:0.5rem solid #6bd6fd;background-color:rgba(107,214,253,0.2);padding:.25rem .75rem;margin:1rem 0}[theme=dark] .single .content blockquote{border-left-color:#59c5ec;background-color:rgba(89,197,236,0.2)}.single .content .footnotes{color:#a9a9b3}[theme=dark] .single .content .footnotes{color:#5d5d5f}.single .content .footnotes p{margin:.25rem 0}.single .content code{display:inline-block;max-width:100%;padding:0 .4rem;word-wrap:break-word;overflow-wrap:break-word;-webkit-line-break:anywhere;-ms-line-break:anywhere;line-break:anywhere;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content code{color:#E5BF78}.single .content pre{margin:0;padding:.25rem 0 .25rem .5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.single .content pre code{padding:0}.single .content pre img{min-height:1em;max-height:1.2em;vertical-align:text-bottom}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}[theme=dark] .single .content code,[theme=dark] .single .content pre,[theme=dark] .single .content .highlight table,[theme=dark] .single .content .highlight tr,[theme=dark] .single .content .highlight td{background:#272C34}.single .content .highlight,.single .content .gist{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight{line-height:1.4em;margin:.5rem 0}.single .content .highlight>.chroma{position:relative}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;color:#9c9c9c;background:#e1e1e1}[theme=dark] .single .content .highlight>.chroma .code-header{color:#b1b0b0;background:#1a1d23}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:.4rem}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:.2rem;content:'Code'}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-cs .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"LaTeX"}.single .content .highlight>.chroma .code-header.language-less .code-title::after{content:"Less"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Lisp"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Makefile"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"Markdown"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"Scss"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Shell"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"Vue"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .lntd:first-child{min-width:1.6rem;text-align:right}.single .content .highlight>.chroma .lntd:last-child{width:100%}.single .content .highlight>.chroma .lntd:last-child pre{min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}.single .content .highlight>.chroma .ln{padding-right:.75rem}.single .content .highlight>.chroma .hl{display:block;background-color:#dcdcdc}[theme=dark] .single .content .highlight>.chroma .hl{background-color:#1c2025}.single .content .highlight>.chroma .ln,.single .content .highlight>.chroma .lnt{color:#a9a9b3}[theme=dark] .single .content .highlight>.chroma .ln,[theme=dark] .single .content .highlight>.chroma .lnt{color:#5d5d5f}.single .content .highlight>.chroma .arrow{padding:0 .2rem;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .ellipses{padding:.4rem}.single .content .highlight>.chroma .copy{display:none;padding:.4rem}.single .content .highlight>.chroma .copy:hover{cursor:pointer;color:#2d96bd}[theme=dark] .single .content .highlight>.chroma .copy:hover{color:#fff}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.8s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma.open .code-header{background:#ededed}[theme=dark] .single .content .highlight>.chroma.open .code-header{background:#20252b}.single .content .highlight>.chroma.open .table-wrapper{max-height:9999px;-webkit-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.8s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight .c,.single .content .highlight .ch,.single .content .highlight .cm,.single .content .highlight .c1,.single .content .highlight .cs,.single .content .highlight .cp,.single .content .highlight .cpf{font-style:italic}.single .content .highlight .gl{text-decoration:underline}.single .content .highlight .p{color:#a9a9b3}.single .content .highlight .k{color:#b501a9}.single .content .highlight .kc{color:#b501a9}.single .content .highlight .kd{color:#b501a9}.single .content .highlight .kn{color:#b501a9}.single .content .highlight .kp{color:#b501a9}.single .content .highlight .kr{color:#b501a9}.single .content .highlight .kt{color:#b501a9}.single .content .highlight .n{color:#333}.single .content .highlight .na{color:#2b77fa}.single .content .highlight .nb{color:#f74840}.single .content .highlight .bp{color:#f74840}.single .content .highlight .nc{color:#cb8100}.single .content .highlight .no{color:#2b77fa}.single .content .highlight .nd{color:#0086c1}.single .content .highlight .ni{color:#2b77fa}.single .content .highlight .ne{color:#2b77fa}.single .content .highlight .nf{color:#2b77fa}.single .content .highlight .fm{color:#1ccad6}.single .content .highlight .nl{color:#2b77fa}.single .content .highlight .nn{color:#2b77fa}.single .content .highlight .nx{color:#333}.single .content .highlight .py{color:#2b77fa}.single .content .highlight .nt{color:#2b77fa}.single .content .highlight .nv{color:#2b77fa}.single .content .highlight .vc{color:#2b77fa}.single .content .highlight .vg{color:#2b77fa}.single .content .highlight .vi{color:#2b77fa}.single .content .highlight .vm{color:#2b77fa}.single .content .highlight .l{color:#2aa198}.single .content .highlight .ld{color:#2aa198}.single .content .highlight .s{color:#24a443}.single .content .highlight .sa{color:#24a443}.single .content .highlight .sb{color:#24a443}.single .content .highlight .sc{color:#24a443}.single .content .highlight .dl{color:#24a443}.single .content .highlight .sd{color:#24a443}.single .content .highlight .s2{color:#24a443}.single .content .highlight .se{color:#24a443}.single .content .highlight .sh{color:#24a443}.single .content .highlight .si{color:#24a443}.single .content .highlight .sx{color:#24a443}.single .content .highlight .sr{color:#24a443}.single .content .highlight .s1{color:#24a443}.single .content .highlight .ss{color:#24a443}.single .content .highlight .m{color:#e2893c}.single .content .highlight .mb{color:#e2893c}.single .content .highlight .mf{color:#e2893c}.single .content .highlight .mh{color:#e2893c}.single .content .highlight .mi{color:#e2893c}.single .content .highlight .il{color:#e2893c}.single .content .highlight .mo{color:#e2893c}.single .content .highlight .o{color:#f19b04}.single .content .highlight .ow{color:#b501a9}.single .content .highlight .c{color:#a0a1a8}.single .content .highlight .ch{color:#a0a1a8}.single .content .highlight .cm{color:#a0a1a8}.single .content .highlight .c1{color:#a0a1a8}.single .content .highlight .cs{color:#a0a1a8}.single .content .highlight .cp{color:#a0a1a8}.single .content .highlight .cpf{color:#a0a1a8}.single .content .highlight .g{color:#e72d40}.single .content .highlight .gd{color:#e72d40}.single .content .highlight .ge{color:#e72d40}.single .content .highlight .gr{color:#e72d40}.single .content .highlight .gh{color:#e72d40}.single .content .highlight .gi{color:#e72d40}.single .content .highlight .go{color:#e72d40}.single .content .highlight .gp{color:#e72d40}.single .content .highlight .gs{color:#e72d40}.single .content .highlight .gu{color:#e72d40}.single .content .highlight .gt{color:#e72d40}.single .content .highlight .w{color:#bbb}[theme=dark] .single .content .highlight .p{color:#a9a9b3}[theme=dark] .single .content .highlight .k{color:#d371e3}[theme=dark] .single .content .highlight .kc{color:#d371e3}[theme=dark] .single .content .highlight .kd{color:#d371e3}[theme=dark] .single .content .highlight .kn{color:#d371e3}[theme=dark] .single .content .highlight .kp{color:#d371e3}[theme=dark] .single .content .highlight .kr{color:#d371e3}[theme=dark] .single .content .highlight .kt{color:#d371e3}[theme=dark] .single .content .highlight .n{color:#a9b2c0}[theme=dark] .single .content .highlight .na{color:#41b0f5}[theme=dark] .single .content .highlight .nb{color:#19b9c4}[theme=dark] .single .content .highlight .bp{color:#ecbf6f}[theme=dark] .single .content .highlight .nc{color:#ecbf6f}[theme=dark] .single .content .highlight .no{color:#41b0f5}[theme=dark] .single .content .highlight .nd{color:#ecbf6f}[theme=dark] .single .content .highlight .ni{color:#41b0f5}[theme=dark] .single .content .highlight .ne{color:#41b0f5}[theme=dark] .single .content .highlight .nf{color:#41b0f5}[theme=dark] .single .content .highlight .fm{color:#19b9c4}[theme=dark] .single .content .highlight .nl{color:#41b0f5}[theme=dark] .single .content .highlight .nn{color:#41b0f5}[theme=dark] .single .content .highlight .nx{color:#a9a9b3}[theme=dark] .single .content .highlight .py{color:#41b0f5}[theme=dark] .single .content .highlight .nt{color:#41b0f5}[theme=dark] .single .content .highlight .nv{color:#41b0f5}[theme=dark] .single .content .highlight .vc{color:#41b0f5}[theme=dark] .single .content .highlight .vg{color:#41b0f5}[theme=dark] .single .content .highlight .vi{color:#41b0f5}[theme=dark] .single .content .highlight .vm{color:#41b0f5}[theme=dark] .single .content .highlight .l{color:#2aa198}[theme=dark] .single .content .highlight .ld{color:#2aa198}[theme=dark] .single .content .highlight .s{color:#8cc570}[theme=dark] .single .content .highlight .sa{color:#8cc570}[theme=dark] .single .content .highlight .sb{color:#8cc570}[theme=dark] .single .content .highlight .sc{color:#8cc570}[theme=dark] .single .content .highlight .dl{color:#8cc570}[theme=dark] .single .content .highlight .sd{color:#8cc570}[theme=dark] .single .content .highlight .s2{color:#8cc570}[theme=dark] .single .content .highlight .se{color:#8cc570}[theme=dark] .single .content .highlight .sh{color:#8cc570}[theme=dark] .single .content .highlight .si{color:#8cc570}[theme=dark] .single .content .highlight .sx{color:#8cc570}[theme=dark] .single .content .highlight .sr{color:#8cc570}[theme=dark] .single .content .highlight .s1{color:#8cc570}[theme=dark] .single .content .highlight .ss{color:#8cc570}[theme=dark] .single .content .highlight .m{color:#db985c}[theme=dark] .single .content .highlight .mb{color:#db985c}[theme=dark] .single .content .highlight .mf{color:#db985c}[theme=dark] .single .content .highlight .mh{color:#db985c}[theme=dark] .single .content .highlight .mi{color:#db985c}[theme=dark] .single .content .highlight .il{color:#db985c}[theme=dark] .single .content .highlight .mo{color:#db985c}[theme=dark] .single .content .highlight .o{color:#ecbf6f}[theme=dark] .single .content .highlight .ow{color:#d371e3}[theme=dark] .single .content .highlight .c{color:#7e848f}[theme=dark] .single .content .highlight .ch{color:#7e848f}[theme=dark] .single .content .highlight .cm{color:#7e848f}[theme=dark] .single .content .highlight .c1{color:#7e848f}[theme=dark] .single .content .highlight .cs{color:#7e848f}[theme=dark] .single .content .highlight .cp{color:#7e848f}[theme=dark] .single .content .highlight .cpf{color:#7e848f}[theme=dark] .single .content .highlight .g{color:#f16372}[theme=dark] .single .content .highlight .gd{color:#f16372}[theme=dark] .single .content .highlight .ge{color:#f16372}[theme=dark] .single .content .highlight .gr{color:#f16372}[theme=dark] .single .content .highlight .gh{color:#f16372}[theme=dark] .single .content .highlight .gi{color:#f16372}[theme=dark] .single .content .highlight .go{color:#f16372}[theme=dark] .single .content .highlight .gp{color:#f16372}[theme=dark] .single .content .highlight .gs{color:#f16372}[theme=dark] .single .content .highlight .gu{color:#f16372}[theme=dark] .single .content .highlight .gt{color:#f16372}[theme=dark] .single .content .highlight .w{color:#bbb}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a,.single .content .gist .gist-meta a::before,.single .content .gist .gist-meta a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .content .gist .gist-meta a,[theme=dark] .single .content .gist .gist-meta a::before,[theme=dark] .single .content .gist .gist-meta a::after{color:#55bde2}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ef3982}[theme=dark] .single .content .gist .gist-meta a:active,[theme=dark] .single .content .gist .gist-meta a:hover{color:#bdebfc}[theme=dark] .single .content .gist .gist-meta{background-color:#1c2025}[theme=dark] .single .content .gist .highlight{background:#141414}[theme=dark] .single .content .gist .blob-num,[theme=dark] .single .content .gist .blob-code-inner,[theme=dark] .single .content .gist .highlight,[theme=dark] .single .content .gist .pl-enm,[theme=dark] .single .content .gist .pl-ko,[theme=dark] .single .content .gist .pl-mo,[theme=dark] .single .content .gist .pl-mp1 .pl-sf,[theme=dark] .single .content .gist .pl-ms,[theme=dark] .single .content .gist .pl-pdc1,[theme=dark] .single .content .gist .pl-scp,[theme=dark] .single .content .gist .pl-smc,[theme=dark] .single .content .gist .pl-som,[theme=dark] .single .content .gist .pl-va,[theme=dark] .single .content .gist .pl-vpf,[theme=dark] .single .content .gist .pl-vpu,[theme=dark] .single .content .gist .pl-mdr{color:#aab1bf}[theme=dark] .single .content .gist .pl-mb,[theme=dark] .single .content .gist .pl-pdb{font-weight:700}[theme=dark] .single .content .gist .pl-c,[theme=dark] .single .content .gist .pl-c span,[theme=dark] .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}[theme=dark] .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}[theme=dark] .single .content .gist .pl-ef,[theme=dark] .single .content .gist .pl-en,[theme=dark] .single .content .gist .pl-enf,[theme=dark] .single .content .gist .pl-eoai,[theme=dark] .single .content .gist .pl-kos,[theme=dark] .single .content .gist .pl-mh .pl-pdh,[theme=dark] .single .content .gist .pl-mr{color:#61afef}[theme=dark] .single .content .gist .pl-ens,[theme=dark] .single .content .gist .pl-vi{color:#be5046}[theme=dark] .single .content .gist .pl-enti,[theme=dark] .single .content .gist .pl-mai .pl-sf,[theme=dark] .single .content .gist .pl-ml,[theme=dark] .single .content .gist .pl-sf,[theme=dark] .single .content .gist .pl-sr,[theme=dark] .single .content .gist .pl-sr .pl-sra,[theme=dark] .single .content .gist .pl-src,[theme=dark] .single .content .gist .pl-st,[theme=dark] .single .content .gist .pl-vo{color:#56b5c2}[theme=dark] .single .content .gist .pl-eoi,[theme=dark] .single .content .gist .pl-mri,[theme=dark] .single .content .gist .pl-pds,[theme=dark] .single .content .gist .pl-pse .pl-s1,[theme=dark] .single .content .gist .pl-s,[theme=dark] .single .content .gist .pl-s1{color:#97c279}[theme=dark] .single .content .gist .pl-k,[theme=dark] .single .content .gist .pl-kolp,[theme=dark] .single .content .gist .pl-mc,[theme=dark] .single .content .gist .pl-pde{color:#c578dd}[theme=dark] .single .content .gist .pl-mi,[theme=dark] .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}[theme=dark] .single .content .gist .pl-mp,[theme=dark] .single .content .gist .pl-stp{color:#818896}[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi,[theme=dark] .single .content .gist .pl-mdr{font-weight:400}[theme=dark] .single .content .gist .pl-mdht,[theme=dark] .single .content .gist .pl-mi1{color:#97c279;background:#020}[theme=dark] .single .content .gist .pl-md,[theme=dark] .single .content .gist .pl-mdhf{color:#df6b75;background:#200}[theme=dark] .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}[theme=dark] .single .content .gist .pl-ib{background:#df6b75}[theme=dark] .single .content .gist .pl-ii{background:#e0c184;color:#fff}[theme=dark] .single .content .gist .pl-iu{background:#e05151}[theme=dark] .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}[theme=dark] .single .content .gist .pl-c1,[theme=dark] .single .content .gist .pl-cn,[theme=dark] .single .content .gist .pl-e,[theme=dark] .single .content .gist .pl-eoa,[theme=dark] .single .content .gist .pl-eoac,[theme=dark] .single .content .gist .pl-eoac .pl-pde,[theme=dark] .single .content .gist .pl-kou,[theme=dark] .single .content .gist .pl-mm,[theme=dark] .single .content .gist .pl-mp .pl-s3,[theme=dark] .single .content .gist .pl-mq,[theme=dark] .single .content .gist .pl-s3,[theme=dark] .single .content .gist .pl-sok,[theme=dark] .single .content .gist .pl-sv,[theme=dark] .single .content .gist .pl-mb{color:#d19965}[theme=dark] .single .content .gist .pl-enc,[theme=dark] .single .content .gist .pl-entc,[theme=dark] .single .content .gist .pl-pse .pl-s2,[theme=dark] .single .content .gist .pl-s2,[theme=dark] .single .content .gist .pl-sc,[theme=dark] .single .content .gist .pl-smp,[theme=dark] .single .content .gist .pl-sr .pl-sre,[theme=dark] .single .content .gist .pl-stj,[theme=dark] .single .content .gist .pl-v,[theme=dark] .single .content .gist .pl-pdb{color:#e4bf7a}[theme=dark] .single .content .gist .pl-ent,[theme=dark] .single .content .gist .pl-entl,[theme=dark] .single .content .gist .pl-entm,[theme=dark] .single .content .gist .pl-mh,[theme=dark] .single .content .gist .pl-pdv,[theme=dark] .single .content .gist .pl-smi,[theme=dark] .single .content .gist .pl-sol,[theme=dark] .single .content .gist .pl-mdh,[theme=dark] .single .content .gist .pl-mdi{color:#df6b75}[theme=dark] .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:1rem 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{font-weight:bold;margin:0 -0.75rem;padding:.25rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{padding:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;position:absolute;top:.6rem;left:.4rem}.single .content .admonition i.details-icon{position:absolute;top:.6rem;right:.3rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.note.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.25)}.single .content .admonition.abstract.open .admonition-title{background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.25)}.single .content .admonition.info.open .admonition-title{background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.25)}.single .content .admonition.tip.open .admonition-title{background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.25)}.single .content .admonition.success.open .admonition-title{background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.25)}.single .content .admonition.question.open .admonition-title{background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.25)}.single .content .admonition.warning.open .admonition-title{background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.25)}.single .content .admonition.failure.open .admonition-title{background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.25)}.single .content .admonition.danger.open .admonition-title{background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.25)}.single .content .admonition.bug.open .admonition-title{background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.25)}.single .content .admonition.example.open .admonition-title{background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(159,159,159,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(159,159,159,0.1);background-color:rgba(159,159,159,0.25)}.single .content .admonition.quote.open .admonition-title{background-color:rgba(159,159,159,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content .echarts{margin:.5rem 0;text-align:center}.single .content .mapbox{margin:.5rem 0;padding:.5rem 0}.single .content meting-js{margin:.5rem 0}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}[theme=dark] .single .content hr{border-top:1px dashed #363636}.single .content kbd{display:inline-block;padding:.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#E74C3C}[theme=dark] .single .content kbd{background-color:#292a2d;border:1px solid #363636;border-bottom-color:#363636;-webkit-box-shadow:inset 0 -1px 0 #363636;box-shadow:inset 0 -1px 0 #363636;color:#E5BF78}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all}.single .content .version{height:1.25em;vertical-align:text-bottom}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}[theme=dark] .single .post-footer .post-info{border-bottom:1px solid #363636}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a,.single .post-footer .post-info .post-info-line .post-info-mod a::before,.single .post-footer .post-info .post-info-line .post-info-mod a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a::before,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a::after{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a,.single .post-footer .post-info .post-info-line .post-info-md a::before,.single .post-footer .post-info .post-info-line .post-info-md a::after{text-decoration:none;color:#2d96bd}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a::before,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a::after{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:active,[theme=dark] .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .group-title{margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:.25rem 0 .25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}[theme=dark] .archive .archive-item-link{color:#a9a9b3}[theme=dark] .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{width:4em;text-align:right;color:#a9a9b3}[theme=dark] .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a,.archive .tag-cloud-tags a::before,.archive .tag-cloud-tags a::after{text-decoration:none;color:#161209}[theme=dark] .archive .tag-cloud-tags a,[theme=dark] .archive .tag-cloud-tags a::before,[theme=dark] .archive .tag-cloud-tags a::after{color:#a9a9b3}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2d96bd}[theme=dark] .archive .tag-cloud-tags a:active,[theme=dark] .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:#a9a9b3}[theme=dark] .archive .tag-cloud-tags a sup{color:#5d5d5f}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{display:inline-block;width:6rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem .2rem;font-size:1.6rem}.home .home-profile .social-links a *{vertical-align:text-bottom}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}[theme=dark] .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}[theme=dark] .home .summary{color:#a9a9b3;border-bottom:1px dashed #363636}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;"}.home .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;line-height:1.5;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2{font-size:1.125rem}.home .summary .content a,.home .summary .content a::before,.home .summary .content a::after{text-decoration:none;color:#2d96bd}[theme=dark] .home .summary .content a,[theme=dark] .home .summary .content a::before,[theme=dark] .home .summary .content a::after{color:#a9a9b3}.home .summary .content a:active,.home .summary .content a:hover{color:#ef3982}[theme=dark] .home .summary .content a:active,[theme=dark] .home .summary .content a:hover{color:#fff}.home .summary .content b,.home .summary .content strong{color:#a9a9b3}[theme=dark] .home .summary .content b,[theme=dark] .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a,.home .summary .post-footer a::before,.home .summary .post-footer a::after{text-decoration:none;color:#2d96bd}[theme=dark] .home .summary .post-footer a,[theme=dark] .home .summary .post-footer a::before,[theme=dark] .home .summary .post-footer a::after{color:#55bde2}.home .summary .post-footer a:active,.home .summary .post-footer a:hover{color:#ef3982}[theme=dark] .home .summary .post-footer a:active,[theme=dark] .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a,.home .summary .post-footer .post-tags a::before,.home .summary .post-footer .post-tags a::after{text-decoration:none;color:#161209}[theme=dark] .home .summary .post-footer .post-tags a,[theme=dark] .home .summary .post-footer .post-tags a::before,[theme=dark] .home .summary .post-footer .post-tags a::after{color:#a9a9b3}.home .summary .post-footer .post-tags a:active,.home .summary .post-footer .post-tags a:hover{color:#2d96bd}[theme=dark] .home .summary .post-footer .post-tags a:active,[theme=dark] .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}header{width:100%;z-index:150;background-color:#f8f8f8}[theme=dark] header{background-color:#252627}header .logo{min-height:1.5em;height:1.5em;vertical-align:text-bottom}header .logo,header .header-title-pre{padding-right:.25rem}header .header-title-post{padding-left:.25rem}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:Nunito,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin-right:.5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.menu .menu-item{position:relative}.language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.language-select:hover{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:2.5rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:#f8f8f8;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}[theme=dark] .search input{background-color:#252627}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:.5rem;right:auto}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}[theme=dark] .open .search input,[theme=dark] .search.mobile input{color:#a9a9b3;background-color:#363636}[theme=dark] .open .search input::-webkit-input-placeholder,[theme=dark] .search.mobile input::-webkit-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-moz-placeholder,[theme=dark] .search.mobile input:-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input::-moz-placeholder,[theme=dark] .search.mobile input::-moz-placeholder{color:#5d5d5f}[theme=dark] .open .search input:-ms-input-placeholder,[theme=dark] .search.mobile input:-ms-input-placeholder{color:#5d5d5f}[theme=dark] .open .search input::placeholder,[theme=dark] .search.mobile input::placeholder{color:#5d5d5f}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#a9a9b3}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#a9a9b3}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#a9a9b3}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#a9a9b3}.open .search input::placeholder,.search.mobile input::placeholder{color:#a9a9b3}.open .search .search-button,.search.mobile .search-button{color:#a9a9b3}[theme=dark] .open .search .search-button,[theme=dark] .search.mobile .search-button{color:#5d5d5f}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{padding:0 2rem 0 10vh}#header-desktop .header-wrapper .header-title{font-size:1.5rem}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-inner{float:right}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{border-left:1.5px solid #161209}[theme=dark] #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#363636}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.search{margin:0 -.5rem 0 0}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}[theme=dark] #header-desktop .header-wrapper .menu a.active{color:#fff}#header-desktop.open .header-wrapper .menu .menu-item.search{margin:0 .25rem 0 .5rem}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.5rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}[theme=dark] #header-mobile .header-container .header-wrapper .menu-toggle span{background:#a9a9b3}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{text-align:center;background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;padding-top:.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-button{top:0}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:.75rem}#header-mobile .header-container .menu .menu-item{display:block;line-height:2.5rem}#header-mobile .header-container .menu.active{display:block}[theme=dark] #header-mobile .header-container .menu{background:#252627;border-top-color:#363636}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:2rem;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}[theme=dark] .search-dropdown .dropdown-menu{background-color:#292a2d}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:.875rem;float:right;text-align:right;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#a9a9b3}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#5d5d5f}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e8e8e8}[theme=dark] .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#323843}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}[theme=dark] .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:.5rem 1rem;float:right;font-size:.8rem;color:#a9a9b3}.search-dropdown .dropdown-menu .search-footer [theme=dark]{color:#5d5d5f}.search-dropdown .dropdown-menu .search-footer a,.search-dropdown .dropdown-menu .search-footer a::before,.search-dropdown .dropdown-menu .search-footer a::after{text-decoration:none;color:#2d96bd}[theme=dark] .search-dropdown .dropdown-menu .search-footer a,[theme=dark] .search-dropdown .dropdown-menu .search-footer a::before,[theme=dark] .search-dropdown .dropdown-menu .search-footer a::after{color:#55bde2}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ef3982}[theme=dark] .search-dropdown .dropdown-menu .search-footer a:active,[theme=dark] .search-dropdown .dropdown-menu .search-footer a:hover{color:#bdebfc}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:2rem;width:100%;text-align:center;line-height:1.25rem;padding:1rem 0}footer .footer-container{font-size:.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .icp-br{display:none}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}[theme=dark] .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}[theme=dark] .pagination li:before,[theme=dark] .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}[theme=dark] .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1440px){.page{width:56%}}@media only screen and (max-width: 1200px){.page{width:52%}#header-desktop .header-wrapper{padding-right:1rem}.search-dropdown.desktop{right:1rem}}@media only screen and (max-width: 960px){#toc-auto{display:none}#toc-static{display:block}.page{width:80%}#header-desktop .header-wrapper{padding-left:1rem}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}body.blur{overflow:hidden}.page{width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}} /*# sourceMappingURL=style.zh-cn.min.css.map */ \ No newline at end of file diff --git a/src/js/theme.js b/src/js/theme.js index 8459a05d2..b0ef2dbde 100644 --- a/src/js/theme.js +++ b/src/js/theme.js @@ -97,9 +97,9 @@ class Theme { const isMobile = this.util.isMobile(); if (!searchConfig || isMobile && this._searchMobileOnce || !isMobile && this._searchDesktopOnce) return; - if (!searchConfig.maxResultLength) searchConfig.maxResultLength = 10; - if (!searchConfig.snippetLength) searchConfig.snippetLength = 50; - if (!searchConfig.highlightTag) searchConfig.highlightTag = 'em'; + const maxResultLength = searchConfig.maxResultLength ? searchConfig.maxResultLength : 10; + const snippetLength = searchConfig.snippetLength ? searchConfig.snippetLength : 50; + const highlightTag = searchConfig.highlightTag ? searchConfig.highlightTag : 'em'; const suffix = isMobile ? 'mobile' : 'desktop'; const $header = document.getElementById(`header-${suffix}`); @@ -190,16 +190,16 @@ class Theme { if (matchPosition < position || position === 0) position = matchPosition; } }); - position -= searchConfig.snippetLength / 5; + position -= snippetLength / 5; if (position > 0) { position += context.substr(position, 20).lastIndexOf(' ') + 1; - context = '...' + context.substr(position, searchConfig.snippetLength); + context = '...' + context.substr(position, snippetLength); } else { - context = context.substr(0, searchConfig.snippetLength); + context = context.substr(0, snippetLength); } Object.keys(metadata).forEach(key => { - title = title.replace(new RegExp(`(${key})`, 'gi'), `<${searchConfig.highlightTag}>$1`); - context = context.replace(new RegExp(`(${key})`, 'gi'), `<${searchConfig.highlightTag}>$1`); + title = title.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`); + context = context.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`); }); results[uri] = { 'uri': uri, @@ -208,7 +208,7 @@ class Theme { 'context' : context, }; }); - return Object.values(results).slice(0, searchConfig.maxResultLength); + return Object.values(results).slice(0, maxResultLength); } if (!this._index) { fetch(searchConfig.lunrIndexURL) @@ -240,11 +240,11 @@ class Theme { this._algoliaIndex .search(query, { offset: 0, - length: searchConfig.maxResultLength * 8, + length: maxResultLength * 8, attributesToHighlight: ['title'], - attributesToSnippet: [`content:${searchConfig.snippetLength}`], - highlightPreTag: `<${searchConfig.highlightTag}>`, - highlightPostTag: ``, + attributesToSnippet: [`content:${snippetLength}`], + highlightPreTag: `<${highlightTag}>`, + highlightPostTag: ``, }) .then(({ hits }) => { const results = {}; @@ -257,7 +257,7 @@ class Theme { context: content.value, }; }); - finish(Object.values(results).slice(0, searchConfig.maxResultLength)); + finish(Object.values(results).slice(0, maxResultLength)); }) .catch(err => { console.error(err); @@ -281,7 +281,7 @@ class Theme { return ``;}, }, }); - autosearch.on('autocomplete:selected', (event, suggestion, dataset, context) => { + autosearch.on('autocomplete:selected', (_event, suggestion, _dataset, _context) => { window.location.assign(suggestion.uri); }); if (isMobile) this._searchMobile = autosearch; @@ -366,7 +366,7 @@ class Theme { $copy.setAttribute('data-clipboard-text', code); $copy.title = this.config.code.copyTitle; const clipboard = new ClipboardJS($copy); - clipboard.on('success', e => { + clipboard.on('success', _e => { this.util.animateCSS($code, 'flash'); }); $header.appendChild($copy); @@ -558,18 +558,27 @@ class Theme { initTypeit() { if (this.config.typeit) { - this.config.typeit.forEach(group => { + const typeitConfig = this.config.typeit; + const speed = typeitConfig.speed ? typeitConfig.speed : 100; + const cursorSpeed = typeitConfig.cursorSpeed ? typeitConfig.cursorSpeed : 1000; + const cursorChar = typeitConfig.cursorChar ? typeitConfig.cursorChar : '|'; + Object.values(typeitConfig.data).forEach(group => { const typeone = (i) => { const id = group[i]; - if (i === group.length - 1) { - new TypeIt(`#${id}`, { - strings: this.data[id], - }).go(); - return; - } - let instance = new TypeIt(`#${id}`, { + const instance = new TypeIt(`#${id}`, { strings: this.data[id], + speed: speed, + lifeLike: true, + cursorSpeed: cursorSpeed, + cursorChar: cursorChar, + waitUntilVisible: true, afterComplete: () => { + if (i === group.length - 1) { + if (typeitConfig.duration >= 0) window.setTimeout(() => { + instance.destroy(); + }, typeitConfig.duration); + return; + } instance.destroy(); typeone(i + 1); }, From 4190c794915084508ee96d4c661882ebb372225f Mon Sep 17 00:00:00 2001 From: Dillon Date: Mon, 4 May 2020 15:19:18 +0800 Subject: [PATCH 04/11] fix(hugo): compatibility for Hugo basic version (#315) --- .gitignore | 1 - .../posts/theme-documentation-basics.en.md | 6 +++--- .../posts/theme-documentation-basics.fr.md | 6 +++--- .../posts/theme-documentation-basics.zh-cn.md | 6 +++++- ...me-documentation-extended-shortcodes.en.md | 4 ++++ ...me-documentation-extended-shortcodes.fr.md | 4 ++++ ...documentation-extended-shortcodes.zh-cn.md | 4 ++++ images/tn.png | Bin 126584 -> 44050 bytes layouts/partials/function/id.html | 10 ++++------ layouts/shortcodes/style.html | 6 +++--- ...s_ff2a8d7d59c25f259218399bceecc7ea.content | 2 ++ ...scss_ff2a8d7d59c25f259218399bceecc7ea.json | 1 + 12 files changed, 33 insertions(+), 17 deletions(-) create mode 100644 resources/_gen/assets/scss/stype/id-1.scss_ff2a8d7d59c25f259218399bceecc7ea.content create mode 100644 resources/_gen/assets/scss/stype/id-1.scss_ff2a8d7d59c25f259218399bceecc7ea.json diff --git a/.gitignore b/.gitignore index 3b172dc89..51ffa8619 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ # Hugo default output directory public/ /exampleSite/resources/ -/resources/_gen/assets/scss/temp node_modules/ build/ diff --git a/exampleSite/content/posts/theme-documentation-basics.en.md b/exampleSite/content/posts/theme-documentation-basics.en.md index 32db5b6fb..94df5f0a8 100644 --- a/exampleSite/content/posts/theme-documentation-basics.en.md +++ b/exampleSite/content/posts/theme-documentation-basics.en.md @@ -26,14 +26,14 @@ Discover what the Hugo - **LoveIt** theme is all about and the core-concepts beh Thanks to the simplicity of Hugo, [Hugo](https://gohugo.io/) is the only dependency of this theme. -Just install latest version of [:(far fa-file-archive fa-fw): Hugo extended (> 0.62.0)](https://gohugo.io/getting-started/installing/) for your OS (**Windows**, **Linux**, **macOS**). +Just install latest version of [:(far fa-file-archive fa-fw): Hugo (> 0.62.0)](https://gohugo.io/getting-started/installing/) for your OS (**Windows**, **Linux**, **macOS**). {{< admonition note "Why not support earlier versions of Hugo?" >}} Since [Markdown Render Hooks](https://gohugo.io/getting-started/configuration-markup#markdown-render-hooks) was introduced in the [Hugo Christmas Edition](https://gohugo.io/news/0.62.0-relnotes/), this theme only supports Hugo versions above **0.62.0**. {{< /admonition >}} -{{< admonition note "Why need the Hugo extended version?" >}} -Since the theme processes SCSS to CSS, Hugo needs to be the **extended** version. +{{< admonition tip "Hugo extended version is recommended" >}} +Since some features of this theme need to processes :(fab fa-sass fa-fw): SCSS to :(fab fa-css3 fa-fw): CSS, it is recommended to use Hugo **extended** version for better experience. {{< /admonition >}} ## 2 Installation diff --git a/exampleSite/content/posts/theme-documentation-basics.fr.md b/exampleSite/content/posts/theme-documentation-basics.fr.md index a16679886..517c07d18 100644 --- a/exampleSite/content/posts/theme-documentation-basics.fr.md +++ b/exampleSite/content/posts/theme-documentation-basics.fr.md @@ -31,14 +31,14 @@ Welcome to take the time to propose a translation by [:(fas fa-code-branch fa-fw Thanks to the simplicity of Hugo, [Hugo](https://gohugo.io/) is the only dependency of this theme. -Just install latest version of [:(far fa-file-archive fa-fw): Hugo extended (> 0.62.0)](https://gohugo.io/getting-started/installing/) for your OS (**Windows**, **Linux**, **macOS**). +Just install latest version of [:(far fa-file-archive fa-fw): Hugo (> 0.62.0)](https://gohugo.io/getting-started/installing/) for your OS (**Windows**, **Linux**, **macOS**). {{< admonition note "Why not support earlier versions of Hugo?" >}} Since [Markdown Render Hooks](https://gohugo.io/getting-started/configuration-markup#markdown-render-hooks) was introduced in the [Hugo Christmas Edition](https://gohugo.io/news/0.62.0-relnotes/), this theme only supports Hugo versions above **0.62.0**. {{< /admonition >}} -{{< admonition note "Why need the Hugo extended version?" >}} -Since the theme processes SCSS to CSS, Hugo needs to be the **extended** version. +{{< admonition tip "Hugo extended version is recommended" >}} +Since some features of this theme need to processes :(fab fa-sass fa-fw): SCSS to :(fab fa-css3 fa-fw): CSS, it is recommended to use Hugo **extended** version for better experience. {{< /admonition >}} ## 2 Installation diff --git a/exampleSite/content/posts/theme-documentation-basics.zh-cn.md b/exampleSite/content/posts/theme-documentation-basics.zh-cn.md index 60e7f5d5f..d2afa2c15 100644 --- a/exampleSite/content/posts/theme-documentation-basics.zh-cn.md +++ b/exampleSite/content/posts/theme-documentation-basics.zh-cn.md @@ -26,7 +26,7 @@ toc: 由于 Hugo 提供的便利性, [Hugo](https://gohugo.io/) 本身是这个主题唯一的依赖. -直接安装满足你操作系统 (**Windows**, **Linux**, **macOS**) 的最新版本 [:(far fa-file-archive fa-fw): Hugo extended (> 0.62.0)](https://gohugo.io/getting-started/installing/). +直接安装满足你操作系统 (**Windows**, **Linux**, **macOS**) 的最新版本 [:(far fa-file-archive fa-fw): Hugo (> 0.62.0)](https://gohugo.io/getting-started/installing/). {{< admonition note "为什么不支持早期版本的 Hugo?" >}} 由于 [Markdown 渲染钩子函数](https://gohugo.io/getting-started/configuration-markup#markdown-render-hooks) 在 [Hugo 圣诞节版本](https://gohugo.io/news/0.62.0-relnotes/) 中被引入, 本主题只支持高于 **0.62.0** 的 Hugo 版本. @@ -36,6 +36,10 @@ toc: 由于本主题需要转换 SCSS 文件为 CSS 文件, Hugo **extended** 版本是必要的. {{< /admonition >}} +{{< admonition tip "推荐使用 Hugo extended 版本" >}} +由于这个主题的一些特性需要将 :(fab fa-sass fa-fw): SCSS 转换为 :(fab fa-css3 fa-fw): CSS, 推荐使用 Hugo **extended** 版本来获得更好的使用体验. +{{< /admonition >}} + ## 2 安装 以下步骤可帮助你初始化新网站. 如果你根本不了解 Hugo, 我们强烈建议你按照此 [快速入门文档](https://gohugo.io/getting-started/quick-start/) 进一步了解它. diff --git a/exampleSite/content/posts/theme-documentation-extended-shortcodes.en.md b/exampleSite/content/posts/theme-documentation-extended-shortcodes.en.md index a6260cf77..61244b60a 100644 --- a/exampleSite/content/posts/theme-documentation-extended-shortcodes.en.md +++ b/exampleSite/content/posts/theme-documentation-extended-shortcodes.en.md @@ -24,6 +24,10 @@ lightgallery: true {{< version 0.2.0 changed >}} +{{< admonition >}} +Hugo **extended** version is necessary for `style` shortcode. +{{< /admonition >}} + `style` is a shortcode to insert custom style in your post. The `style` shortcode has two positional parameters. diff --git a/exampleSite/content/posts/theme-documentation-extended-shortcodes.fr.md b/exampleSite/content/posts/theme-documentation-extended-shortcodes.fr.md index 9d58cfbdb..11706b202 100644 --- a/exampleSite/content/posts/theme-documentation-extended-shortcodes.fr.md +++ b/exampleSite/content/posts/theme-documentation-extended-shortcodes.fr.md @@ -29,6 +29,10 @@ Welcome to take the time to propose a translation by [:(fas fa-code-branch fa-fw {{< version 0.2.0 changed >}} +{{< admonition >}} +Hugo **extended** version is necessary for `style` shortcode. +{{< /admonition >}} + `style` is a shortcode to insert custom style in your post. The `style` shortcode has two positional parameters. diff --git a/exampleSite/content/posts/theme-documentation-extended-shortcodes.zh-cn.md b/exampleSite/content/posts/theme-documentation-extended-shortcodes.zh-cn.md index f0ffe0a90..b0e852ec7 100644 --- a/exampleSite/content/posts/theme-documentation-extended-shortcodes.zh-cn.md +++ b/exampleSite/content/posts/theme-documentation-extended-shortcodes.zh-cn.md @@ -27,6 +27,10 @@ mapbox: {{< version 0.2.0 changed >}} +{{< admonition >}} +Hugo **extended** 版本对于 `style` shortcode 是必需的. +{{< /admonition >}} + `style` shortcode 用来在你的文章中插入自定义样式. `style` shortcode 有两个位置参数. diff --git a/images/tn.png b/images/tn.png index 29be28941105996a9511c8d31582caddc4215e94..491873005e11cb703bee2c0bd3027c0e9cf114aa 100644 GIT binary patch literal 44050 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

-0D!U^U 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 diff --git a/layouts/partials/function/id.html b/layouts/partials/function/id.html index 4adeb70b1..cff12fcc3 100644 --- a/layouts/partials/function/id.html +++ b/layouts/partials/function/id.html @@ -1,8 +1,6 @@ {{- /* ID */ -}} -{{- /* Content -> unique ID */ -}} -{{- /* shuffle md5 as id */ -}} -{{- $id := delimit (split (md5 now.Unix) "" | shuffle | first 6) "" | printf "id-%s" -}} -{{- with .scratch -}} - {{- dict $id $.content | dict "data" | dict "config" | merge (.Get "this") | .Set "this" -}} -{{- end -}} +{{- $count := (.scratch.Get "this").count | default 1 -}} +{{- $id := printf "id-%d" $count -}} +{{- $count | add 1 | .scratch.SetInMap "this" "count" -}} +{{- dict $id .content | dict "data" | dict "config" | merge (.scratch.Get "this") | .scratch.Set "this" -}} {{- return $id -}} diff --git a/layouts/shortcodes/style.html b/layouts/shortcodes/style.html index f73d46c9e..3e1e999e9 100644 --- a/layouts/shortcodes/style.html +++ b/layouts/shortcodes/style.html @@ -1,10 +1,10 @@ {{- $content := .Inner | .Page.RenderString -}} -{{- $id := dict "content" $content | partial "function/id.html" -}} +{{- $id := dict "content" $content "scratch" .Page.Scratch | partial "function/id.html" -}} {{- $tag := .Get 1 | default "div" -}} {{- printf `<%s id="%s">%s` $tag $id $content $tag | safeHTML -}} {{- $style := .Get 0 | printf "#%s{%s}" $id -}} -{{- $res := resources.FromString (printf "temp/%s.scss" $id) $style -}} -{{- $res = $res | toCSS (dict "targetPath" (printf "temp/%s.css" $id)) -}} +{{- $res := resources.FromString (printf "stype/%s.scss" $id) $style -}} +{{- $res = $res | toCSS (dict "targetPath" (printf "stype/%s.css" $id)) -}} {{- $styleArr := (.Page.Scratch.Get "this").styleArr | default slice -}} {{- $styleArr | append $res.Content | .Page.Scratch.SetInMap "this" "styleArr" -}} diff --git a/resources/_gen/assets/scss/stype/id-1.scss_ff2a8d7d59c25f259218399bceecc7ea.content b/resources/_gen/assets/scss/stype/id-1.scss_ff2a8d7d59c25f259218399bceecc7ea.content new file mode 100644 index 000000000..4705b8a79 --- /dev/null +++ b/resources/_gen/assets/scss/stype/id-1.scss_ff2a8d7d59c25f259218399bceecc7ea.content @@ -0,0 +1,2 @@ +#id-1 img { + height: 1.25rem; } diff --git a/resources/_gen/assets/scss/stype/id-1.scss_ff2a8d7d59c25f259218399bceecc7ea.json b/resources/_gen/assets/scss/stype/id-1.scss_ff2a8d7d59c25f259218399bceecc7ea.json new file mode 100644 index 000000000..57e277fbc --- /dev/null +++ b/resources/_gen/assets/scss/stype/id-1.scss_ff2a8d7d59c25f259218399bceecc7ea.json @@ -0,0 +1 @@ +{"Target":"stype/id-1.css","MediaType":"text/css","Data":{}} \ No newline at end of file From 417851b1cd11c40c5e7b398a4b844fd4e415a56b Mon Sep 17 00:00:00 2001 From: Dave A-W Date: Mon, 4 May 2020 15:24:40 +0800 Subject: [PATCH 05/11] fix(menu): hide divider when no menus (#307) --- assets/css/_page/_home.scss | 3 +++ layouts/partials/header.html | 4 +++- layouts/partials/home/profile.html | 18 ++++++++++++++---- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/assets/css/_page/_home.scss b/assets/css/_page/_home.scss index 742b4a609..fe7a9d72c 100644 --- a/assets/css/_page/_home.scss +++ b/assets/css/_page/_home.scss @@ -17,6 +17,9 @@ @include border-radius(100%); @include box-shadow(0 0 0 .3618em rgba(0, 0, 0, .05)); @include transition(all 0.4s ease); + } + + a img { cursor: pointer; &:hover { diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 09a920a42..7a3bfe62f 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -38,7 +38,9 @@ {{- .Pre | safeHTML }} {{ .Name }} {{ .Post | safeHTML -}} {{- end -}} - + {{- if .Site.Menus.main -}} + + {{- end -}} {{- if .Site.IsMultiLingual -}} {{- .Language.LanguageName -}} diff --git a/layouts/partials/home/profile.html b/layouts/partials/home/profile.html index 18ce94dc2..717420a35 100644 --- a/layouts/partials/home/profile.html +++ b/layouts/partials/home/profile.html @@ -3,11 +3,21 @@ {{- with .Site.Params.home.profile.gravatarEmail -}} {{- $avatar = md5 . | printf "https://www.gravatar.com/avatar/%s?s=240&d=mp" -}} {{- end -}} - {{- with $avatar -}} + {{- if $avatar -}}

- - {{- dict "src" . "alt" (T "home") | partial "plugin/image.html" -}} - + {{- $firstMenu := "" -}} + {{- if .Site.Menus.main -}} + {{- range first 1 $.Site.Menus.main -}} + {{- $firstMenu = . -}} + {{- end -}} + {{- end -}} + {{- with $firstMenu -}} + + {{- dict "src" $avatar "alt" .Name | partial "plugin/image.html" -}} + + {{- else -}} + {{- dict "src" $avatar "alt" " " | partial "plugin/image.html" -}} + {{- end -}}
{{- end -}} From 67617b82dcd4b6b42df543882b733f4d1bea87f6 Mon Sep 17 00:00:00 2001 From: Dave A-W Date: Mon, 4 May 2020 16:43:47 +0800 Subject: [PATCH 06/11] feat(profile): Add optional title above subtitle (#308) --- assets/css/_page/_home.scss | 12 ++++--- exampleSite/config.toml | 6 ++++ .../posts/theme-documentation-basics.en.md | 2 ++ .../posts/theme-documentation-basics.fr.md | 2 ++ .../posts/theme-documentation-basics.zh-cn.md | 2 ++ layouts/partials/header.html | 8 ++--- layouts/partials/home/profile.html | 34 +++++++++++-------- ...s_788c4a23da05f3aa3e03b28055a2e5f9.content | 2 +- ...s_84a735b886b24531b6e80c5fb2060510.content | 2 +- ...s_d40178ffcb058d725849178b0a7a43cc.content | 2 +- 10 files changed, 44 insertions(+), 28 deletions(-) diff --git a/assets/css/_page/_home.scss b/assets/css/_page/_home.scss index fe7a9d72c..f77e7c71c 100644 --- a/assets/css/_page/_home.scss +++ b/assets/css/_page/_home.scss @@ -17,19 +17,21 @@ @include border-radius(100%); @include box-shadow(0 0 0 .3618em rgba(0, 0, 0, .05)); @include transition(all 0.4s ease); - } - - a img { - cursor: pointer; &:hover { position: relative; @include transform(translateY(-.75rem)); - cursor: pointer; } } } + .home-title { + font-size: 1.2rem; + font-weight: bold; + margin: 0; + padding: .4rem; + } + .home-subtitle { font-size: 1rem; font-weight: normal; diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 3ecc63067..2541f6978 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -142,6 +142,8 @@ enableEmoji = true gravatarEmail = "" # URL of avatar shown in home page avatarURL = "/images/avatar.png" + # title shown in home page + title = "" # subtitle shown in home page subtitle = "A Clean, Elegant but Advanced Hugo Theme" # whether to use typeit animation for subtitle @@ -340,6 +342,8 @@ enableEmoji = true gravatarEmail = "" # 主页显示头像的 URL avatarURL = "/images/avatar.png" + # 主页显示的网站标题 + title = "" # 主页显示的网站副标题 subtitle = "一个简洁、优雅且高效的 Hugo 主题" # 是否为副标题显示打字机动画 @@ -534,6 +538,8 @@ enableEmoji = true gravatarEmail = "" # URL of avatar shown in home page avatarURL = "/images/avatar.png" + # title shown in home page + title = "" # subtitle shown in home page subtitle = "Un thème Hugo simple, élégant et efficace" # whether to use typeit animation for subtitle diff --git a/exampleSite/content/posts/theme-documentation-basics.en.md b/exampleSite/content/posts/theme-documentation-basics.en.md index 94df5f0a8..c1a52e2a2 100644 --- a/exampleSite/content/posts/theme-documentation-basics.en.md +++ b/exampleSite/content/posts/theme-documentation-basics.en.md @@ -304,6 +304,8 @@ Please open the code block below to view the complete sample configuration :(far gravatarEmail = "" # URL of avatar shown in home page avatarURL = "/images/avatar.png" + # {{< version 0.2.5 >}} title shown in home page + title = "" # subtitle shown in home page subtitle = "This is My New Hugo Site" # whether to use typeit animation for subtitle diff --git a/exampleSite/content/posts/theme-documentation-basics.fr.md b/exampleSite/content/posts/theme-documentation-basics.fr.md index 517c07d18..20c504fd2 100644 --- a/exampleSite/content/posts/theme-documentation-basics.fr.md +++ b/exampleSite/content/posts/theme-documentation-basics.fr.md @@ -309,6 +309,8 @@ Please open the code block below to view the complete sample configuration :(far gravatarEmail = "" # URL of avatar shown in home page avatarURL = "/images/avatar.png" + # {{< version 0.2.5 >}} title shown in home page + title = "" # subtitle shown in home page subtitle = "This is My New Hugo Site" # whether to use typeit animation for subtitle diff --git a/exampleSite/content/posts/theme-documentation-basics.zh-cn.md b/exampleSite/content/posts/theme-documentation-basics.zh-cn.md index d2afa2c15..6924f4180 100644 --- a/exampleSite/content/posts/theme-documentation-basics.zh-cn.md +++ b/exampleSite/content/posts/theme-documentation-basics.zh-cn.md @@ -311,6 +311,8 @@ hugo gravatarEmail = "" # 主页显示头像的 URL avatarURL = "/images/avatar.png" + # {{< version 0.2.5 >}} 主页显示的网站标题 + title = "" # 主页显示的网站副标题 subtitle = "这是我的全新 Hugo 网站" # 是否为副标题显示打字机动画 diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 7a3bfe62f..55dd48930 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -28,11 +28,9 @@