").addClass("ins-slug").text(t):null)).append(a?i("").addClass("ins-search-preview").html(a):null).attr("data-url",r)}function a(n,e,t){var a,r,o,s=d(n);if(0===t.length)return null;switch(a=c.TRANSLATION[e],e){case"POSTS":case"PAGES":r=t.map(function(t){var n=20 '+n+" ")}),a=a?a.slice(n,n+80):t.text.slice(0,80),l("file",t.title,null,a,c.ROOT_URL+t.path)});break;case"CATEGORIES":case"TAGS":r=t.map(function(n){return l("CATEGORIES"===e?"folder":"tag",n.name,n.slug,null,n.permalink)});break;default:return null}return(o=a,i("").addClass("ins-section").append(i("").addClass("ins-section-header").text(o))).append(r)}function u(n,e){var t={};n.pages.concat(n.posts).forEach(function(n){n[e]&&n[e].forEach(function(n){t[n.name]=n})});var a=[];for(var e in t)a.push(t[e]);return a}function d(n){return n.split(" ").filter(function(n){return!!n}).map(function(n){return n.toUpperCase()})}function p(n,a,e){var t=d(n);return t.filter(function(t){return 0
e+r.scrollTop()&&r.scrollTop(a-r[0].clientHeight),t<0&&r.scrollTop(n.position().top)}}(i(e[a]))}function T(n){n&&n.length&&(location.href=n.attr("data-url"))}t.parent().remove(".ins-search"),i("body").append(t),i.getJSON(c.CONTENT_URL,function(e){"#ins-search"===location.hash.trim()&&(t.addClass("show"),ModalHelper.beforeModal()),n.on("input",function(){var n=i(this).val();!function(n,e){for(var t in o.empty(),e)o.append(a(n,t.toUpperCase(),e[t]))}(n,s(e,n))}),n.trigger("input")}),i(document).on("click focus",".search-form-input",function(){t.addClass("show"),ModalHelper.beforeModal(),document.scrollingElement.scrollTop=0,t.find(".ins-search-input").focus()}).on("click",".ins-search-item",function(){"function"==typeof ExSearchCall?ExSearchCall(i(this)):T(i(this))}).on("click",".ins-close",function(){t.removeClass("show"),ModalHelper.closeModal()}).on("keydown",function(n){if(t.hasClass("show"))switch(n.keyCode){case 27:t.removeClass("show"),ModalHelper.closeModal();break;case 38:h(-1);break;case 40:h(1);break;case 13:var e=o.find(".ins-selectable.active").eq(0);"function"==typeof ExSearchCall?ExSearchCall(e):T(e)}})}(jQuery,window.INSIGHT_CONFIG);
--------------------------------------------------------------------------------
/assets/statics/ExSearch/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlanDecode/Maverick-Theme-Galileo/128feed69533e86a9ec5f18407f481c8339da203/assets/statics/ExSearch/iconfont.eot
--------------------------------------------------------------------------------
/assets/statics/ExSearch/iconfont.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
39 |
--------------------------------------------------------------------------------
/assets/statics/ExSearch/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlanDecode/Maverick-Theme-Galileo/128feed69533e86a9ec5f18407f481c8339da203/assets/statics/ExSearch/iconfont.ttf
--------------------------------------------------------------------------------
/assets/statics/ExSearch/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlanDecode/Maverick-Theme-Galileo/128feed69533e86a9ec5f18407f481c8339da203/assets/statics/ExSearch/iconfont.woff
--------------------------------------------------------------------------------
/assets/statics/ExSearch/iconfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AlanDecode/Maverick-Theme-Galileo/128feed69533e86a9ec5f18407f481c8339da203/assets/statics/ExSearch/iconfont.woff2
--------------------------------------------------------------------------------
/assets/statics/auto-render.min.js:
--------------------------------------------------------------------------------
1 | !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(t,r){t.exports=e},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n),a=function(e,t,r){for(var n=r,o=0,a=e.length;n.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathdefault{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-weight:700;font-style:italic}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;vertical-align:bottom;position:relative}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;vertical-align:bottom;font-size:1px;width:2px;min-width:2px}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline{display:inline-block;width:100%;border-bottom-style:dashed}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .op-limits>.vlist-t{text-align:center}.katex .accent>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{display:block;position:absolute;width:100%;height:inherit;fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex svg path{stroke:none}.katex img{border-style:none;min-width:0;min-height:0;max-width:none;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{position:absolute;left:0;width:50.2%;overflow:hidden}.katex .halfarrow-right{position:absolute;right:0;width:50.2%;overflow:hidden}.katex .brace-left{position:absolute;left:0;width:25.1%;overflow:hidden}.katex .brace-center{position:absolute;left:25%;width:50%;overflow:hidden}.katex .brace-right{position:absolute;right:0;width:25.1%;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left}
2 |
--------------------------------------------------------------------------------
/gulpfile.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable linebreak-style */
2 | /* eslint-disable no-undef */
3 | var gulp = require('gulp');
4 | var sass = require('gulp-sass');
5 | var prefix = require('gulp-autoprefixer');
6 | var minify = require('gulp-clean-css');
7 | var rev = require('gulp-rev');
8 | var revCollector = require('gulp-rev-collector');
9 | var concat = require('gulp-concat');
10 | var uglify = require('gulp-uglify');
11 | var del = require('del');
12 |
13 | var prefixerOptions = {
14 | overrideBrowserslist: ['last 2 versions']
15 | };
16 |
17 |
18 | gulp.task('clean', function () {
19 | return del(['./Galileo']);
20 | });
21 |
22 |
23 | // CSS
24 | gulp.task('css', function () {
25 | return gulp.src('./assets/css/galileo.scss')
26 | .pipe(sass())
27 | .pipe(prefix(prefixerOptions))
28 | .pipe(minify())
29 | .pipe(rev())
30 | .pipe(gulp.dest('./Galileo/assets/'))
31 | .pipe(rev.manifest())
32 | .pipe(gulp.dest('./temp/rev/css'));
33 | });
34 |
35 | //JS
36 | gulp.task('js', function () {
37 | return gulp.src(['./assets/js/dplayer.js', './assets/js/galileo.js'])
38 | .pipe(concat('galileo.js'))
39 | .pipe(uglify())
40 | .pipe(rev())
41 | .pipe(gulp.dest('./Galileo/assets/'))
42 | .pipe(rev.manifest())
43 | .pipe(gulp.dest('./temp/rev/js'));
44 | });
45 |
46 | gulp.task('md5', function () {
47 | return gulp.src(['./temp/rev/**/*.json', './templates/**/*ml'])
48 | .pipe(revCollector())
49 | .pipe(gulp.dest('./Galileo/templates/'));
50 | });
51 |
52 | gulp.task('move', function () {
53 | gulp.src(['./locale/*'])
54 | .pipe(gulp.dest('./Galileo/locale/'));
55 | gulp.src(['./utils.py', './__init__.py', './LICENSE', './README.md'])
56 | .pipe(gulp.dest('./Galileo/'));
57 | return gulp.src(['./assets/statics/**/*'], {base: './assets/statics/'})
58 | .pipe(gulp.dest('./Galileo/assets/'));
59 | });
60 |
61 | gulp.task('default', gulp.series('clean', gulp.parallel('css', 'js'), 'md5', 'move'));
62 |
--------------------------------------------------------------------------------
/locale/zh-CN.json:
--------------------------------------------------------------------------------
1 | {
2 | "Read More": "阅读全文",
3 | "Search": "搜索",
4 | "No More": "没有了",
5 | "This is the oldest one.": "这是最旧的文章",
6 | "This is the latest one.": "这是最新的文章",
7 | "Catch me: ": "抓住我:",
8 | "Category": "分类",
9 | "Tag": "标签",
10 | "Archives": "归档"
11 | }
12 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "devDependencies": {
3 | "del": "^3.0.0",
4 | "eslint": "^5.12.1",
5 | "gulp": "^4.0.0",
6 | "gulp-autoprefixer": "^6.0.0",
7 | "gulp-clean-css": "^4.0.0",
8 | "gulp-concat": "^2.6.1",
9 | "gulp-rev": "^9.0.0",
10 | "gulp-rev-collector": "^1.3.1",
11 | "gulp-sass": "^4.0.2",
12 | "gulp-uglify": "^3.0.1",
13 | "jsonfile": "^5.0.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/templates/archives.html:
--------------------------------------------------------------------------------
1 | {% extends "includes/skeleton_archive.html" %}
2 |
3 | {% macro seo_title() %}{{ tr('Archives') }} - {{ fp(config.site_name) }}{% endmacro %}
4 | {% block title %}{{ seo_title() }}{% endblock title %}
5 | {% block og_title %}{{ seo_title() }}{% endblock %}
6 | {% block og_description %}{{ seo_title() }}{% endblock %}
7 | {% block og_url %}{{ Router.gen_permalink('archives', '', current_page) }}{% endblock %}
8 | {% block twitter_title %}{{ seo_title() }}{% endblock %}
9 |
10 | {% block more_section %}
11 |
12 |
13 |
14 | {% for content in content_list %}
15 | -
16 |
17 |
20 |
21 | {% endfor %}
22 |
23 |
24 |
25 |
34 |
35 | {% endblock more_section %}
--------------------------------------------------------------------------------
/templates/categories.html:
--------------------------------------------------------------------------------
1 | {% extends "includes/skeleton_archive.html" %}
2 |
3 | {% macro seo_title() %}{{ tr('Category') }}: {{ cate_name }} - {{ fp(config.site_name) }}{% endmacro %}
4 | {% block title %}{{ seo_title() }}{% endblock title %}
5 | {% block og_title %}{{ seo_title() }}{% endblock %}
6 | {% block og_description %}{{ seo_title() }}{% endblock %}
7 | {% block og_url %}{{ Router.gen_permalink('category', cate_name, current_page) }}{% endblock %}
8 | {% block twitter_title %}{{ seo_title() }}{% endblock %}
9 |
10 | {% block more_section %}
11 |
12 |
13 |
14 | {% for content in content_list %}
15 | -
16 |
17 |
20 |
21 | {% endfor %}
22 |
23 |
24 |
25 |
34 |
35 | {% endblock more_section %}
--------------------------------------------------------------------------------
/templates/includes/skeleton.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
25 | {% block head %}{% endblock %}
26 |
27 | {{ fp(config.head_addon) }}
28 |
29 |
30 |
31 | {% if config.background_img != "" %}
32 |
33 | {% endif %}
34 |
35 |
48 |
49 | {% block main %}{% endblock %}
50 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
90 |
91 |
92 |
93 |
94 |
95 | {{ fp(config.body_addon) }}
96 |
97 |
--------------------------------------------------------------------------------
/templates/includes/skeleton_archive.html:
--------------------------------------------------------------------------------
1 | {% extends "includes/skeleton.html" %}
2 |
3 | {% block head %}
4 | {% block title %}{% endblock %}
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | {% endblock head %}
18 |
19 | {% block main %}
20 |
21 | {% block more_section %}{% endblock more_section %}
22 |
23 | {% endblock main %}
24 |
--------------------------------------------------------------------------------
/templates/includes/skeleton_content.html:
--------------------------------------------------------------------------------
1 | {% extends "includes/skeleton.html" %}
2 |
3 | {% macro seo_title(content, config) -%}
4 | {{ content.get_meta('title') }} - {{ fp(config.site_name) }}
5 | {%- endmacro %}
6 |
7 | {% block head %}
8 | {{ seo_title(content, config) }}
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | {% endblock head %}
23 |
24 | {% block main %}
25 |
26 |
27 |
28 | {{ content.get_meta('title') }}
29 |
30 | {{ content.get_meta('author') }}
31 |
34 | {% if len(content.get_meta('categories')) > 0 %}
35 | in
36 | {{ content.get_meta('categories')[-1] }}
37 |
38 | {% endif %}
39 | {% if config.valine['enable'] and config.valine.get('visitor', False) and content.get_meta('comment') %}
40 | · Views
43 | {% endif %}
44 |
45 |
46 | {{ content.parsed }}
47 |
48 |
49 | {% block more_content %}{% endblock more_content %}
50 |
51 |
52 | {% block more_section %}{% endblock more_section %}
53 |
54 | {% if config.valine['enable'] and content.get_meta('comment') %}
55 |
60 |
61 |
62 | {% endif %}
63 |
64 |
65 | {% endblock main %}
--------------------------------------------------------------------------------
/templates/index.html:
--------------------------------------------------------------------------------
1 | {% extends "includes/skeleton_archive.html" %}
2 |
3 | {% macro seo_title() %}{{ fp(config.site_name) }}{% endmacro %}
4 | {% block title %}{{ seo_title() }}{% endblock title %}
5 | {% block og_title %}{{ seo_title() }}{% endblock %}
6 | {% block og_description %}{{ fp(config.description) }}{% endblock %}
7 | {% block og_url %}{{ Router.gen_permalink('index', '', current_page) }}{% endblock %}
8 | {% block twitter_title %}{{ seo_title() }}{% endblock %}
9 |
10 | {% block more_section %}
11 |
12 |
13 |
14 | {% for content in content_list %}
15 | -
16 |
17 |
{{ content.meta['title'] }}
18 | {% if content.meta['showfull'] %}
19 | {{ content.parsed }}
20 | {% else %}
21 | {{ content.excerpt }}
22 | {% endif %}
23 |
29 |
30 |
31 | {% endfor %}
32 |
33 |
34 |
35 |
44 |
45 |
46 |
47 | {% for item in config.external_links %}
48 | -
49 | {{ fp(item['name']) }}:{{ fp(item['brief']) }}
50 |
51 | {% endfor %}
52 |
53 |
54 |
55 | {% endblock more_section %}
--------------------------------------------------------------------------------
/templates/page.html:
--------------------------------------------------------------------------------
1 | {% extends "includes/skeleton_content.html" %}
2 |
--------------------------------------------------------------------------------
/templates/post.html:
--------------------------------------------------------------------------------
1 | {% extends "includes/skeleton_content.html" %}
2 |
3 | {% block more_section %}
4 |
28 | {% endblock more_section %}
29 |
30 | {% block more_content -%}
31 |
38 |
39 | {%- endblock more_content %}
--------------------------------------------------------------------------------
/templates/sitemap.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 | {% for page in page_list %}
8 |
9 | {{ Router.gen_permalink_by_content(page) }}
10 | {{ page.get_meta('date').format('YYYY-MM-DD') }}
11 | always
12 | 0.8
13 |
14 | {% endfor %}
15 | {% for post in post_list %}
16 |
17 | {{ Router.gen_permalink_by_content(post) }}
18 | {{ post.get_meta('date').format('YYYY-MM-DD') }}
19 | always
20 | 0.5
21 |
22 | {% endfor %}
23 |
--------------------------------------------------------------------------------
/templates/tags.html:
--------------------------------------------------------------------------------
1 | {% extends "includes/skeleton_archive.html" %}
2 |
3 | {% macro seo_title() %}{{ tr('Tag') }}: {{ tag_name }} - {{ fp(config.site_name) }}{% endmacro %}
4 | {% block title %}{{ seo_title() }}{% endblock title %}
5 | {% block og_title %}{{ seo_title() }}{% endblock %}
6 | {% block og_description %}{{ seo_title() }}{% endblock %}
7 | {% block og_url %}{{ Router.gen_permalink('tag', tag_name, current_page) }}{% endblock %}
8 | {% block twitter_title %}{{ seo_title() }}{% endblock %}
9 |
10 | {% block more_section %}
11 |
12 |
13 |
14 | {% for content in content_list %}
15 | -
16 |
17 |
20 |
21 | {% endfor %}
22 |
23 |
24 |
25 |
34 |
35 | {% endblock more_section %}
--------------------------------------------------------------------------------
/utils.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """Utils for Galileo
3 | """
4 |
5 | import os
6 | import json
7 | from Maverick.Config import g_conf
8 | from Maverick.Utils import unify_joinpath, safe_read, filterPlaceholders
9 |
10 | translation = None
11 |
12 |
13 | def tr(str, locale="english"):
14 | """translation support
15 |
16 | translate str according to translation file
17 | """
18 | global translation
19 | if translation is None:
20 | path = unify_joinpath(os.path.dirname(
21 | __file__) + '/locale', g_conf.language+".json")
22 | translation = json.loads(safe_read(path) or '{}')
23 |
24 | return translation.get(str, str)
25 |
26 |
27 | def build_links(links):
28 | fp = filterPlaceholders
29 | str = '·'.join(['%s'
30 | % (fp(item['name']), fp(item['url']), fp(item['icon']), fp(item['name'])) for item in links])
31 | return '' % str
32 |
33 |
34 | def build_navs(navs):
35 | fp = filterPlaceholders
36 | list = ['%s'
37 | % (fp(item['url']), fp(item['target']), fp(item['name'])) for item in navs]
38 | list.append(
39 | '%s' % tr('Search'))
40 | return '' % ('·'.join(list))
41 |
42 |
43 | def filterPrefix(url: str):
44 | """replace prefix with `/`, to fix Valine view counting
45 | """
46 | return url.replace(g_conf.site_prefix, "/")
47 |
--------------------------------------------------------------------------------