Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/uPagge/uBlogger.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDillon <dillonzq@outlook.com>2020-01-31 13:46:28 +0300
committerDillon <dillonzq@outlook.com>2020-01-31 13:46:28 +0300
commit344f0a9f411a9b28d6e5732e591f26953d9c1263 (patch)
tree52ed7ce26bdcf9e40e2bd782da377e5c0c4653ca
parent7e6236361f790ec76a1d282021e6507a8378f40f (diff)
fix(css): fix some css bugs
-rw-r--r--archetypes/default.md6
-rw-r--r--assets/css/_core/_base.scss4
-rw-r--r--assets/css/_core/_media.scss10
-rw-r--r--assets/css/_core/_normalize.scss210
-rw-r--r--assets/css/_page/_index.scss4
-rw-r--r--assets/css/_page/_post.scss69
-rw-r--r--assets/css/_page/_posts.scss4
-rw-r--r--assets/css/_partial/_post/_code.scss7
-rw-r--r--assets/css/_variables.scss10
-rw-r--r--assets/js/blog.js14
-rw-r--r--assets/svg/loading.svg (renamed from exampleSite/static/images/loading.svg)12
-rw-r--r--exampleSite/config.toml176
-rw-r--r--exampleSite/content/posts/LoveIt-Preview.md10
-rw-r--r--exampleSite/content/posts/markdown-syntax.md169
-rw-r--r--exampleSite/static/images/markdown.pngbin0 -> 171484 bytes
-rw-r--r--i18n/en.toml5
-rw-r--r--i18n/zh.toml3
-rw-r--r--layouts/404.html16
-rw-r--r--layouts/_default/_markup/render-image.html20
-rw-r--r--layouts/_default/_markup/render-link.html10
-rw-r--r--layouts/_default/baseof.html20
-rw-r--r--layouts/_default/section.html16
-rw-r--r--layouts/_default/single.html55
-rw-r--r--layouts/_default/single.md2
-rw-r--r--layouts/_default/summary.html5
-rw-r--r--layouts/index.atom.xml60
-rw-r--r--layouts/index.html34
-rw-r--r--layouts/partials/comments.html6
-rw-r--r--layouts/partials/head.html8
-rw-r--r--layouts/posts/single.html22
-rw-r--r--layouts/rss.xml82
-rw-r--r--layouts/shortcodes/typeit.html2
-rw-r--r--layouts/sitemap.xml59
-rw-r--r--layouts/taxonomy/list.html2
-rw-r--r--layouts/taxonomy/terms.html2
-rw-r--r--resources/_gen/assets/scss/css/style.scss_b95b077eb505d5c0aff8055eaced30ad.content2
36 files changed, 706 insertions, 430 deletions
diff --git a/archetypes/default.md b/archetypes/default.md
index 4ee62f4..97e6386 100644
--- a/archetypes/default.md
+++ b/archetypes/default.md
@@ -6,13 +6,13 @@ draft: true
description: ""
show_in_homepage: true
show_description: false
-license: ''
+license: ""
tags: []
categories: []
-featured_image: ''
-featured_image_preview: ''
+featured_image: ""
+featured_image_preview: ""
comment: true
toc: false
diff --git a/assets/css/_core/_base.scss b/assets/css/_core/_base.scss
index 80cf7df..6d1a264 100644
--- a/assets/css/_core/_base.scss
+++ b/assets/css/_core/_base.scss
@@ -1,7 +1,5 @@
-@import url(https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900);
-
html {
- font-family: "Lato", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", STHeiti, "Microsoft Yahei", "WenQuanYi Micro Hei", Arial, Verdana, sans-serif;
+ font-family: $global-font-family;
/* scrollbar, only support webkit */
&::-webkit-scrollbar {
diff --git a/assets/css/_core/_media.scss b/assets/css/_core/_media.scss
index 0f5d524..e8a0f61 100644
--- a/assets/css/_core/_media.scss
+++ b/assets/css/_core/_media.scss
@@ -1,5 +1,5 @@
@media only screen and (max-width: 1800px) {
- .post-warp {
+ .warpper {
max-width: 780px;
.post-toc {
@@ -9,7 +9,7 @@
}
@media only screen and (max-width: 1300px) {
- .post-warp {
+ .warpper {
max-width: 560px;
.post-toc {
@@ -25,7 +25,7 @@
}
}
- .post-warp {
+ .warpper {
max-width: 80%;
.post-toc {
@@ -38,7 +38,7 @@
}
}
-@media only screen and (max-width: 480px) {
+@media only screen and (max-width: 560px) {
.navbar {
display: none;
}
@@ -47,7 +47,7 @@
display: block;
}
- .post-warp {
+ .warpper {
max-width: 100%;
.categories-card {
diff --git a/assets/css/_core/_normalize.scss b/assets/css/_core/_normalize.scss
index 20dbded..192eb9c 100644
--- a/assets/css/_core/_normalize.scss
+++ b/assets/css/_core/_normalize.scss
@@ -1,4 +1,4 @@
-/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
+/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
@@ -7,41 +7,35 @@
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
- @charset "UTF-8";
- html {
- line-height: 1.15; /* 1 */
- -webkit-text-size-adjust: 100%; /* 2 */
- }
+
+html {
+ line-height: 1.15; /* 1 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+}
/* Sections
- ========================================================================== */
+ ========================================================================== */
/**
-* Remove the margin in all browsers.
-*/
-
-html,
-body,
-main,
-div,
-span,
-a,
-li,
-ul,
-hr,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- padding: 0;
+ * Remove the margin in all browsers.
+ */
+
+body {
margin: 0;
}
+
/**
-* Correct the font size and margin on `h1` elements within `section` and
-* `article` contexts in Chrome, Firefox, and Safari.
-*/
+ * Render the `main` element consistently in IE.
+ */
+
+main {
+ display: block;
+}
+
+/**
+ * Correct the font size and margin on `h1` elements within `section` and
+ * `article` contexts in Chrome, Firefox, and Safari.
+ */
h1 {
font-size: 2em;
@@ -49,12 +43,12 @@ h1 {
}
/* Grouping content
- ========================================================================== */
+ ========================================================================== */
/**
-* 1. Add the correct box sizing in Firefox.
-* 2. Show the overflow in Edge and IE.
-*/
+ * 1. Add the correct box sizing in Firefox.
+ * 2. Show the overflow in Edge and IE.
+ */
hr {
box-sizing: content-box; /* 1 */
@@ -63,9 +57,9 @@ hr {
}
/**
-* 1. Correct the inheritance and scaling of font size in all browsers.
-* 2. Correct the odd `em` font sizing in all browsers.
-*/
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
pre {
font-family: monospace, monospace; /* 1 */
@@ -73,20 +67,20 @@ pre {
}
/* Text-level semantics
- ========================================================================== */
+ ========================================================================== */
/**
-* Remove the gray background on active links in IE 10.
-*/
+ * Remove the gray background on active links in IE 10.
+ */
a {
background-color: transparent;
}
/**
-* 1. Remove the bottom border in Chrome 57-
-* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
-*/
+ * 1. Remove the bottom border in Chrome 57-
+ * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
+ */
abbr[title] {
border-bottom: none; /* 1 */
@@ -95,8 +89,8 @@ abbr[title] {
}
/**
-* Add the correct font weight in Chrome, Edge, and Safari.
-*/
+ * Add the correct font weight in Chrome, Edge, and Safari.
+ */
b,
strong {
@@ -104,9 +98,9 @@ strong {
}
/**
-* 1. Correct the inheritance and scaling of font size in all browsers.
-* 2. Correct the odd `em` font sizing in all browsers.
-*/
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
code,
kbd,
@@ -116,17 +110,17 @@ samp {
}
/**
-* Add the correct font size in all browsers.
-*/
+ * Add the correct font size in all browsers.
+ */
small {
font-size: 80%;
}
/**
-* Prevent `sub` and `sup` elements from affecting the line height in
-* all browsers.
-*/
+ * Prevent `sub` and `sup` elements from affecting the line height in
+ * all browsers.
+ */
sub,
sup {
@@ -145,23 +139,23 @@ sup {
}
/* Embedded content
- ========================================================================== */
+ ========================================================================== */
/**
-* Remove the border on images inside links in IE 10.
-*/
+ * Remove the border on images inside links in IE 10.
+ */
img {
border-style: none;
}
/* Forms
- ========================================================================== */
+ ========================================================================== */
/**
-* 1. Change the font styles in all browsers.
-* 2. Remove the margin in Firefox and Safari.
-*/
+ * 1. Change the font styles in all browsers.
+ * 2. Remove the margin in Firefox and Safari.
+ */
button,
input,
@@ -175,30 +169,28 @@ textarea {
}
/**
-* Show the overflow in IE.
-* 1. Show the overflow in Edge.
-*/
+ * Show the overflow in IE.
+ * 1. Show the overflow in Edge.
+ */
button,
-input {
- /* 1 */
+input { /* 1 */
overflow: visible;
}
/**
-* Remove the inheritance of text transform in Edge, Firefox, and IE.
-* 1. Remove the inheritance of text transform in Firefox.
-*/
+ * Remove the inheritance of text transform in Edge, Firefox, and IE.
+ * 1. Remove the inheritance of text transform in Firefox.
+ */
button,
-select {
- /* 1 */
+select { /* 1 */
text-transform: none;
}
/**
-* Correct the inability to style clickable types in iOS and Safari.
-*/
+ * Correct the inability to style clickable types in iOS and Safari.
+ */
button,
[type="button"],
@@ -208,8 +200,8 @@ button,
}
/**
-* Remove the inner border and padding in Firefox.
-*/
+ * Remove the inner border and padding in Firefox.
+ */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
@@ -220,8 +212,8 @@ button::-moz-focus-inner,
}
/**
-* Restore the focus styles unset by the previous rule.
-*/
+ * Restore the focus styles unset by the previous rule.
+ */
button:-moz-focusring,
[type="button"]:-moz-focusring,
@@ -231,19 +223,19 @@ button:-moz-focusring,
}
/**
-* Correct the padding in Firefox.
-*/
+ * Correct the padding in Firefox.
+ */
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
-* 1. Correct the text wrapping in Edge and IE.
-* 2. Correct the color inheritance from `fieldset` elements in IE.
-* 3. Remove the padding so developers are not caught out when they zero out
-* `fieldset` elements in all browsers.
-*/
+ * 1. Correct the text wrapping in Edge and IE.
+ * 2. Correct the color inheritance from `fieldset` elements in IE.
+ * 3. Remove the padding so developers are not caught out when they zero out
+ * `fieldset` elements in all browsers.
+ */
legend {
box-sizing: border-box; /* 1 */
@@ -255,25 +247,25 @@ legend {
}
/**
-* Add the correct vertical alignment in Chrome, Firefox, and Opera.
-*/
+ * Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ */
progress {
vertical-align: baseline;
}
/**
-* Remove the default vertical scrollbar in IE 10+.
-*/
+ * Remove the default vertical scrollbar in IE 10+.
+ */
textarea {
overflow: auto;
}
/**
-* 1. Add the correct box sizing in IE 10.
-* 2. Remove the padding in IE 10.
-*/
+ * 1. Add the correct box sizing in IE 10.
+ * 2. Remove the padding in IE 10.
+ */
[type="checkbox"],
[type="radio"] {
@@ -282,8 +274,8 @@ textarea {
}
/**
-* Correct the cursor style of increment and decrement buttons in Chrome.
-*/
+ * Correct the cursor style of increment and decrement buttons in Chrome.
+ */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
@@ -291,9 +283,9 @@ textarea {
}
/**
-* 1. Correct the odd appearance in Chrome and Safari.
-* 2. Correct the outline style in Safari.
-*/
+ * 1. Correct the odd appearance in Chrome and Safari.
+ * 2. Correct the outline style in Safari.
+ */
[type="search"] {
-webkit-appearance: textfield; /* 1 */
@@ -301,17 +293,17 @@ textarea {
}
/**
-* Remove the inner padding in Chrome and Safari on macOS.
-*/
+ * Remove the inner padding in Chrome and Safari on macOS.
+ */
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
-* 1. Correct the inability to style clickable types in iOS and Safari.
-* 2. Change font properties to `inherit` in Safari.
-*/
+ * 1. Correct the inability to style clickable types in iOS and Safari.
+ * 2. Change font properties to `inherit` in Safari.
+ */
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
@@ -319,38 +311,38 @@ textarea {
}
/* Interactive
- ========================================================================== */
+ ========================================================================== */
/*
-* Add the correct display in Edge, IE 10+, and Firefox.
-*/
+ * Add the correct display in Edge, IE 10+, and Firefox.
+ */
details {
display: block;
}
/*
-* Add the correct display in all browsers.
-*/
+ * Add the correct display in all browsers.
+ */
summary {
display: list-item;
}
/* Misc
- ========================================================================== */
+ ========================================================================== */
/**
-* Add the correct display in IE 10+.
-*/
+ * Add the correct display in IE 10+.
+ */
template {
display: none;
}
/**
-* Add the correct display in IE 10.
-*/
+ * Add the correct display in IE 10.
+ */
[hidden] {
display: none;
diff --git a/assets/css/_page/_index.scss b/assets/css/_page/_index.scss
index e0f8894..8a0b5df 100644
--- a/assets/css/_page/_index.scss
+++ b/assets/css/_page/_index.scss
@@ -1,6 +1,6 @@
@import "_home";
-.post-warp {
+.warpper {
position: relative;
width: 100%;
max-width: 960px;
@@ -26,4 +26,4 @@
text-align: right;
padding-bottom: 2rem;
}
-} \ No newline at end of file
+}
diff --git a/assets/css/_page/_post.scss b/assets/css/_page/_post.scss
index 8bac91a..513eb44 100644
--- a/assets/css/_page/_post.scss
+++ b/assets/css/_page/_post.scss
@@ -7,14 +7,14 @@
.post-meta {
font-size: .88rem;
- color: rgba(85, 85, 85, 0.52941) !important;
+ color: $global-font-secondary-color;
span {
display: inline-block;
}
.dark-theme & {
- color: $global-font-secondary-color-dark !important;
+ color: $global-font-secondary-color-dark;
}
a {
@@ -246,7 +246,6 @@
max-width: 100%;
margin: .625rem 0;
border-spacing: 0;
- box-shadow: 2px 2px 3px rgba(0,0,0,.125);
background: $table-background-color;
.dark-theme & {
@@ -306,7 +305,7 @@
margin: 0 0 2em 0;
position: relative;
- &:before {
+ &::before {
content: '\201C';
position: absolute;
top: 0em;
@@ -323,8 +322,8 @@
}
}
- &:after {
- content: "#blockquote" attr(cite);
+ &::after {
+ content: '#blockquote' attr(cite);
display: block;
text-align: right;
font-size: 0.875em;
@@ -340,6 +339,14 @@
}
}
+ .footnotes {
+ color: $global-font-secondary-color;
+
+ .dark-theme & {
+ color: $global-font-secondary-color-dark;
+ }
+ }
+
@import "../_partial/_post/code";
@import "../_partial/_post/admonition";
@@ -420,45 +427,9 @@
.code {
padding: .375rem;
font-size: .875rem;
- font-family: Consolas, Monaco, Menlo, Consolas, monospace;
+ font-family: $code-font-family;
font-weight: bold;
word-break: break-all;
-
- .k {
- color: #D371E3;
- }
-
- .kt {
- color: #D371E3;
- }
-
- .kc {
- color: #D371E3;
- }
-
- .o {
- color: #D371E3;
- }
-
- .nf {
- color: #F16473;
- }
-
- .na {
- color: #41B1F5;
- }
-
- .s {
- color: #8BC56F;
- }
-
- .n {
- color: #DB975C;
- }
-
- .c1 {
- color: #7E848F;
- }
}
}
@@ -544,20 +515,20 @@
}
.post-nav {
- &:before,
- &:after {
- content: " ";
+ &::before,
+ &::after {
+ content: ' ';
display: table;
}
& a.prev,
& a.next {
- font-weight: 600;
font-size: 1rem;
+ font-weight: 600;
+ transition-duration: .3s;
transition-property: transform;
transition-timing-function: ease-out;
- transition-duration: 0.3s;
}
& a.prev {
@@ -580,4 +551,4 @@
.post-comment {
padding: 4rem 0;
-} \ No newline at end of file
+}
diff --git a/assets/css/_page/_posts.scss b/assets/css/_page/_posts.scss
index 9daa4cf..43e4a18 100644
--- a/assets/css/_page/_posts.scss
+++ b/assets/css/_page/_posts.scss
@@ -24,7 +24,7 @@
width: 100%;
padding: 30% 0 0;
position: relative;
- margin-bottom: 1rem;
+ margin: 0.6rem auto;
img {
position: absolute;
@@ -32,7 +32,7 @@
height: 100%;
left: 0;
top: 0;
- object-fit: scale-down;
+ object-fit: cover;
}
}
diff --git a/assets/css/_partial/_post/_code.scss b/assets/css/_partial/_post/_code.scss
index d43d256..8d2d0ff 100644
--- a/assets/css/_partial/_post/_code.scss
+++ b/assets/css/_partial/_post/_code.scss
@@ -34,9 +34,8 @@ p > code {
// chroma
.highlight > .chroma {
margin: 1em 0;
- border-radius: 5px;
+ border-radius: 6px;
overflow-x: auto;
- box-shadow: 1px 1px 2px rgba(0,0,0,0.125);
position: relative;
background: $code-background-color;
@@ -66,7 +65,7 @@ p > code {
}
@each $sign, $text in $code-type-list {
- &.#{$sign} table::after {
+ & .#{$sign} table::after {
content: $text;
}
}
@@ -119,7 +118,7 @@ p > code {
}
}
-.code {
+.highlight {
/* Parentheses */ .p { color: #A9A9B3 }
/* Keyword */ .k { color: #859900 }
/* KeywordConstant */ .kc { color: #859900; font-weight: bold }
diff --git a/assets/css/_variables.scss b/assets/css/_variables.scss
index 26412a7..4301ae8 100644
--- a/assets/css/_variables.scss
+++ b/assets/css/_variables.scss
@@ -3,6 +3,10 @@
// ==============================
// ========== Global ========== //
+@import url(https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900);
+
+$global-font-family: Lato, -apple-system, BlinkMacSystemFont, PingFang-SC-Regular, Hiragino Sans GB, Microsoft Yahei, Arial, sans-serif !default;
+
// Background color of the body
$global-background-color: #fff !default;
$global-background-color-dark: #292a2d !default;
@@ -31,7 +35,7 @@ $navbar-active-color-dark: #fff !default;
$post-link-color: #2d96bd !default;
$post-link-color-dark: #eee !default;
$post-link-hover-color: #ef3982 !default;
-$post-link-hover-color-dark: #fff !default;
+$post-link-hover-color-dark: #2d96bd !default;
$pagination-link-color: #2d96bd !default;
$pagination-link-color-dark: #a9a9b3 !default;
@@ -52,7 +56,7 @@ $code-color: #E74C3C !default;
$code-color-dark: #E5BF78 !default;
// Color of the code background.
-$code-background-color: whitesmoke !default;
+$code-background-color: #f5f5f5 !default;
$code-background-color-dark: #272C34 !default;
$code-info-color: #cacaca !default;
@@ -61,7 +65,7 @@ $code-info-color: #cacaca !default;
$code-font-size: 13px !default;
// Font family of the code.
-$code-font-family: Consolas, Monaco, Menlo, "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace !default;
+$code-font-family: Source Code Pro, Consolas, Liberation Mono, Menlo, Courier, monospace !default;
// Code type list.
$code-type-list: (
diff --git a/assets/js/blog.js b/assets/js/blog.js
index be86965..6abaeaa 100644
--- a/assets/js/blog.js
+++ b/assets/js/blog.js
@@ -157,27 +157,23 @@ jQuery(function($) {
};
changeTocState();
- const HEADERFIX = 100;
+ const HEADERFIX = 150;
const $toclink = $('.toc-link');
const $headerlink = $('.headerlink');
const $tocLinkLis = $('.post-toc-content li');
- const activeIndex = function() {
+ const activeIndex = function () {
const scrollTop = $(window).scrollTop();
const headerlinkTop = $.map($headerlink, function(link) {
return $(link).offset().top;
});
- const headerLinksOffsetForSearch = $.map(headerlinkTop, function(offset) {
- return offset - HEADERFIX;
- });
const searchActiveTocIndex = function(array, target) {
for (let i = 0; i < array.length - 1; i++) {
- if (target > array[i] && target <= array[i + 1]) return i;
+ if ( target < array[i + 1]) return i;
}
- if (target > array[array.length - 1]) return array.length - 1;
- return 0;
+ return array.length - 1;
};
- const activeTocIndex = searchActiveTocIndex(headerLinksOffsetForSearch, scrollTop);
+ const activeTocIndex = searchActiveTocIndex(headerlinkTop, scrollTop + HEADERFIX);
$($toclink).removeClass('active');
$($tocLinkLis).removeClass('has-active');
diff --git a/exampleSite/static/images/loading.svg b/assets/svg/loading.svg
index 075a399..b852575 100644
--- a/exampleSite/static/images/loading.svg
+++ b/assets/svg/loading.svg
@@ -1,10 +1,10 @@
<!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->
-<svg width="38" height="38" viewBox="0 0 38 38" xmlns="http://www.w3.org/2000/svg">
+<svg width="319" height="319" viewBox="-281 -281 600 600" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient x1="8.042%" y1="0%" x2="65.682%" y2="23.865%" id="a">
- <stop stop-color="#fff" stop-opacity="0" offset="0%"/>
- <stop stop-color="#fff" stop-opacity=".631" offset="63.146%"/>
- <stop stop-color="#fff" offset="100%"/>
+ <stop stop-color="#a5a5a5" stop-opacity="0" offset="0%"/>
+ <stop stop-color="#a5a5a5" stop-opacity=".631" offset="63.146%"/>
+ <stop stop-color="#a5a5a5" offset="100%"/>
</linearGradient>
</defs>
<g fill="none" fill-rule="evenodd">
@@ -18,7 +18,7 @@
dur="0.9s"
repeatCount="indefinite" />
</path>
- <circle fill="#fff" cx="36" cy="18" r="1">
+ <circle fill="#a5a5a5" cx="36" cy="18" r="1">
<animateTransform
attributeName="transform"
type="rotate"
@@ -29,4 +29,4 @@
</circle>
</g>
</g>
-</svg>
+</svg> \ No newline at end of file
diff --git a/exampleSite/config.toml b/exampleSite/config.toml
index 532195c..218d8b6 100644
--- a/exampleSite/config.toml
+++ b/exampleSite/config.toml
@@ -1,41 +1,64 @@
baseURL = "https://example.com/"
-languageCode = "en" # website language
-defaultContentLanguage = "en" # [en, zh, ...] determines which i18n file to use
-title = "LoveIt Theme" # website title
-theme = "LoveIt" # theme
-enableGitInfo = false # whether to use git commit log to generate lastmod record
-hasCJKLanguage = false # whether to include chinese/japanese/korean
-paginate = 12 # default amount of posts in each pages
-enableEmoji = true # whether to use emoji code
-enableRobotsTXT = true # whether to use robots.txt
-googleAnalytics = "" # [UA-XXXXXXXX-X] google analytics code
-disqusShortname = "dillonzq" # Disqus shortname to use Disqus in posts
+# website language
+languageCode = "en"
+# [en, zh, ...] determines which i18n file to use
+defaultContentLanguage = "en"
+# website title
+title = "LoveIt Theme"
+# theme
+theme = "LoveIt"
+# whether to use git commit log to generate lastmod record
+enableGitInfo = false
+# whether to include chinese/japanese/korean
+hasCJKLanguage = false
+# default amount of posts in each pages
+paginate = 12
+# whether to use emoji code
+enableEmoji = true
+# whether to use robots.txt
+enableRobotsTXT = true
+# [UA-XXXXXXXX-X] google analytics code
+googleAnalytics = ""
+# copyright description used only for seo schema
copyright = "This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License."
- # copyright description used only for seo schema
-
- #### Syntax Highlighting (https://gohugo.io/content-management/syntax-highlighting)
-pygmentsOptions = "linenos=table"
-pygmentsCodefences = true
-pygmentsUseClasses = true
-pygmentsCodefencesGuessSyntax = true
+# Markup related configuration in Hugo
[markup]
-[markup.goldmark]
-[markup.goldmark.renderer]
-unsafe = true
+ # Syntax Highlighting (https://gohugo.io/content-management/syntax-highlighting)
+ [markup.highlight]
+ codeFences = true
+ guessSyntax = true
+ lineNoStart = 1
+ lineNos = true
+ lineNumbersInTable = true
+ noClasses = false
+ style = "monokai"
+ tabWidth = 4
+ # Goldmark is from Hugo 0.60 the default library used for Markdown
+ [markup.goldmark]
+ [markup.goldmark.renderer]
+ unsafe = true
+ # Table Of Contents settings
+ [markup.tableOfContents]
+ startLevel = 2
+ endLevel = 6
-[author] #### Author Info
- name = "XXXX"
+# Author Info
+[author]
+ name = "xxxx"
-[sitemap] #### Sitemap Info
+# Sitemap Info
+[sitemap]
changefreq = "weekly"
filename = "sitemap.xml"
priority = 0.5
-[Permalinks] #### Permalinks Info (https://gohugo.io/content-management/urls/#permalinks)
+# Permalinks Info (https://gohugo.io/content-management/urls/#permalinks)
+[Permalinks]
posts = ":year/:month/:filename"
-[menu] #### Menu Info
+# Menu Info
+[menu]
[[menu.main]]
identifier = "posts"
name = "Posts"
@@ -62,41 +85,56 @@ unsafe = true
[[menu.main]]
identifier = "zh"
- name = '<i class="fas fa-language fa-fw"></i>'
+ name = '<i class="fas fa-language fa-fw" title="简体中文"></i>'
url = "https://hugo-loveit-zh.netlify.com"
weight = 5
[params]
- version = "5.x" # LoveIt theme version
- description = "LoveIt Theme Demo" # site description
- keywords = ["XXXX", "Theme", "Hugo"] # site keywords
+ # LoveIt theme version
+ version = "0.1.X"
+ # site description
+ description = "LoveIt Theme Demo"
+ # site keywords
+ keywords = ["Theme", "Hugo"]
- #### Home Page Info
- home_mode = "post" # [post, other] home mode
- home_paginate = 6 # special amount of posts in each home post page
- avatar = "images/avatar.png" # URL of avatar shown in home page
- subtitle = "A Clean, Elegant but Advanced Hugo Theme" # subtitle shown in home page
+ # Home Page Info
+ ## [post, other] home mode
+ home_mode = "post"
+ ## special amount of posts in each home post page
+ home_paginate = 6
+ ## URL of avatar shown in home page
+ avatar = "images/avatar.png"
+ ## subtitle shown in home page
+ subtitle = "A Clean, Elegant but Advanced Hugo Theme"
- socialShare = true # whether to show social share links in post page
+ # whether to show social share links in post page
+ socialShare = true
- #### Footer CopyRight Info
- since = 2018 # Site creation time
- icp = '' # ICP info only in China (HTML format is allowed)
+ # Footer CopyRight Info
+ ## Site creation time
+ since = 2018
+ ## ICP info only in China (HTML format is allowed)
+ icp = ""
+ ## license info (HTML format is allowed)
license= '<a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank">CC BY-NC 4.0</a>'
- # license info (HTML format is allowed)
- gitRepo = "" # public git repo url to link lastmod git commit only then enableGitInfo is true
- linkToMarkdown = true # whether to show link to Raw Markdown content of the post
+ # public git repo url to link lastmod git commit only then enableGitInfo is true
+ gitRepo = ""
+
+ # whether to show link to Raw Markdown content of the post
+ linkToMarkdown = true
- #### site verification code for Google/Bing/Yandex/Pinterest/Baidu
+ # site verification code for Google/Bing/Yandex/Pinterest/Baidu
google_verification = ""
bing_verification = ""
yandex_verification = ""
pinterest_verification = ""
baidu_verification = ""
- [params.cdn] #### CSS and JS Files CDN
- fontawesome_free_css = '' # for example '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.10.1/css/all.min.css" integrity="sha256-fdcFNFiBMrNfWL6OcAGQz6jDgNTRxnrLEd4vJYFWScE=" crossorigin="anonymous">'
+ # CSS and JS Files CDN
+ [params.cdn]
+ ## for example '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.10.1/css/all.min.css" integrity="sha256-fdcFNFiBMrNfWL6OcAGQz6jDgNTRxnrLEd4vJYFWScE=" crossorigin="anonymous">'
+ fontawesome_free_css = ''
animate_css = ''
gitalk_css = ''
gitalk_js = ''
@@ -116,15 +154,17 @@ unsafe = true
aplayer_js = ''
meting_js = ''
- [params.gravatar] # Gravatar Info for preferred avatar in home page
+ # Gravatar Info for preferred avatar in home page
+ [params.gravatar]
email = ""
- [params.social] # Social Info in home page
+ # Social Info in home page
+ [params.social]
GitHub = "xxxx"
Linkedin = "xxxx"
Twitter = "xxxx"
#Instagram = "xxxx"
- #Email = "xxxx"
+ Email = "xxxx@outlook.com"
Facebook = "xxxx"
Telegram = "xxxx"
#Medium = "xxxx"
@@ -180,7 +220,8 @@ unsafe = true
#Thingiverse = "xxxx"
#Devto = "xxxx"
- [params.share] # Social Share Links in post page
+ # Social Share Links in post page
+ [params.share]
enable = true
Twitter = true
Facebook = true
@@ -193,30 +234,40 @@ unsafe = true
#VKontakte = true
#Weibo = true
- [params.publisher] # Publisher Info just for SEO
- name = "XXXX"
+ # Publisher Info just for SEO
+ [params.publisher]
+ name = "xxxx"
[params.publisher.logo]
url = "logo.png"
width = 127
height = 40
- [params.logo] # Website Log Info just for SEO
+ # Website Log Info just for SEO
+ [params.logo]
url = "logo.png"
width = 127
height = 40
- [params.image] # Website Image Info just for SEO
+ # Website Image Info just for SEO
+ [params.image]
url = "cover.png"
width = 800
height = 600
- [params.gitalk] # Gittalk Comment Config (https://github.com/gitalk/gitalk)
+ # Disqus Comment Config (https://disqus.com/)
+ [params.disqus]
+ # Disqus shortname to use Disqus in posts
+ shortname = ""
+
+ # Gittalk Comment Config (https://github.com/gitalk/gitalk)
+ [params.gitalk]
owner = ""
repo = ""
clientId = ""
clientSecret = ""
- [params.valine] # Valine Comment Config (https://github.com/xCss/Valine)
+ # Valine Comment Config (https://github.com/xCss/Valine)
+ [params.valine]
enable = false
appId = ""
appKey = ""
@@ -227,30 +278,35 @@ unsafe = true
visitor = true
recordIP = true
- [params.facebook] # Facebook Comment Config (https://developers.facebook.com/docs/plugins/comments)
+ # Facebook Comment Config (https://developers.facebook.com/docs/plugins/comments)
+ [params.facebook]
enable = false
width = "100%"
numPosts = 10
appId = ""
languageCode = "en_US"
-[privacy] #### Privacy Info (https://gohugo.io/about/hugo-and-gdpr/)
+# Privacy Info (https://gohugo.io/about/hugo-and-gdpr/)
+[privacy]
[privacy.googleAnalytics]
anonymizeIP = true
[privacy.youtube]
privacyEnhanced = true
-[mediaTypes] #### Options to make hugo output .md files.
+# Options to make hugo output .md files.
+[mediaTypes]
[mediaTypes."text/plain"]
suffixes = ["md"]
-[outputFormats.MarkDown] #### Options to make hugo output .md files.
+# Options to make hugo output .md files.
+[outputFormats.MarkDown]
mediaType = "text/plain"
isPlainText = true
isHTML = false
-[outputs] #### Options to make hugo output .md files.
+# Options to make hugo output files.
+[outputs]
home = ["HTML", "RSS"]
page = ["HTML", "MarkDown"]
section = ["HTML", "RSS"]
diff --git a/exampleSite/content/posts/LoveIt-Preview.md b/exampleSite/content/posts/LoveIt-Preview.md
index b9f215d..f9938d6 100644
--- a/exampleSite/content/posts/LoveIt-Preview.md
+++ b/exampleSite/content/posts/LoveIt-Preview.md
@@ -6,13 +6,13 @@ draft: false
description: "This is a LoveIt theme preview and documentation page."
show_in_homepage: true
show_description: false
-license: ''
+license: ""
-tags: ['Hugo', 'Theme']
-categories: ['Documentation']
+tags: ["Hugo", "Theme"]
+categories: ["Documentation"]
-featured_image: ''
-featured_image_preview: ''
+featured_image: ""
+featured_image_preview: ""
comment: true
toc: true
diff --git a/exampleSite/content/posts/markdown-syntax.md b/exampleSite/content/posts/markdown-syntax.md
new file mode 100644
index 0000000..ffb943a
--- /dev/null
+++ b/exampleSite/content/posts/markdown-syntax.md
@@ -0,0 +1,169 @@
+---
+author: "Hugo Authors"
+title: "Markdown Syntax Guide"
+date: 2020-01-30T21:57:40+08:00
+lastmod: 2020-01-30T21:57:40+08:00
+draft: false
+description: "Sample article showcasing basic Markdown syntax and formatting for HTML elements."
+show_in_homepage: true
+show_description: false
+license: ""
+
+tags: [
+ "markdown",
+ "css",
+ "html",
+ "themes",
+]
+categories: [
+ "themes",
+ "syntax",
+]
+
+featured_image: /images/markdown.png
+featured_image_preview: ""
+
+comment: true
+toc: true
+autoCollapseToc: true
+math: false
+---
+
+This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.
+<!--more-->
+
+## Headings
+
+The following HTML `<h2>`—`<h6>` elements represent six levels of section headings. `<h2>` is the highest section level while `<h6>` is the lowest.
+
+## H2
+### H3
+#### H4
+##### H5
+###### H6
+
+## Paragraph
+
+Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum,
+voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit
+peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur,
+offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur,
+cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea
+corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum
+fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate
+dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer
+sperchicium faceata tiustia prat.
+
+Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is
+sinveli squiatum, core et que aut hariosam ex eat.
+
+## Blockquotes
+
+The blockquote element represents content that is quoted from another source, optionally
+with a citation which must be within a `footer` or `cite` element, and optionally with
+in-line changes such as annotations and abbreviations.
+
+### Blockquote without attribution
+
+> Tiam, ad mint andaepu dandae nostion secatur sequo quae.
+> **Note** that you can use *Markdown syntax* within a blockquote.
+
+### Blockquote with attribution
+
+> Don't communicate by sharing memory, share memory by communicating.</p>
+> — <cite>Rob Pike[^1]</cite>
+
+## Tables
+
+Tables aren't part of the core Markdown spec, but Hugo supports supports them out-of-the-box.
+
+ Name | Age
+--------|------
+ Bob | 27
+ Alice | 23
+
+### Inline Markdown within tables
+
+| Inline&nbsp;&nbsp;&nbsp; | Markdown&nbsp;&nbsp;&nbsp; | In&nbsp;&nbsp;&nbsp; | Table |
+| ---------- | --------- | ----------------- | ---------- |
+| *italics* | **bold** | ~~strikethrough~~&nbsp;&nbsp;&nbsp; | `code` |
+
+## Code Blocks
+
+### Code block with backticks
+
+```html
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8">
+ <title>Example HTML5 Document</title>
+ </head>
+ <body>
+ <p>Test</p>
+ </body>
+</html>
+```
+
+### Code block indented with four spaces
+
+ <!DOCTYPE html>
+ <html lang="en">
+ <head>
+ <meta charset="UTF-8">
+ <title>Example HTML5 Document</title>
+ </head>
+ <body>
+ <p>Test</p>
+ </body>
+ </html>
+
+### Code block with Hugo's internal highlight shortcode
+
+{{< highlight html >}}
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8">
+ <title>Example HTML5 Document</title>
+ </head>
+ <body>
+ <p>Test</p>
+ </body>
+</html>
+{{< /highlight >}}
+
+## List Types
+
+### Ordered List
+
+1. First item
+2. Second item
+3. Third item
+
+### Unordered List
+
+* List item
+* Another item
+* And another item
+
+### Nested list
+
+* Item
+ 1. First Sub-item
+ 2. Second Sub-item
+
+## Other Elements — abbr, sub, sup, kbd, mark
+
+<abbr title="Graphics Interchange Format">GIF</abbr> is a bitmap image format.
+
+H<sub>2</sub>O
+
+X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
+
+Press <kbd><kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd></kbd> to end the session.
+
+Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms,
+and other small creatures.
+
+[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015.
diff --git a/exampleSite/static/images/markdown.png b/exampleSite/static/images/markdown.png
new file mode 100644
index 0000000..b31e1a5
--- /dev/null
+++ b/exampleSite/static/images/markdown.png
Binary files differ
diff --git a/i18n/en.toml b/i18n/en.toml
index 0653e75..48889d4 100644
--- a/i18n/en.toml
+++ b/i18n/en.toml
@@ -48,7 +48,7 @@ other = "Theme - "
# === posts/single.html ===
[toc]
-other = "Table of Contents"
+other = "Contents"
[publish]
other = "published on"
@@ -103,6 +103,9 @@ other = "return"
[pageNotFound]
other = "Page not found"
+[pageNotFoundText]
+other = "The page you're looking for doesn't exist. Sorry."
+
[backToHome]
other = "Back to Home"
# === 404.html ===
diff --git a/i18n/zh.toml b/i18n/zh.toml
index d60b617..71c0f36 100644
--- a/i18n/zh.toml
+++ b/i18n/zh.toml
@@ -106,6 +106,9 @@ other = "返回"
[pageNotFound]
other = "页面没找到"
+[pageNotFoundText]
+other = "抱歉,您要查找的页面不存在。"
+
[backToHome]
other = "回到主页"
# === 404.html ===
diff --git a/layouts/404.html b/layouts/404.html
index 6e10189..f49926d 100644
--- a/layouts/404.html
+++ b/layouts/404.html
@@ -1,10 +1,16 @@
-{{ define "title" }}{{ T "pageNotFound" }} | {{ .Site.Title }}{{ end -}}
+{{- define "title" }}{{ T "pageNotFound" | printf "404 %s" }} | {{ .Site.Title }}{{ end -}}
-{{ define "content" }}
+{{- define "content" -}}
<div class="notfound">
<h1 class="error-emoji"></h1>
- <p class="error-text">/* 404 {{ T "pageNotFound" }}. */</p>
- <p class="error-link"><a href="{{ .Site.BaseURL }}">↑ {{ T "backToHome" }} ↑</a></p>
+ <p class="error-text">
+ {{- T "pageNotFoundText" -}}
+ </p>
+ <p class="error-link">
+ <a href="{{ .Site.BaseURL }}">
+ {{- T "backToHome" | printf "← %s" -}}
+ </a>
+ </p>
</div>
<script>
var errorEmojiContainer = document.getElementsByClassName('error-emoji')[0];
@@ -15,4 +21,4 @@
var errorEmoji = emojiArray[Math.floor(Math.random() * emojiArray.length)];
errorEmojiContainer.appendChild(document.createTextNode(errorEmoji));
</script>
-{{ end }} \ No newline at end of file
+{{- end -}} \ No newline at end of file
diff --git a/layouts/_default/_markup/render-image.html b/layouts/_default/_markup/render-image.html
new file mode 100644
index 0000000..8ab4804
--- /dev/null
+++ b/layouts/_default/_markup/render-image.html
@@ -0,0 +1,20 @@
+<figure>
+ <img
+ {{ $res := resources.Get "svg/loading.svg" | minify }}
+ src="{{ $res.RelPermalink }}"
+ data-sizes="auto"
+ data-src="{{ .Destination | safeURL }}"
+ alt="{{ .Text }}"
+ {{- with .Title -}}
+ title="{{ . }}"
+ {{- end -}}
+ class="lazyload"
+ >
+ <figcaption class="image-caption">
+ {{- if .Title -}}
+ {{- .Title -}}
+ {{- else -}}
+ {{- .Text -}}
+ {{- end -}}
+ </figcaption>
+</figure> \ No newline at end of file
diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html
new file mode 100644
index 0000000..ccac741
--- /dev/null
+++ b/layouts/_default/_markup/render-link.html
@@ -0,0 +1,10 @@
+<a href="{{ .Destination | safeURL }}"
+ {{- with .Title -}}
+ title="{{ . }}"
+ {{- end -}}
+ {{- if strings.HasPrefix .Destination "http" -}}
+ target="_blank"
+ {{- end -}}
+ >
+ {{- .Text -}}
+</a> \ No newline at end of file
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 39ca8e0..cd1072b 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -1,13 +1,13 @@
-{{ if ne .Site.Params.version "5.x" -}}
- {{ errorf "\n\nThere are two possible situations that led to this error:\n 1. You haven't copied the config.toml yet. See https://github.com/dillonzq/LoveIt#installation \n 2. You have an incompatible update. See https://github.com//dillonzq/LoveIt/blob/master/CHANGELOG.md \n\n有两种可能的情况会导致这个错误发生:\n 1. 你还没有复制 config.toml 参考 https://github.com/dillonzq/LoveIt#installation \n 2. 你进行了一次不兼容的更新 参考 https://github.com//dillonzq/LoveIt/blob/master/CHANGELOG.md \n" -}}
-{{ end -}}
+{{- if ne .Site.Params.version "0.1.X" -}}
+ {{- errorf "\n\nThere are two possible situations that led to this error:\n 1. You haven't copied the config.toml yet. See https://github.com/dillonzq/LoveIt#installation \n 2. You have an incompatible update. See https://github.com//dillonzq/LoveIt/blob/master/CHANGELOG.md \n\n有两种可能的情况会导致这个错误发生:\n 1. 你还没有复制 config.toml 参考 https://github.com/dillonzq/LoveIt#installation \n 2. 你进行了一次不兼容的更新 参考 https://github.com//dillonzq/LoveIt/blob/master/CHANGELOG.md \n" -}}
+{{- end -}}
<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title>
- {{- partial "head.html" . }}
+ {{- partial "head.html" . -}}
</head>
<body>
<script>
@@ -15,15 +15,17 @@
window.isDark && document.body.classList.add('dark-theme');
</script>
<div class="wrapper">
- {{ partial "header.html" . -}}
+ {{- partial "header.html" . -}}
<main class="main">
<div class="container">
- {{ block "content" . }}{{ end -}}
+ {{- block "content" . }}{{ end -}}
</div>
</main>
- {{ partial "footer.html" . -}}
- {{ partial "scripts.html" . -}}
+ {{- partial "footer.html" . -}}
+ {{- partial "scripts.html" . -}}
</div>
- <a href="#" class="dynamic-to-top" id="dynamic-to-top" data-scroll><span>&nbsp;</span></a>
+ <a href="#" class="dynamic-to-top" id="dynamic-to-top" data-scroll>
+ <span>&nbsp;</span>
+ </a>
</body>
</html> \ No newline at end of file
diff --git a/layouts/_default/section.html b/layouts/_default/section.html
index 8ef2cf1..620e737 100644
--- a/layouts/_default/section.html
+++ b/layouts/_default/section.html
@@ -1,17 +1,19 @@
-{{ define "title" }}{{ T "all" | humanize}}{{ T .Section | default .Section | humanize }} | {{ .Site.Title }}{{ end -}}
+{{- define "title" }}{{ T "all" | humanize}}{{ T .Section | default .Section | humanize }} | {{ .Site.Title }}{{ end -}}
-{{ define "content" -}}
- {{ $data := .Data -}}
- <div class="post-warp archive">
+{{- define "content" -}}
+ {{- $data := .Data -}}
+ <div class="warpper archive">
<h2 class="post-title animated pulse faster">
- {{ T "all" | humanize}}{{ T .Section | default .Section | humanize }}
+ {{- T "all" | humanize}}{{ T .Section | default .Section | humanize -}}
</h2>
{{- range (.Paginate (.Pages.GroupByDate "2006")).PageGroups -}}
<h3>{{ .Key }}</h3>
{{- range .Pages -}}
<article class="archive-item">
- <a href="{{ .RelPermalink }}" class="archive-item-link">{{ .Title }}</a>
+ <a href="{{ .RelPermalink }}" class="archive-item-link">
+ {{- .Title -}}
+ </a>
<span class="archive-item-date">
{{- .Date.Format (.Site.Params.dateFormatToUse | default "01-02") -}}
</span>
@@ -20,4 +22,4 @@
{{- end -}}
{{- partial "paginator.html" . -}}
</div>
-{{- end }} \ No newline at end of file
+{{- end -}} \ No newline at end of file
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
index 871d9e0..1c22375 100644
--- a/layouts/_default/single.html
+++ b/layouts/_default/single.html
@@ -1,35 +1,28 @@
-{{ define "title" }}{{ .Title }} | {{ .Site.Title }}{{ end }}
+{{- define "title" }}{{ .Title }} | {{ .Site.Title }}{{ end -}}
-{{ define "content" }}
- <div class="post-warp single">
- <h1 class="post-title animated pulse faster">{{ .Title }}</h1>
+{{- define "content" -}}
+ <div class="warpper single">
+ <h1 class="post-title animated pulse faster">
+ {{- .Title -}}
+ </h1>
<div class="post-content">
- {{ $content := .Content }}
- {{ $REin := `<img src="([^"]+)" alt="([^"]+)?" />` }}
- {{ $REout := "<figure><img src=/images/loading.svg data-sizes=auto data-src=$1 alt=$2 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }}
- {{ $content = replaceRE $REin $REout $content }}
- {{ $REin = `<img src="([^"]+)" alt="([^"]+)?" title="([^"]+)?" />` }}
- {{ $REout = "<figure><img src=/images/loading.svg data-src=$1 data-sizes=auto alt=$2 title=$3 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }}
- {{ $content = replaceRE $REin $REout $content }}
- {{ $REin = `:\(([\w- ]+?)\):` }}
- {{ $REout = `<i class="$1 fa-fw"></i>` }}
- {{ $content = replaceRE $REin $REout $content }}
- {{ $REin = `\[(.+?)\]\^\((.+?)\)` }}
- {{ $REout = `<strong><ruby>$1<rt>$2</rt></ruby></strong>` }}
- {{ $content = replaceRE $REin $REout $content }}
- {{ $REin = `<sup>\[return\]</sup>` }}
- {{ $REout = printf "<sup>[%s]</sup>" (T "return") }}
- {{ $content = replaceRE $REin $REout $content }}
- {{ $REin = `<(h[123456]) (id=".+?")>` }}
- {{ $REout = `<a class="post-dummy-target" $2></a><$1>` }}
- {{ $content = replaceRE $REin $REout $content }}
- {{ $REin = `<(sup class="footnote-ref") (id="fnref:.+?")>` }}
- {{ $REout = `<a class="post-dummy-target" $2></a><$1>` }}
- {{ $content = replaceRE $REin $REout $content }}
- {{ $REin = `<(li) (id="fn:.+?")>` }}
- {{ $REout = `<$1><a class="post-dummy-target" $2></a>` }}
- {{ $content = replaceRE $REin $REout $content }}
- {{ $content | safeHTML }}
+ {{- $content := .Content -}}
+ {{- $REin := `:\(([\w- ]+?)\):` -}}
+ {{- $REout := `<i class="$1 fa-fw"></i>` -}}
+ {{- $content = replaceRE $REin $REout $content -}}
+ {{- $REin = `\[(.+?)\]\^\((.+?)\)` -}}
+ {{- $REout = `<strong><ruby>$1<rt>$2</rt></ruby></strong>` -}}
+ {{- $content = replaceRE $REin $REout $content -}}
+ {{- $REin = `<sup>\[return\]</sup>` -}}
+ {{- $REout = printf "<sup>[%s]</sup>" (T "return") -}}
+ {{- $content = replaceRE $REin $REout $content -}}
+ {{- $REin = `<(h[23456]) (id=".+?")>` -}}
+ {{- $REout = `<a class="post-dummy-target" $2></a><$1>` -}}
+ {{- $content = replaceRE $REin $REout $content -}}
+ {{- $REin = `<(.+) (id="fnref:.+?")>` -}}
+ {{- $REout = `<a class="post-dummy-target" $2></a><$1>` -}}
+ {{- $content = replaceRE $REin $REout $content -}}
+ {{- $content | safeHTML -}}
</div>
</div>
-{{end }} \ No newline at end of file
+{{- end -}} \ No newline at end of file
diff --git a/layouts/_default/single.md b/layouts/_default/single.md
index 6153d0e..e34c2d4 100644
--- a/layouts/_default/single.md
+++ b/layouts/_default/single.md
@@ -1,3 +1,3 @@
# {{ .Title }}
-{{ .RawContent }} \ No newline at end of file
+{{ .RawContent }}
diff --git a/layouts/_default/summary.html b/layouts/_default/summary.html
index 6a39c15..eed92b7 100644
--- a/layouts/_default/summary.html
+++ b/layouts/_default/summary.html
@@ -9,7 +9,8 @@
{{ with .Params.featured_image }}
{{ $image := $.Params.featured_image_preview | default . }}
<div class="post-featured-image-preview">
- <img src=/images/loading.svg data-sizes=auto data-src={{ $image }} alt="featured image" class="lazyload">
+ {{ $res := resources.Get "svg/loading.svg" | minify }}
+ <img src="{{ $res.RelPermalink }}" data-sizes="auto" data-src="{{ $image }}" alt="featured image" class="lazyload">
</div>
{{ end }}
<!-- end featured_image-->
@@ -42,7 +43,7 @@
{{ $summary = replaceRE $REin $REout $summary }}
{{ $REin = `\[(.+?)\]\^\((.+?)\)` }}
{{ $REout = `<strong><ruby>$1<rt>$2</rt></ruby></strong>` }}
- {{ $summary = replaceRE $REin $REout $summary }}
+ {{ $summary = replaceRE $REin $REout $summary }}
{{ $summary | safeHTML }}
{{ end }}
</div>
diff --git a/layouts/index.atom.xml b/layouts/index.atom.xml
index e212cdb..b07556e 100644
--- a/layouts/index.atom.xml
+++ b/layouts/index.atom.xml
@@ -1,37 +1,49 @@
<feed xmlns="http://www.w3.org/2005/Atom">
- {{ if .IsHome }}
- <title>{{ .Title }}</title>
- {{ else }}
- <title>{{ .Title }} - {{ .Site.Title }}</title>
- {{ end }}
+ {{- with .Title }}{{ . }} | {{ end }}{{ .Site.Title -}}
<link href="{{ .Permalink }}index.xml" rel="self"/>
<link href="{{ .Permalink }}"/>
- {{ if not .Date.IsZero }}
- <updated>{{ .Date.Format "02-01-2006T15:04:05-07:00" | safeHTML }}</updated>
- {{ end }}
- <id>{{ .Permalink }}</id>
+ {{- if not .Date.IsZero -}}
+ <updated>
+ {{- .Date.Format "02-01-2006T15:04:05-07:00" | safeHTML -}}
+ </updated>
+ {{- end -}}
+ <id>
+ {{- .Permalink -}}
+ </id>
<author>
- {{ with .Site.Author.name }}
+ {{- with .Site.Author.name -}}
<name>{{ . }}</name>
- {{ end }}
- {{ with $.Site.Author.email }}
+ {{- end -}}
+ {{- with .Site.Author.email -}}
<email>{{ . }}</email>
- {{ end }}
+ {{- end -}}
</author>
<generator>Hugo -- gohugo.io</generator>
- {{ range first 15 (where .Data.Pages "Type" "in" .Site.Params.mainSections) }}
+ {{- range first 15 (where .Data.Pages "Type" "in" .Site.Params.mainSections) -}}
<entry>
- {{ `<title type="html"><![CDATA[` | safeHTML }}{{ .Title }}]]></title>
+ <title type="html">
+ {{- printf "<![CDATA[%s]]>" .Title | safeHTML -}}
+ </title>
<link href="{{ .Permalink }}"/>
- <id>{{ .Permalink }}</id>
- {{ with .Site.Author.name }}
+ <id>
+ {{- .Permalink -}}
+ </id>
+ {{- with .Site.Author.name -}}
<author>
- <name>{{ . }}</name>
+ <name>
+ {{- . -}}
+ </name>
</author>
- {{ end }}
- <published>{{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</published>
- <updated>{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}</updated>
- {{ `<content type="html"><![CDATA[` | safeHTML }}{{ .Content }}]]></content>
+ {{- end -}}
+ <published>
+ {{- .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML -}}
+ </published>
+ <updated>
+ {{- .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML -}}
+ </updated>
+ <content type="html">
+ {{- printf "<![CDATA[%s]]>" .Content | safeHTML -}}
+ </content>
</entry>
- {{ end }}
-</feed>
+ {{- end -}}
+</feed> \ No newline at end of file
diff --git a/layouts/index.html b/layouts/index.html
index 740169e..ad26191 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -1,22 +1,22 @@
-{{ define "content" -}}
- {{ if eq .Site.Params.home_mode "post" -}}
- <div class="post-warp">
+{{- define "content" -}}
+ {{- if eq .Site.Params.home_mode "post" -}}
+ <div class="warpper">
{{- partial "home/profile.html" . -}}
- {{ $paginator := where .Site.RegularPages "Type" "posts" -}}
- {{ $paginator = where $paginator "Params.show_in_homepage" "!=" false -}}
- {{ with .Site.Params.home_paginate -}}
- {{ $paginator = $.Paginate $paginator . -}}
- {{ else -}}
- {{ $paginator = $.Paginate $paginator -}}
- {{ end -}}
- {{ range $paginator.Pages -}}
- {{ .Render "summary" -}}
- {{ end -}}
+ {{- $paginator := where .Site.RegularPages "Type" "posts" -}}
+ {{- $paginator = where $paginator "Params.show_in_homepage" "!=" false -}}
+ {{- with .Site.Params.home_paginate -}}
+ {{- $paginator = $.Paginate $paginator . -}}
+ {{- else -}}
+ {{- $paginator = $.Paginate $paginator -}}
+ {{- end -}}
+ {{- range $paginator.Pages -}}
+ {{- .Render "summary" -}}
+ {{- end -}}
- {{ partial "paginator.html" . -}}
+ {{- partial "paginator.html" . -}}
</div>
{{- else -}}
- {{ partial "home/profile.html" . -}}
- {{ end -}}
-{{ end }} \ No newline at end of file
+ {{- partial "home/profile.html" . -}}
+ {{- end -}}
+{{- end -}} \ No newline at end of file
diff --git a/layouts/partials/comments.html b/layouts/partials/comments.html
index a0543f0..1babef2 100644
--- a/layouts/partials/comments.html
+++ b/layouts/partials/comments.html
@@ -1,6 +1,6 @@
{{ if eq (getenv "HUGO_ENV") "production" | and .IsPage | and (ne .Params.comment false) -}}
<!-- Disqus Comment System-->
- {{- if .Site.DisqusShortname -}}
+ {{- if .Site.Params.disqus.shortname -}}
<div id="disqus_thread"></div>
<script type="text/javascript">
(function() {
@@ -10,7 +10,7 @@
return;
var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true;
- var disqus_shortname = "{{ .Site.DisqusShortname }}";
+ var disqus_shortname = "{{ .Site.Params.disqus.shortname }}";
dsq.src = "//" + disqus_shortname + ".disqus.com/embed.js";
(document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq);
})();
@@ -92,4 +92,4 @@
data-numposts="{{ .Site.Params.facebook.numPosts }}"
></div>
{{- end -}}
-{{- end }}
+{{- end }} \ No newline at end of file
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
index 7a392a8..1a6ceb0 100644
--- a/layouts/partials/head.html
+++ b/layouts/partials/head.html
@@ -40,17 +40,17 @@
{{ partial "seo.html" . -}}
-{{ $res := resources.Get "css/style.scss" | resources.ToCSS | resources.Minify -}}
+{{ $res := resources.Get "css/style.scss" | toCSS | minify -}}
<link rel="stylesheet" href="{{ $res.RelPermalink }}">
{{ if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.fontawesome_free_css -}}
{{ .Site.Params.cdn.fontawesome_free_css | safeHTML }}
{{ else -}}
- {{ $res := resources.Get "css/lib/fontawesome-free/all.min.css" | resources.Minify -}}
+ {{ $res = resources.Get "css/lib/fontawesome-free/all.min.css" | minify -}}
<link rel="stylesheet" href="{{ $res.RelPermalink }}">
{{ end }}
{{ if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.animate_css -}}
{{ .Site.Params.cdn.animate_css | safeHTML }}
{{ else -}}
- {{ $res := resources.Get "css/lib/animate/animate.min.css" | resources.Minify -}}
+ {{ $res = resources.Get "css/lib/animate/animate.min.css" | minify -}}
<link rel="stylesheet" href="{{ $res.RelPermalink }}">
-{{ end }}
+{{ end }} \ No newline at end of file
diff --git a/layouts/posts/single.html b/layouts/posts/single.html
index 8fbe768..2ca270d 100644
--- a/layouts/posts/single.html
+++ b/layouts/posts/single.html
@@ -7,7 +7,7 @@
{{ $author = .Site.Author.name }}
{{ end }}
- <article class="post-warp">
+ <article class="warpper">
<h1 class="post-title animated flipInX">{{ .Title }}</h1>
<div class="post-meta">
@@ -39,7 +39,8 @@
{{ with .Params.featured_image }}
<div class="post-featured-image">
- <img src=/images/loading.svg data-sizes=auto data-src={{ . }} alt="featured image" class="lazyload">
+ {{ $res := resources.Get "svg/loading.svg" | minify }}
+ <img src="{{ $res.RelPermalink }}" data-sizes="auto" data-src="{{ . }}" alt="featured image" class="lazyload">
</div>
{{ end }}
@@ -65,14 +66,8 @@
<div class="post-content">
{{ $content := .Content }}
- {{ $REin := `<img src="([^"]+)" alt="([^"]+)?" />` }}
- {{ $REout := "<figure><img src=/images/loading.svg data-sizes=auto data-src=$1 alt=$2 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }}
- {{ $content = replaceRE $REin $REout $content }}
- {{ $REin = `<img src="([^"]+)" alt="([^"]+)?" title="([^"]+)?" />` }}
- {{ $REout = "<figure><img src=/images/loading.svg data-src=$1 data-sizes=auto alt=$2 title=$3 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }}
- {{ $content = replaceRE $REin $REout $content }}
- {{ $REin = `:\(([\w- ]+?)\):` }}
- {{ $REout = `<i class="$1 fa-fw"></i>` }}
+ {{ $REin := `:\(([\w- ]+?)\):` }}
+ {{ $REout := `<i class="$1 fa-fw"></i>` }}
{{ $content = replaceRE $REin $REout $content }}
{{ $REin = `\[(.+?)\]\^\((.+?)\)` }}
{{ $REout = `<strong><ruby>$1<rt>$2</rt></ruby></strong>` }}
@@ -80,15 +75,12 @@
{{ $REin = `<sup>\[return\]</sup>` }}
{{ $REout = printf "<sup>[%s]</sup>" (T "return") }}
{{ $content = replaceRE $REin $REout $content }}
- {{ $REin = `<(h[123456]) (id=".+?")>` }}
+ {{ $REin = `<(h[23456]) (id=".+?")>` }}
{{ $REout = `<a class="post-dummy-target" $2></a><$1>` }}
{{ $content = replaceRE $REin $REout $content }}
- {{ $REin = `<(sup class="footnote-ref") (id="fnref:.+?")>` }}
+ {{ $REin = `<(.+) (id="fnref:.+?")>` }}
{{ $REout = `<a class="post-dummy-target" $2></a><$1>` }}
{{ $content = replaceRE $REin $REout $content }}
- {{ $REin = `<(li) (id="fn:.+?")>` }}
- {{ $REout = `<$1><a class="post-dummy-target" $2></a>` }}
- {{ $content = replaceRE $REin $REout $content }}
{{ $content | safeHTML }}
</div>
diff --git a/layouts/rss.xml b/layouts/rss.xml
index f352eac..7c5274d 100644
--- a/layouts/rss.xml
+++ b/layouts/rss.xml
@@ -1,34 +1,62 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
- <title>{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}</title>
- <link>{{ .Permalink }}</link>
- <description>Recent content {{ with .Title }}in {{ . }} {{ end }}on {{ .Site.Title }}</description>
+ <title>
+ {{- with .Title }}{{ . }} | {{ end }}{{ .Site.Title -}}
+ </title>
+ <link>
+ {{- .Permalink -}}
+ </link>
+ <description>
+ {{- with .Title }}{{ . }} | {{ end }}{{ .Site.Title -}}
+ </description>
<generator>Hugo -- gohugo.io</generator>
- {{ with .Site.LanguageCode }}
- <language>{{ . }}</language>
- {{ end }}
- {{ with .Site.Author.email }}
- <managingEditor>{{ . }}{{ with .Site.Author.name }} ({{ . }}){{ end }}</managingEditor>
- <webMaster>{{ . }}{{ with .Site.Author.name }} ({{ . }}){{ end }}</webMaster>
- {{ end }}
- {{ with .Site.Copyright }}
- <copyright>{{ . }}</copyright>
- {{ end }}
- {{ if not .Date.IsZero }}
- <lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>
- {{ end }}
+ {{- with .Site.LanguageCode -}}
+ <language>
+ {{- . -}}
+ </language>
+ {{- end -}}
+ {{- with .Site.Author.email -}}
+ <managingEditor>
+ {{- . }}{{ with .Site.Author.name }} ({{ . }}){{ end -}}
+ </managingEditor>
+ <webMaster>
+ {{- . }}{{ with .Site.Author.name }} ({{ . }}){{ end -}}
+ </webMaster>
+ {{- end -}}
+ {{- with .Site.Copyright -}}
+ <copyright>
+ {{- . -}}
+ </copyright>
+ {{- end -}}
+ {{- if not .Date.IsZero -}}
+ <lastBuildDate>
+ {{- .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML -}}
+ </lastBuildDate>
+ {{- end -}}
<atom:link href="{{.Permalink}}" rel="self" type="application/rss+xml" />
- {{ range first 15 (where .Data.Pages "Type" "!=" "home") }}
+ {{- range first 15 (where .Data.Pages "Type" "!=" "home") -}}
<item>
- <title>{{ .Title }}</title>
- <link>{{ .Permalink }}</link>
- <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
- {{ with .Site.Author.email }}
- <author>{{ . }}{{ with .Site.Author.name }} ({{ . }}){{ end }}</author>
- {{ end }}
- <guid>{{ .Permalink }}</guid>
- <description>{{ .Content | html }}</description>
+ <title>
+ {{- .Title -}}
+ </title>
+ <link>
+ {{- .Permalink -}}
+ </link>
+ <pubDate>
+ {{- .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML -}}
+ </pubDate>
+ {{- with .Site.Author.email -}}
+ <author>
+ {{- . }}{{ with .Site.Author.name }} ({{ . }}){{ end -}}
+ </author>
+ {{- end -}}
+ <guid>
+ {{- .Permalink -}}
+ </guid>
+ <description>
+ {{- .Content | html -}}
+ </description>
</item>
- {{ end }}
+ {{- end -}}
</channel>
-</rss>
+</rss> \ No newline at end of file
diff --git a/layouts/shortcodes/typeit.html b/layouts/shortcodes/typeit.html
index 110589f..ecd061b 100644
--- a/layouts/shortcodes/typeit.html
+++ b/layouts/shortcodes/typeit.html
@@ -20,7 +20,7 @@
<!-- fix "<br />" location error which is a bug of Typeit HTML parser -->
{{ $content = replaceRE `<br /></span>` "</span><br />" $content }}
<div id={{ printf "r%s" $id }} hidden=true>{{ $content | safeHTML }}</div>
- <div class="code" id={{ $id }}></div>
+ <div class="highlight" id={{ $id }}></div>
{{ else }}
{{ $tag := .Get "tag" | default "p" }}
{{ $content = $content | markdownify | chomp }}
diff --git a/layouts/sitemap.xml b/layouts/sitemap.xml
index 15bffee..62bb932 100644
--- a/layouts/sitemap.xml
+++ b/layouts/sitemap.xml
@@ -1,22 +1,41 @@
-<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
- {{ range (where .Data.Pages "Section" "!=" "gallery") }}
+<urlset
+ xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml"
+ >
+ {{- range (where .Data.Pages "Section" "!=" "gallery") -}}
<url>
- <loc>{{ .Permalink }}</loc>
- {{ if not .Lastmod.IsZero }}
- <lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>
- {{ end }}
- {{ with .Sitemap.ChangeFreq }}
- <changefreq>{{ . }}</changefreq>
- {{ end }}
- {{ if ge .Sitemap.Priority 0.0 }}
- <priority>{{ .Sitemap.Priority }}</priority>
- {{ end }}
- {{ if .IsTranslated }}
- {{ range .Translations }}
- <xhtml:link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}"/>
- {{ end }}
- <xhtml:link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}"/>
- {{ end }}
+ <loc>
+ {{- .Permalink -}}
+ </loc>
+ {{- if not .Lastmod.IsZero -}}
+ <lastmod>
+ {{- safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) -}}
+ </lastmod>
+ {{- end -}}
+ {{- with .Sitemap.ChangeFreq -}}
+ <changefreq>
+ {{- . -}}
+ </changefreq>
+ {{- end -}}
+ {{- if ge .Sitemap.Priority 0.0 -}}
+ <priority>
+ {{- .Sitemap.Priority -}}
+ </priority>
+ {{- end -}}
+ {{- if .IsTranslated -}}
+ {{- range .Translations -}}
+ <xhtml:link
+ rel="alternate"
+ hreflang="{{ .Lang }}"
+ href="{{ .Permalink }}"
+ />
+ {{- end -}}
+ <xhtml:link
+ rel="alternate"
+ hreflang="{{ .Lang }}"
+ href="{{ .Permalink }}"
+ />
+ {{- end -}}
</url>
- {{ end }}
-</urlset>
+ {{- end -}}
+</urlset> \ No newline at end of file
diff --git a/layouts/taxonomy/list.html b/layouts/taxonomy/list.html
index 412fc02..0bc9119 100644
--- a/layouts/taxonomy/list.html
+++ b/layouts/taxonomy/list.html
@@ -1,7 +1,7 @@
{{ define "title" }}{{ .Title }} | {{ T .Data.Singular | default (humanize .Data.Singular) }} | {{ .Site.Title }}{{ end }}
{{ define "content" }}
- <div class="post-warp archive">
+ <div class="warpper archive">
<h2 class="post-title animated pulse faster">
{{ $taxonomy := .Data.Singular }}
{{ if eq $taxonomy "category" }}
diff --git a/layouts/taxonomy/terms.html b/layouts/taxonomy/terms.html
index 82111bd..47b01af 100644
--- a/layouts/taxonomy/terms.html
+++ b/layouts/taxonomy/terms.html
@@ -5,7 +5,7 @@
{{ $terms := .Data.Terms.ByCount }}
{{ $type := .Type }}
- <div class="post-warp archive">
+ <div class="warpper archive">
<h2 class="post-title animated pulse faster">
{{ T "all" | humanize}}{{ T $taxonomies | default $taxonomies | humanize }}
</h2>
diff --git a/resources/_gen/assets/scss/css/style.scss_b95b077eb505d5c0aff8055eaced30ad.content b/resources/_gen/assets/scss/css/style.scss_b95b077eb505d5c0aff8055eaced30ad.content
index 1b561e1..a0e50b3 100644
--- a/resources/_gen/assets/scss/css/style.scss_b95b077eb505d5c0aff8055eaced30ad.content
+++ b/resources/_gen/assets/scss/css/style.scss_b95b077eb505d5c0aff8055eaced30ad.content
@@ -1 +1 @@
-/*!normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css*/@import "https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900";html{line-height:1.15;-webkit-text-size-adjust:100%}html,body,main,div,span,a,li,ul,hr,h1,h2,h3,h4,h5,h6{padding:0;margin:0}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:lato,-apple-system,BlinkMacSystemFont,helvetica neue,pingfang sc,hiragino sans gb,STHeiti,microsoft yahei,wenquanyi micro hei,Arial,Verdana,sans-serif}html::-webkit-scrollbar{width:8px;height:8px}html::-webkit-scrollbar-thumb{height:40px;background-color:#87878d;border-radius:16px}html::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background:rgba(0,149,255,.1)}body{font-size:16px;font-weight:400;line-height:26px;background-color:#fff;color:#161209}body:before{content:"";background-repeat:no-repeat;background-position:50%;opacity:.05;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);-ms-filter:grayscale(100%);-o-filter:grayscale(100%);filter:grayscale(100%);filter:gray}body.dark-theme{color:#a9a9b3;background-color:#292a2d}a{color:#161209;text-decoration:none;transition:color .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease}a:hover{color:#2d96bd}.dark-theme a{color:#a9a9b3}.dark-theme a:hover{color:#fff}.wrapper{display:flex;flex-direction:column;min-height:98vh;width:100%}.main{flex:1 0 auto}.container{padding-left:1rem;padding-right:1rem}.footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}.notfound{font-size:2rem;transform:translateY(35vh);text-align:center}.home-intro{transform:translateY(25vh);text-align:center}.home-intro .home-avatar{padding:.6rem}.home-intro .home-avatar img{width:8rem;height:auto;display:inline-block;-webkit-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 .3618em rgba(0,0,0,.05);box-shadow:0 0 0 .3618em rgba(0,0,0,.05);margin:0 auto;-webkit-transition:all ease .4s;-moz-transition:all ease .4s;-o-transition:all ease .4s;transition:all ease .4s;cursor:pointer}.home-intro .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-intro .home-description{font-size:1rem;font-weight:400;padding:.4rem}.home-intro .home-social-links{padding-top:.6rem}.home-intro .home-social-links i{font-size:1.4rem}.post-warp{position:relative;width:100%;max-width:960px;margin:0 auto;padding-top:6rem}.post-warp .post-title{margin:0!important;font-size:1.8rem;line-height:3rem}.post-warp .post-meta{font-size:.88rem;color:rgba(85,85,85,.52941)!important}.post-warp .post-meta span{display:inline-block}.dark-theme .post-warp .post-meta{color:#87878d!important}.post-warp .post-meta a{color:#2d96bd}.dark-theme .post-warp .post-meta a{color:#eee}.post-warp .post-meta a:hover{color:#ef3982}.dark-theme .post-warp .post-meta a:hover{color:#fff}.post-warp .post-meta .author{font-size:1.05rem}.post-warp .post-featured-image{padding-top:.6rem}.post-warp .post-featured-image img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.post-warp .post-toc{display:block;position:absolute;width:240px;max-width:300px;margin-left:980px;padding:.8rem;border-left:1px solid #dcdcdc;word-wrap:break-word;box-sizing:border-box;top:12rem}.post-warp .post-toc .post-toc-title{font-weight:400;text-transform:uppercase}.post-warp .post-toc .post-toc-content.always-active ul{display:block}.post-warp .post-toc .post-toc-content>nav>ul{margin:.625rem 0}.post-warp .post-toc .post-toc-content ul{padding-left:.625rem;list-style:none}.post-warp .post-toc .post-toc-content ul ul{padding-left:1.25rem;display:none}.post-warp .post-toc .post-toc-content ul .has-active>ul{display:block}.post-warp .post-toc .post-toc-content .toc-link.active{color:#2d96bd}.post-warp .post-toc-mobile{display:none;padding-top:.8rem}.post-warp .post-toc-mobile details summary .post-toc-title{display:block;display:flex;justify-content:space-between;font-size:1.2em;font-weight:700;line-height:2em;padding:0 .625rem;background:#f5f5f5}.post-warp .post-toc-mobile details summary .post-toc-title i.details{line-height:2em}.dark-theme .post-warp .post-toc-mobile details summary .post-toc-title{background:#272c34}.post-warp .post-toc-mobile details summary::-webkit-details-marker{display:none}.post-warp .post-toc-mobile details[open] i.details{transform:rotate(180deg)}.post-warp .post-toc-mobile .post-toc-content{border:2px solid #f5f5f5}.post-warp .post-toc-mobile .post-toc-content>nav>ul{margin:.625rem 0}.post-warp .post-toc-mobile .post-toc-content ul{padding-left:.625rem;list-style:none}.post-warp .post-toc-mobile .post-toc-content ul ul{padding-left:1.25rem}.dark-theme .post-warp .post-toc-mobile .post-toc-content{border:2px solid #272c34}.post-warp .post-content .post-dummy-target:target{display:inline-block;position:relative;top:-5.6rem;visibility:hidden}.post-warp .post-content h2,.post-warp .post-content h3,.post-warp .post-content h4,.post-warp .post-content h5,.post-warp .post-content h6{padding-top:.8rem;padding-bottom:.3rem}.post-warp .post-content h2::before{content:"#";margin-right:.3125rem;color:#2d96bd}.dark-theme .post-warp .post-content h2::before{color:#eee}.post-warp .post-content h3::before,.post-warp .post-content h4::before,.post-warp .post-content h5::before,.post-warp .post-content h6::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark-theme .post-warp .post-content h3::before,.dark-theme .post-warp .post-content h4::before,.dark-theme .post-warp .post-content h5::before,.dark-theme .post-warp .post-content h6::before{color:#eee}.post-warp .post-content p{font-size:1rem;margin:.5rem 0;text-align:justify}.post-warp .post-content a{color:#2d96bd}.dark-theme .post-warp .post-content a{color:#eee}.post-warp .post-content a:hover{color:#ef3982}.dark-theme .post-warp .post-content a:hover:hover{color:#fff;font-weight:700}.post-warp .post-content ul{padding-left:2rem}.post-warp .post-content ruby{background:#f5f5f5}.post-warp .post-content ruby rt{color:#a9a9b3}.dark-theme .post-warp .post-content ruby{background:#272c34}.dark-theme .post-warp .post-content ruby rt{color:#87878d}.post-warp .post-content .table-wrapper{overflow-x:auto}.post-warp .post-content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;box-shadow:2px 2px 3px rgba(0,0,0,.125);background:#fff}.dark-theme .post-warp .post-content .table-wrapper>table{background:#272c34}.post-warp .post-content .table-wrapper>table thead{background:#ededed}.dark-theme .post-warp .post-content .table-wrapper>table thead{background-color:#20252b}.post-warp .post-content .table-wrapper>table th,.post-warp .post-content .table-wrapper>table td{padding:.3rem 1rem;border:1px double #dcdcdc}.dark-theme .post-warp .post-content .table-wrapper>table th,.dark-theme .post-warp .post-content .table-wrapper>table td{border:1px double #4a4b50}.post-warp .post-content figure{text-align:center}.post-warp .post-content .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.625rem;margin:0 auto;border-bottom:1px solid #d9d9d9;font-size:.875rem;color:#969696;line-height:1.7}.post-warp .post-content img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.post-warp .post-content blockquote{font-size:1rem;display:block;border-width:1px 0;border-style:solid;border-color:#dcdcdc;padding:1.5em 1.2em .5em;margin:0 0 2em;position:relative}.post-warp .post-content blockquote:before{content:'\201C';position:absolute;top:0;left:50%;transform:translate(-50%,-50%);width:3rem;height:2rem;font:6em/1.08em pt sans,sans-serif;color:#2d96bd;text-align:center}.dark-theme .post-warp .post-content blockquote:before{color:#eee}.post-warp .post-content blockquote:after{content:"#blockquote" attr(cite);display:block;text-align:right;font-size:.875em;color:#2d96bd}.dark-theme .post-warp .post-content blockquote:after{color:#eee}.dark-theme .post-warp .post-content blockquote{border-color:#4a4b50}.post-warp .post-content code,.post-warp .post-content pre{padding:7px;font-size:13px;font-family:Consolas,Monaco,Menlo,dejavu sans mono,bitstream vera sans mono,courier new,monospace;background:#f5f5f5}.dark-theme .post-warp .post-content code,.dark-theme .post-warp .post-content pre{background:#272c34}.post-warp .post-content code{padding:3px 5px;border-radius:4px;color:#e74c3c;background:#f5f5f5}.dark-theme .post-warp .post-content code{color:#e5bf78;background:#272c34}.post-warp .post-content p>code{background:#ededed}.dark-theme .post-warp .post-content p>code{color:#e5bf78;background:#20252b}.post-warp .post-content .highlight>.chroma{margin:1em 0;border-radius:5px;overflow-x:auto;box-shadow:1px 1px 2px rgba(0,0,0,.125);position:relative;background:#f5f5f5}.post-warp .post-content .highlight>.chroma code{padding:0}.post-warp .post-content .highlight>.chroma table{position:relative}.post-warp .post-content .highlight>.chroma table::after{position:absolute;top:0;right:0;left:0;padding:2px 7px;font-size:13px;font-weight:700;color:#b1b0b0;background:#ededed;content:'Code'}.dark-theme .post-warp .post-content .highlight>.chroma table::after{background:#20252b}.post-warp .post-content .highlight>.chroma.language-bash table::after{content:"Bash"}.post-warp .post-content .highlight>.chroma.language-c table::after{content:"C"}.post-warp .post-content .highlight>.chroma.language-cs table::after{content:"C#"}.post-warp .post-content .highlight>.chroma.language-cpp table::after{content:"C++"}.post-warp .post-content .highlight>.chroma.language-css table::after{content:"CSS"}.post-warp .post-content .highlight>.chroma.language-coffeescript table::after{content:"CoffeeScript"}.post-warp .post-content .highlight>.chroma.language-html table::after{content:"HTML"}.post-warp .post-content .highlight>.chroma.language-xml table::after{content:"XML"}.post-warp .post-content .highlight>.chroma.language-http table::after{content:"HTTP"}.post-warp .post-content .highlight>.chroma.language-json table::after{content:"JSON"}.post-warp .post-content .highlight>.chroma.language-java table::after{content:"Java"}.post-warp .post-content .highlight>.chroma.language-js table::after{content:"JavaScript"}.post-warp .post-content .highlight>.chroma.language-javascript table::after{content:"JavaScript"}.post-warp .post-content .highlight>.chroma.language-makefile table::after{content:"Makefile"}.post-warp .post-content .highlight>.chroma.language-markdown table::after{content:"Markdown"}.post-warp .post-content .highlight>.chroma.language-objectivec table::after{content:"Objective-C"}.post-warp .post-content .highlight>.chroma.language-php table::after{content:"PHP"}.post-warp .post-content .highlight>.chroma.language-perl table::after{content:"Perl"}.post-warp .post-content .highlight>.chroma.language-python table::after{content:"Python"}.post-warp .post-content .highlight>.chroma.language-ruby table::after{content:"Ruby"}.post-warp .post-content .highlight>.chroma.language-sql table::after{content:"SQL"}.post-warp .post-content .highlight>.chroma.language-shell table::after{content:"Shell"}.post-warp .post-content .highlight>.chroma.language-erlang table::after{content:"Erlang"}.post-warp .post-content .highlight>.chroma.language-go table::after{content:"Go"}.post-warp .post-content .highlight>.chroma.language-go-html-template table::after{content:"Go HTML Template"}.post-warp .post-content .highlight>.chroma.language-groovy table::after{content:"Groovy"}.post-warp .post-content .highlight>.chroma.language-haskell table::after{content:"Haskell"}.post-warp .post-content .highlight>.chroma.language-kotlin table::after{content:"Kotlin"}.post-warp .post-content .highlight>.chroma.language-clojure table::after{content:"Clojure"}.post-warp .post-content .highlight>.chroma.language-less table::after{content:"Less"}.post-warp .post-content .highlight>.chroma.language-lisp table::after{content:"Lisp"}.post-warp .post-content .highlight>.chroma.language-lua table::after{content:"Lua"}.post-warp .post-content .highlight>.chroma.language-matlab table::after{content:"Matlab"}.post-warp .post-content .highlight>.chroma.language-rust table::after{content:"Rust"}.post-warp .post-content .highlight>.chroma.language-scss table::after{content:"Scss"}.post-warp .post-content .highlight>.chroma.language-scala table::after{content:"Scala"}.post-warp .post-content .highlight>.chroma.language-swift table::after{content:"Swift"}.post-warp .post-content .highlight>.chroma.language-typescript table::after{content:"TypeScript"}.post-warp .post-content .highlight>.chroma.language-yml table::after{content:"YAML"}.post-warp .post-content .highlight>.chroma.language-yaml table::after{content:"YAML"}.post-warp .post-content .highlight>.chroma.language-toml table::after{content:"TOML"}.post-warp .post-content .highlight>.chroma.language-diff table::after{content:"Diff"}.post-warp .post-content .highlight>.chroma .lntd{line-height:20px}.post-warp .post-content .highlight>.chroma .lntd:first-child{width:10px}.post-warp .post-content .highlight>.chroma .lntd:first-child pre{margin:0;padding:38px 7px 8px}.post-warp .post-content .highlight>.chroma .lntd:last-child{vertical-align:top}.post-warp .post-content .highlight>.chroma .lntd:last-child pre{margin:0;padding:38px 10px 8px}.post-warp .post-content .highlight>.chroma table,.post-warp .post-content .highlight>.chroma tr,.post-warp .post-content .highlight>.chroma td{margin:0;padding:0;width:100%;border-collapse:collapse;border-color:#f5f5f5}.dark-theme .post-warp .post-content .highlight>.chroma table,.dark-theme .post-warp .post-content .highlight>.chroma tr,.dark-theme .post-warp .post-content .highlight>.chroma td{border-color:#272c34}.post-warp .post-content .highlight>.chroma .lnt{color:#cacaca}.post-warp .post-content .highlight>.chroma .hl{display:block;width:100%;background-color:#e8e8e8}.dark-theme .post-warp .post-content .highlight>.chroma .hl{background-color:#1c2025}.post-warp .post-content .code{}.post-warp .post-content .code .p{color:#a9a9b3}.post-warp .post-content .code .k{color:#859900}.post-warp .post-content .code .kc{color:#859900;font-weight:700}.post-warp .post-content .code .kd{color:#859900}.post-warp .post-content .code .kn{color:#dc322f;font-weight:700}.post-warp .post-content .code .kp{color:#859900}.post-warp .post-content .code .kr{color:#859900}.post-warp .post-content .code .kt{color:#859900;font-weight:700}.post-warp .post-content .code .n{color:#268bd2}.post-warp .post-content .code .na{color:#268bd2}.post-warp .post-content .code .nb{color:#cb4b16}.post-warp .post-content .code .bp{color:#268bd2}.post-warp .post-content .code .nc{color:#cb4b16}.post-warp .post-content .code .no{color:#268bd2}.post-warp .post-content .code .nd{color:#268bd2}.post-warp .post-content .code .ni{color:#268bd2}.post-warp .post-content .code .ne{color:#268bd2}.post-warp .post-content .code .nf{color:#268bd2}.post-warp .post-content .code .fm{color:#268bd2}.post-warp .post-content .code .nl{color:#268bd2}.post-warp .post-content .code .nn{color:#268bd2}.post-warp .post-content .code .nx{color:#268bd2}.post-warp .post-content .code .py{color:#268bd2}.post-warp .post-content .code .nt{color:#268bd2;font-weight:700}.post-warp .post-content .code .nv{color:#268bd2}.post-warp .post-content .code .vc{color:#268bd2}.post-warp .post-content .code .vg{color:#268bd2}.post-warp .post-content .code .vi{color:#268bd2}.post-warp .post-content .code .vm{color:#268bd2}.post-warp .post-content .code .l{color:#2aa198}.post-warp .post-content .code .ld{color:#2aa198}.post-warp .post-content .code .s{color:#2aa198}.post-warp .post-content .code .sa{color:#2aa198}.post-warp .post-content .code .sb{color:#2aa198}.post-warp .post-content .code .sc{color:#2aa198}.post-warp .post-content .code .dl{color:#2aa198}.post-warp .post-content .code .sd{color:#2aa198}.post-warp .post-content .code .s2{color:#2aa198}.post-warp .post-content .code .se{color:#2aa198}.post-warp .post-content .code .sh{color:#2aa198}.post-warp .post-content .code .si{color:#2aa198}.post-warp .post-content .code .sx{color:#2aa198}.post-warp .post-content .code .sr{color:#2aa198}.post-warp .post-content .code .s1{color:#2aa198}.post-warp .post-content .code .ss{color:#2aa198}.post-warp .post-content .code .m{color:#2aa198;font-weight:700}.post-warp .post-content .code .mb{color:#2aa198;font-weight:700}.post-warp .post-content .code .mf{color:#2aa198;font-weight:700}.post-warp .post-content .code .mh{color:#2aa198;font-weight:700}.post-warp .post-content .code .mi{color:#2aa198;font-weight:700}.post-warp .post-content .code .il{color:#2aa198;font-weight:700}.post-warp .post-content .code .mo{color:#2aa198;font-weight:700}.post-warp .post-content .code .ow{color:#859900}.post-warp .post-content .code .c{color:#93a1a1;font-style:italic}.post-warp .post-content .code .ch{color:#93a1a1;font-style:italic}.post-warp .post-content .code .cm{color:#93a1a1;font-style:italic}.post-warp .post-content .code .c1{color:#93a1a1;font-style:italic}.post-warp .post-content .code .cs{color:#93a1a1;font-style:italic}.post-warp .post-content .code .cp{color:#93a1a1;font-style:italic}.post-warp .post-content .code .cpf{color:#93a1a1;font-style:italic}.post-warp .post-content .code .g{color:#d33682}.post-warp .post-content .code .gd{color:#b58900}.post-warp .post-content .code .ge{color:#d33682}.post-warp .post-content .code .gr{color:#d33682}.post-warp .post-content .code .gh{color:#d33682}.post-warp .post-content .code .gi{color:#859900}.post-warp .post-content .code .go{color:#d33682}.post-warp .post-content .code .gp{color:#d33682}.post-warp .post-content .code .gs{color:#d33682}.post-warp .post-content .code .gu{color:#d33682}.post-warp .post-content .code .gt{color:#d33682}.dark-theme .post-warp .post-content .code{background:#272c34}.dark-theme .post-warp .post-content .code .p{color:#a9a9b3}.dark-theme .post-warp .post-content .code .k{color:#d371e3}.dark-theme .post-warp .post-content .code .kc{color:#d371e3}.dark-theme .post-warp .post-content .code .kd{color:#d371e3}.dark-theme .post-warp .post-content .code .kn{color:#d371e3}.dark-theme .post-warp .post-content .code .kp{color:#d371e3}.dark-theme .post-warp .post-content .code .kr{color:#d371e3}.dark-theme .post-warp .post-content .code .kt{color:#8be9fd}.dark-theme .post-warp .post-content .code .na{color:#41b1f5}.dark-theme .post-warp .post-content .code .nb{color:#8be9fd;font-style:italic}.dark-theme .post-warp .post-content .code .nc{color:#e5bf78}.dark-theme .post-warp .post-content .code .nf{color:#19b8c0}.dark-theme .post-warp .post-content .code .nx{color:#f16473}.dark-theme .post-warp .post-content .code .nl{color:#8be9fd;font-style:italic}.dark-theme .post-warp .post-content .code .nt{color:#d371e3}.dark-theme .post-warp .post-content .code .nv{color:#8be9fd;font-style:italic}.dark-theme .post-warp .post-content .code .vc{color:#8be9fd;font-style:italic}.dark-theme .post-warp .post-content .code .vg{color:#8be9fd;font-style:italic}.dark-theme .post-warp .post-content .code .vi{color:#8be9fd;font-style:italic}.dark-theme .post-warp .post-content .code .s{color:#8bc56f}.dark-theme .post-warp .post-content .code .sa{color:#8bc56f}.dark-theme .post-warp .post-content .code .sb{color:#8bc56f}.dark-theme .post-warp .post-content .code .sc{color:#8bc56f}.dark-theme .post-warp .post-content .code .dl{color:#8bc56f}.dark-theme .post-warp .post-content .code .sd{color:#8bc56f}.dark-theme .post-warp .post-content .code .s2{color:#8bc56f}.dark-theme .post-warp .post-content .code .se{color:#8bc56f}.dark-theme .post-warp .post-content .code .sh{color:#8bc56f}.dark-theme .post-warp .post-content .code .si{color:#8bc56f}.dark-theme .post-warp .post-content .code .sx{color:#8bc56f}.dark-theme .post-warp .post-content .code .sr{color:#8bc56f}.dark-theme .post-warp .post-content .code .s1{color:#8bc56f}.dark-theme .post-warp .post-content .code .ss{color:#8bc56f}.dark-theme .post-warp .post-content .code .m{color:#bd93f9}.dark-theme .post-warp .post-content .code .mb{color:#bd93f9}.dark-theme .post-warp .post-content .code .mf{color:#bd93f9}.dark-theme .post-warp .post-content .code .mh{color:#bd93f9}.dark-theme .post-warp .post-content .code .mi{color:#bd93f9}.dark-theme .post-warp .post-content .code .il{color:#bd93f9}.dark-theme .post-warp .post-content .code .mo{color:#bd93f9}.dark-theme .post-warp .post-content .code .o{color:#d371e3}.dark-theme .post-warp .post-content .code .ow{color:#d371e3}.dark-theme .post-warp .post-content .code .c{color:#7e848f}.dark-theme .post-warp .post-content .code .ch{color:#7e848f}.dark-theme .post-warp .post-content .code .cm{color:#7e848f}.dark-theme .post-warp .post-content .code .c1{color:#7e848f}.dark-theme .post-warp .post-content .code .cs{color:#7e848f}.dark-theme .post-warp .post-content .code .cp{color:#d371e3}.dark-theme .post-warp .post-content .code .cpf{color:#d371e3}.dark-theme .post-warp .post-content .code .gd{color:#8b080b}.dark-theme .post-warp .post-content .code .ge{text-decoration:underline}.dark-theme .post-warp .post-content .code .gh{font-weight:700}.dark-theme .post-warp .post-content .code .gi{font-weight:700}.dark-theme .post-warp .post-content .code .go{color:#44475a}.dark-theme .post-warp .post-content .code .gu{font-weight:700}.dark-theme .post-warp .post-content .code .gl{text-decoration:underline}.post-warp .post-content .admonition{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);position:relative;margin:.9765em 0;padding:0 .75rem;border-left:.25rem solid #448aff;border-radius:.125rem;overflow:auto}.post-warp .post-content .admonition .admonition-title{margin:0 -.75rem;padding:.5rem .75rem .5rem 2.5rem;border-bottom:.1rem solid rgba(68,138,255,.1);background-color:rgba(68,138,255,.1);font-weight:700}.post-warp .post-content .admonition i.icon{font-size:16px;cursor:auto;position:absolute;left:.75rem;top:.75rem}.post-warp .post-content .admonition.note{border-left-color:#448aff}.post-warp .post-content .admonition.note i.icon{color:#448aff}.post-warp .post-content .admonition.abstract{border-left-color:#00b0ff}.post-warp .post-content .admonition.abstract .admonition-title{background-color:rgba(0,176,255,.1)}.post-warp .post-content .admonition.abstract i.icon{color:#00b0ff}.post-warp .post-content .admonition.info{border-left-color:#00b8d4}.post-warp .post-content .admonition.info .admonition-title{background-color:rgba(0,184,212,.1)}.post-warp .post-content .admonition.info i.icon{color:#00b8d4}.post-warp .post-content .admonition.tip{border-left-color:#00bfa5}.post-warp .post-content .admonition.tip .admonition-title{background-color:rgba(0,191,165,.1)}.post-warp .post-content .admonition.tip i.icon{color:#00bfa5}.post-warp .post-content .admonition.success{border-left-color:#00c853}.post-warp .post-content .admonition.success .admonition-title{background-color:rgba(0,200,83,.1)}.post-warp .post-content .admonition.success i.icon{color:#00c853}.post-warp .post-content .admonition.question{border-left-color:#64dd17}.post-warp .post-content .admonition.question .admonition-title{background-color:rgba(100,221,23,.1)}.post-warp .post-content .admonition.question i.icon{color:#64dd17}.post-warp .post-content .admonition.warning{border-left-color:#ff9100}.post-warp .post-content .admonition.warning .admonition-title{background-color:rgba(255,145,0,.1)}.post-warp .post-content .admonition.warning i.icon{color:#ff9100}.post-warp .post-content .admonition.failure{border-left-color:#ff5252}.post-warp .post-content .admonition.failure .admonition-title{background-color:rgba(255,82,82,.1)}.post-warp .post-content .admonition.failure i.icon{color:#ff5252}.post-warp .post-content .admonition.danger{border-left-color:#ff1744}.post-warp .post-content .admonition.danger .admonition-title{background-color:rgba(255,23,68,.1)}.post-warp .post-content .admonition.danger i.icon{color:#ff1744}.post-warp .post-content .admonition.bug{border-left-color:#f50057}.post-warp .post-content .admonition.bug .admonition-title{background-color:rgba(245,0,87,.1)}.post-warp .post-content .admonition.bug i.icon{color:#f50057}.post-warp .post-content .admonition.example{border-left-color:#651fff}.post-warp .post-content .admonition.example .admonition-title{background-color:rgba(101,31,255,.1)}.post-warp .post-content .admonition.example i.icon{color:#651fff}.post-warp .post-content .admonition.quote{border-left-color:#9e9e9e}.post-warp .post-content .admonition.quote .admonition-title{background-color:rgba(158,158,158,.1)}.post-warp .post-content .admonition.quote i.icon{color:#9e9e9e}.post-warp .post-content .admonition:last-child{margin-bottom:.75rem}.post-warp .post-content details.admonition summary{display:block;outline:none;cursor:pointer}.post-warp .post-content details.admonition summary::-webkit-details-marker{display:none}.post-warp .post-content details.admonition summary i.details{position:absolute;top:.75rem;right:.75rem;color:#161209}.dark-theme .post-warp .post-content details.admonition summary i.details{color:#a9a9b3}.post-warp .post-content details.admonition[open] i.details{transform:rotate(180deg)}.post-warp .post-content .mermaid{width:100%;margin:3% auto;text-align:center}.post-warp .post-content .mermaid .label{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);color:#333}.post-warp .post-content .mermaid .label text{fill:#333}.post-warp .post-content .mermaid .node rect,.post-warp .post-content .mermaid .node circle,.post-warp .post-content .mermaid .node ellipse,.post-warp .post-content .mermaid .node polygon{fill:#eee;stroke:#999;stroke-width:1px}.post-warp .post-content .mermaid .node .label{text-align:center}.post-warp .post-content .mermaid .node.clickable{cursor:pointer}.post-warp .post-content .mermaid .arrowheadPath{fill:#333}.post-warp .post-content .mermaid .edgePath .path{stroke:#666;stroke-width:1.5px}.post-warp .post-content .mermaid .edgeLabel{background-color:#fff;text-align:center}.post-warp .post-content .mermaid .cluster rect{fill:#eaf2fb;stroke:#26a;stroke-width:1px}.post-warp .post-content .mermaid .cluster text{fill:#333}.post-warp .post-content .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.post-warp .post-content .mermaid .actor{stroke:#999;fill:#eee}.post-warp .post-content .mermaid text.actor{fill:#333;stroke:none}.post-warp .post-content .mermaid .actor-line{stroke:#666}.post-warp .post-content .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.post-warp .post-content .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.post-warp .post-content .mermaid #arrowhead{fill:#333}.post-warp .post-content .mermaid .sequenceNumber{fill:#fff}.post-warp .post-content .mermaid #sequencenumber{fill:#333}.post-warp .post-content .mermaid #crosshead path{fill:#333!important;stroke:#333!important}.post-warp .post-content .mermaid .messageText{fill:#333;stroke:none}.post-warp .post-content .mermaid .labelBox{stroke:#999;fill:#eee}.post-warp .post-content .mermaid .labelText{fill:#333;stroke:none}.post-warp .post-content .mermaid .loopText{fill:#333;stroke:none}.post-warp .post-content .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.post-warp .post-content .mermaid .note{stroke:#770;fill:#ffa}.post-warp .post-content .mermaid .noteText{fill:#000;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:14px}.post-warp .post-content .mermaid .activation0{fill:#f4f4f4;stroke:#666}.post-warp .post-content .mermaid .activation1{fill:#f4f4f4;stroke:#666}.post-warp .post-content .mermaid .activation2{fill:#f4f4f4;stroke:#666}.post-warp .post-content .mermaid .mermaid-main-font{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .section{stroke:none;opacity:.2}.post-warp .post-content .mermaid .section0{fill:#80b3e6}.post-warp .post-content .mermaid .section2{fill:#80b3e6}.post-warp .post-content .mermaid .section1,.post-warp .post-content .mermaid .section3{fill:#fff;opacity:.2}.post-warp .post-content .mermaid .sectionTitle0{fill:#333}.post-warp .post-content .mermaid .sectionTitle1{fill:#333}.post-warp .post-content .mermaid .sectionTitle2{fill:#333}.post-warp .post-content .mermaid .sectionTitle3{fill:#333}.post-warp .post-content .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .grid .tick{stroke:#e6e5e5;opacity:.3;shape-rendering:crispEdges}.post-warp .post-content .mermaid .grid .tick text{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .grid path{stroke-width:0}.post-warp .post-content .mermaid .today{fill:none;stroke:#d42;stroke-width:2px}.post-warp .post-content .mermaid .task{stroke-width:2}.post-warp .post-content .mermaid .taskText{text-anchor:middle;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .taskText:not([font-size]){font-size:11px}.post-warp .post-content .mermaid .taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.post-warp .post-content .mermaid .task.clickable{cursor:pointer}.post-warp .post-content .mermaid .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.post-warp .post-content .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.post-warp .post-content .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.post-warp .post-content .mermaid .taskText0,.post-warp .post-content .mermaid .taskText1,.post-warp .post-content .mermaid .taskText2,.post-warp .post-content .mermaid .taskText3{fill:#fff}.post-warp .post-content .mermaid .task0,.post-warp .post-content .mermaid .task1,.post-warp .post-content .mermaid .task2,.post-warp .post-content .mermaid .task3{fill:#26a;stroke:#1a4d80}.post-warp .post-content .mermaid .taskTextOutside0,.post-warp .post-content .mermaid .taskTextOutside2{fill:#333}.post-warp .post-content .mermaid .taskTextOutside1,.post-warp .post-content .mermaid .taskTextOutside3{fill:#333}.post-warp .post-content .mermaid .active0,.post-warp .post-content .mermaid .active1,.post-warp .post-content .mermaid .active2,.post-warp .post-content .mermaid .active3{fill:#eee;stroke:#1a4d80}.post-warp .post-content .mermaid .activeText0,.post-warp .post-content .mermaid .activeText1,.post-warp .post-content .mermaid .activeText2,.post-warp .post-content .mermaid .activeText3{fill:#333!important}.post-warp .post-content .mermaid .done0,.post-warp .post-content .mermaid .done1,.post-warp .post-content .mermaid .done2,.post-warp .post-content .mermaid .done3{stroke:#666;fill:#bbb;stroke-width:2}.post-warp .post-content .mermaid .doneText0,.post-warp .post-content .mermaid .doneText1,.post-warp .post-content .mermaid .doneText2,.post-warp .post-content .mermaid .doneText3{fill:#333!important}.post-warp .post-content .mermaid .crit0,.post-warp .post-content .mermaid .crit1,.post-warp .post-content .mermaid .crit2,.post-warp .post-content .mermaid .crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.post-warp .post-content .mermaid .activeCrit0,.post-warp .post-content .mermaid .activeCrit1,.post-warp .post-content .mermaid .activeCrit2,.post-warp .post-content .mermaid .activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.post-warp .post-content .mermaid .doneCrit0,.post-warp .post-content .mermaid .doneCrit1,.post-warp .post-content .mermaid .doneCrit2,.post-warp .post-content .mermaid .doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.post-warp .post-content .mermaid .milestone{transform:rotate(45deg)scale(0.8,0.8)}.post-warp .post-content .mermaid .milestoneText{font-style:italic}.post-warp .post-content .mermaid .doneCritText0,.post-warp .post-content .mermaid .doneCritText1,.post-warp .post-content .mermaid .doneCritText2,.post-warp .post-content .mermaid .doneCritText3{fill:#333!important}.post-warp .post-content .mermaid .activeCritText0,.post-warp .post-content .mermaid .activeCritText1,.post-warp .post-content .mermaid .activeCritText2,.post-warp .post-content .mermaid .activeCritText3{fill:#333!important}.post-warp .post-content .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid g.classGroup text{fill:#999;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:10px}.post-warp .post-content .mermaid g.classGroup text .title{font-weight:bolder}.post-warp .post-content .mermaid g.classGroup rect{fill:#eee;stroke:#999}.post-warp .post-content .mermaid g.classGroup line{stroke:#999;stroke-width:1}.post-warp .post-content .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:.5}.post-warp .post-content .mermaid .classLabel .label{fill:#999;font-size:10px}.post-warp .post-content .mermaid .relation{stroke:#999;stroke-width:1;fill:none}.post-warp .post-content .mermaid #compositionStart{fill:#999;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #compositionEnd{fill:#999;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #aggregationStart{fill:#eee;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #dependencyStart{fill:#999;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #dependencyEnd{fill:#999;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #extensionStart{fill:#999;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid #extensionEnd{fill:#999;stroke:#999;stroke-width:1}.post-warp .post-content .mermaid .commit-id,.post-warp .post-content .mermaid .commit-msg,.post-warp .post-content .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#333;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid .slice{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px}.post-warp .post-content .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.post-warp .post-content .mermaid g.stateGroup rect{fill:#eee;stroke:#999}.post-warp .post-content .mermaid g.stateGroup line{stroke:#999;stroke-width:1}.post-warp .post-content .mermaid .transition{stroke:#999;stroke-width:1;fill:none}.post-warp .post-content .mermaid .stateGroup .composit{fill:#fff;border-bottom:1px}.post-warp .post-content .mermaid .state-note{stroke:#770;fill:#ffa}.post-warp .post-content .mermaid .state-note text{fill:#000;stroke:none;font-size:10px}.post-warp .post-content .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:.5}.post-warp .post-content .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:700;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.post-warp .post-content .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .post-warp .post-content .mermaid{}.dark-theme .post-warp .post-content .mermaid .label{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);color:#333}.dark-theme .post-warp .post-content .mermaid .label text{fill:#333}.dark-theme .post-warp .post-content .mermaid .node rect,.dark-theme .post-warp .post-content .mermaid .node circle,.dark-theme .post-warp .post-content .mermaid .node ellipse,.dark-theme .post-warp .post-content .mermaid .node polygon{fill:#bdd5ea;stroke:purple;stroke-width:1px}.dark-theme .post-warp .post-content .mermaid .node .label{text-align:center}.dark-theme .post-warp .post-content .mermaid .node.clickable{cursor:pointer}.dark-theme .post-warp .post-content .mermaid .arrowheadPath{fill:lightgrey}.dark-theme .post-warp .post-content .mermaid .edgePath .path{stroke:lightgrey;stroke-width:1.5px}.dark-theme .post-warp .post-content .mermaid .edgeLabel{background-color:#e8e8e8;text-align:center}.dark-theme .post-warp .post-content .mermaid .cluster rect{fill:#6d6d65;stroke:rgba(255,255,255,.25);stroke-width:1px}.dark-theme .post-warp .post-content .mermaid .cluster text{fill:#f9fffe}.dark-theme .post-warp .post-content .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:12px;background:#6d6d65;border:1px solid rgba(255,255,255,.25);border-radius:2px;pointer-events:none;z-index:100}.dark-theme .post-warp .post-content .mermaid .actor{stroke:#81b1db;fill:#bdd5ea}.dark-theme .post-warp .post-content .mermaid text.actor{fill:#000;stroke:none}.dark-theme .post-warp .post-content .mermaid .actor-line{stroke:lightgrey}.dark-theme .post-warp .post-content .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:lightgrey}.dark-theme .post-warp .post-content .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:lightgrey}.dark-theme .post-warp .post-content .mermaid #arrowhead{fill:lightgrey}.dark-theme .post-warp .post-content .mermaid .sequenceNumber{fill:#fff}.dark-theme .post-warp .post-content .mermaid #sequencenumber{fill:lightgrey}.dark-theme .post-warp .post-content .mermaid #crosshead path{fill:lightgrey!important;stroke:lightgrey!important}.dark-theme .post-warp .post-content .mermaid .messageText{fill:lightgrey;stroke:none}.dark-theme .post-warp .post-content .mermaid .labelBox{stroke:#81b1db;fill:#bdd5ea}.dark-theme .post-warp .post-content .mermaid .labelText{fill:#323d47;stroke:none}.dark-theme .post-warp .post-content .mermaid .loopText{fill:lightgrey;stroke:none}.dark-theme .post-warp .post-content .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81b1db}.dark-theme .post-warp .post-content .mermaid .note{stroke:rgba(255,255,255,.25);fill:#fff5ad}.dark-theme .post-warp .post-content .mermaid .noteText{fill:#000;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:14px}.dark-theme .post-warp .post-content .mermaid .activation0{fill:#f4f4f4;stroke:#666}.dark-theme .post-warp .post-content .mermaid .activation1{fill:#f4f4f4;stroke:#666}.dark-theme .post-warp .post-content .mermaid .activation2{fill:#f4f4f4;stroke:#666}.dark-theme .post-warp .post-content .mermaid .mermaid-main-font{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .section{stroke:none;opacity:.2}.dark-theme .post-warp .post-content .mermaid .section0{fill:rgba(255,255,255,.3)}.dark-theme .post-warp .post-content .mermaid .section2{fill:#eae8b9}.dark-theme .post-warp .post-content .mermaid .section1,.dark-theme .post-warp .post-content .mermaid .section3{fill:#fff;opacity:.2}.dark-theme .post-warp .post-content .mermaid .sectionTitle0{fill:#f9fffe}.dark-theme .post-warp .post-content .mermaid .sectionTitle1{fill:#f9fffe}.dark-theme .post-warp .post-content .mermaid .sectionTitle2{fill:#f9fffe}.dark-theme .post-warp .post-content .mermaid .sectionTitle3{fill:#f9fffe}.dark-theme .post-warp .post-content .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .grid .tick{stroke:lightgrey;opacity:.3;shape-rendering:crispEdges}.dark-theme .post-warp .post-content .mermaid .grid .tick text{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .grid path{stroke-width:0}.dark-theme .post-warp .post-content .mermaid .today{fill:none;stroke:#db5757;stroke-width:2px}.dark-theme .post-warp .post-content .mermaid .task{stroke-width:2}.dark-theme .post-warp .post-content .mermaid .taskText{text-anchor:middle;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .taskText:not([font-size]){font-size:11px}.dark-theme .post-warp .post-content .mermaid .taskTextOutsideRight{fill:#323d47;text-anchor:start;font-size:11px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .taskTextOutsideLeft{fill:#323d47;text-anchor:end;font-size:11px}.dark-theme .post-warp .post-content .mermaid .task.clickable{cursor:pointer}.dark-theme .post-warp .post-content .mermaid .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.dark-theme .post-warp .post-content .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.dark-theme .post-warp .post-content .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.dark-theme .post-warp .post-content .mermaid .taskText0,.dark-theme .post-warp .post-content .mermaid .taskText1,.dark-theme .post-warp .post-content .mermaid .taskText2,.dark-theme .post-warp .post-content .mermaid .taskText3{fill:#323d47}.dark-theme .post-warp .post-content .mermaid .task0,.dark-theme .post-warp .post-content .mermaid .task1,.dark-theme .post-warp .post-content .mermaid .task2,.dark-theme .post-warp .post-content .mermaid .task3{fill:#bdd5ea;stroke:rgba(255,255,255,.5)}.dark-theme .post-warp .post-content .mermaid .taskTextOutside0,.dark-theme .post-warp .post-content .mermaid .taskTextOutside2{fill:lightgrey}.dark-theme .post-warp .post-content .mermaid .taskTextOutside1,.dark-theme .post-warp .post-content .mermaid .taskTextOutside3{fill:lightgrey}.dark-theme .post-warp .post-content .mermaid .active0,.dark-theme .post-warp .post-content .mermaid .active1,.dark-theme .post-warp .post-content .mermaid .active2,.dark-theme .post-warp .post-content .mermaid .active3{fill:#81b1db;stroke:rgba(255,255,255,.5)}.dark-theme .post-warp .post-content .mermaid .activeText0,.dark-theme .post-warp .post-content .mermaid .activeText1,.dark-theme .post-warp .post-content .mermaid .activeText2,.dark-theme .post-warp .post-content .mermaid .activeText3{fill:#323d47!important}.dark-theme .post-warp .post-content .mermaid .done0,.dark-theme .post-warp .post-content .mermaid .done1,.dark-theme .post-warp .post-content .mermaid .done2,.dark-theme .post-warp .post-content .mermaid .done3{stroke:grey;fill:lightgrey;stroke-width:2}.dark-theme .post-warp .post-content .mermaid .doneText0,.dark-theme .post-warp .post-content .mermaid .doneText1,.dark-theme .post-warp .post-content .mermaid .doneText2,.dark-theme .post-warp .post-content .mermaid .doneText3{fill:#323d47!important}.dark-theme .post-warp .post-content .mermaid .crit0,.dark-theme .post-warp .post-content .mermaid .crit1,.dark-theme .post-warp .post-content .mermaid .crit2,.dark-theme .post-warp .post-content .mermaid .crit3{stroke:#e83737;fill:#e83737;stroke-width:2}.dark-theme .post-warp .post-content .mermaid .activeCrit0,.dark-theme .post-warp .post-content .mermaid .activeCrit1,.dark-theme .post-warp .post-content .mermaid .activeCrit2,.dark-theme .post-warp .post-content .mermaid .activeCrit3{stroke:#e83737;fill:#81b1db;stroke-width:2}.dark-theme .post-warp .post-content .mermaid .doneCrit0,.dark-theme .post-warp .post-content .mermaid .doneCrit1,.dark-theme .post-warp .post-content .mermaid .doneCrit2,.dark-theme .post-warp .post-content .mermaid .doneCrit3{stroke:#e83737;fill:lightgrey;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.dark-theme .post-warp .post-content .mermaid .milestone{transform:rotate(45deg)scale(0.8,0.8)}.dark-theme .post-warp .post-content .mermaid .milestoneText{font-style:italic}.dark-theme .post-warp .post-content .mermaid .doneCritText0,.dark-theme .post-warp .post-content .mermaid .doneCritText1,.dark-theme .post-warp .post-content .mermaid .doneCritText2,.dark-theme .post-warp .post-content .mermaid .doneCritText3{fill:#323d47!important}.dark-theme .post-warp .post-content .mermaid .activeCritText0,.dark-theme .post-warp .post-content .mermaid .activeCritText1,.dark-theme .post-warp .post-content .mermaid .activeCritText2,.dark-theme .post-warp .post-content .mermaid .activeCritText3{fill:#323d47!important}.dark-theme .post-warp .post-content .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#323d47;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid g.classGroup text{fill:purple;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:10px}.dark-theme .post-warp .post-content .mermaid g.classGroup text .title{font-weight:bolder}.dark-theme .post-warp .post-content .mermaid g.classGroup rect{fill:#bdd5ea;stroke:purple}.dark-theme .post-warp .post-content .mermaid g.classGroup line{stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#bdd5ea;opacity:.5}.dark-theme .post-warp .post-content .mermaid .classLabel .label{fill:purple;font-size:10px}.dark-theme .post-warp .post-content .mermaid .relation{stroke:purple;stroke-width:1;fill:none}.dark-theme .post-warp .post-content .mermaid #compositionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #compositionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #aggregationStart{fill:#bdd5ea;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #aggregationEnd{fill:#bdd5ea;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #dependencyStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #dependencyEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #extensionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid #extensionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid .commit-id,.dark-theme .post-warp .post-content .mermaid .commit-msg,.dark-theme .post-warp .post-content .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#323d47;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid .slice{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px}.dark-theme .post-warp .post-content .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.dark-theme .post-warp .post-content .mermaid g.stateGroup rect{fill:#bdd5ea;stroke:purple}.dark-theme .post-warp .post-content .mermaid g.stateGroup line{stroke:purple;stroke-width:1}.dark-theme .post-warp .post-content .mermaid .transition{stroke:purple;stroke-width:1;fill:none}.dark-theme .post-warp .post-content .mermaid .stateGroup .composit{fill:#fff;border-bottom:1px}.dark-theme .post-warp .post-content .mermaid .state-note{stroke:rgba(255,255,255,.25);fill:#fff5ad}.dark-theme .post-warp .post-content .mermaid .state-note text{fill:#000;stroke:none;font-size:10px}.dark-theme .post-warp .post-content .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#bdd5ea;opacity:.5}.dark-theme .post-warp .post-content .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:700;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .post-warp .post-content .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .post-warp .post-content .aplayer{background:#212121}.dark-theme .post-warp .post-content .aplayer.aplayer-withlist .aplayer-info{border-bottom-color:#5c5c5c}.dark-theme .post-warp .post-content .aplayer.aplayer-fixed .aplayer-list{border-color:#5c5c5c}.dark-theme .post-warp .post-content .aplayer .aplayer-body{background-color:#212121}.dark-theme .post-warp .post-content .aplayer .aplayer-info{border-top-color:#212121}.dark-theme .post-warp .post-content .aplayer .aplayer-info .aplayer-music .aplayer-title{color:#fff}.dark-theme .post-warp .post-content .aplayer .aplayer-info .aplayer-music .aplayer-author{color:#fff}.dark-theme .post-warp .post-content .aplayer .aplayer-info .aplayer-controller .aplayer-time{color:#eee}.dark-theme .post-warp .post-content .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#eee}.dark-theme .post-warp .post-content .aplayer .aplayer-list{background-color:#212121}.dark-theme .post-warp .post-content .aplayer .aplayer-list::-webkit-scrollbar-thumb{background-color:#999}.dark-theme .post-warp .post-content .aplayer .aplayer-list::-webkit-scrollbar-thumb:hover{background-color:#bbb}.dark-theme .post-warp .post-content .aplayer .aplayer-list li{color:#fff;border-top-color:#666}.dark-theme .post-warp .post-content .aplayer .aplayer-list li:hover{background:#4e4e4e}.dark-theme .post-warp .post-content .aplayer .aplayer-list li.aplayer-list-light{background:#6c6c6c}.dark-theme .post-warp .post-content .aplayer .aplayer-list li .aplayer-list-index{color:#ddd}.dark-theme .post-warp .post-content .aplayer .aplayer-list li .aplayer-list-author{color:#ddd}.dark-theme .post-warp .post-content .aplayer .aplayer-lrc{text-shadow:-1px -1px 0 #666}.dark-theme .post-warp .post-content .aplayer .aplayer-lrc:before{background:-moz-linear-gradient(top,#212121 0%,rgba(255,255,255,0) 100%);background:-webkit-linear-gradient(top,#212121 0%,rgba(255,255,255,0) 100%);background:linear-gradient(to bottom,#212121 0%,rgba(255,255,255,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121',endColorstr='#00212121',GradientType=0 )}.dark-theme .post-warp .post-content .aplayer .aplayer-lrc:after{background:-moz-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(33,33,33,0.8) 100%);background:-webkit-linear-gradient(top,rgba(255,255,255,0) 0%,rgba(33,33,33,0.8) 100%);background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(33,33,33,0.8) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121',endColorstr='#cc212121',GradientType=0 )}.dark-theme .post-warp .post-content .aplayer .aplayer-lrc p{color:#fff}.dark-theme .post-warp .post-content .aplayer .aplayer-miniswitcher{background:#484848}.dark-theme .post-warp .post-content .aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#eee}.post-warp .post-content .echarts{width:100%;height:30rem;margin:3% auto;text-align:center}.post-warp .post-content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.post-warp .post-content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.post-warp .post-content hr{margin:1rem 0;position:relative;border-top:1px dashed #dcdcdc;border-bottom:none}.dark-theme .post-warp .post-content hr{border-top:1px dashed #4a4b50}.post-warp .post-content kbd{display:inline-block;padding:.25em;background-color:#fff;border:1px solid #dcdcdc;border-bottom-color:#dcdcdc;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #dcdcdc;box-shadow:inset 0 -1px 0 #dcdcdc;font-size:.8em;line-height:1.25rem;font-family:Consolas,Monaco,Menlo,dejavu sans mono,bitstream vera sans mono,courier new,monospace;color:#e74c3c}.dark-theme .post-warp .post-content kbd{background-color:#292a2d;border:1px solid #4a4b50;border-bottom-color:#4a4b50;-webkit-box-shadow:inset 0 -1px 0 #4a4b50;box-shadow:inset 0 -1px 0 #4a4b50;color:#e5bf78}.post-warp .post-content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Consolas,Monaco,Menlo,Consolas,monospace;font-weight:700;word-break:break-all}.post-warp .post-content .typeit .code .k{color:#d371e3}.post-warp .post-content .typeit .code .kt{color:#d371e3}.post-warp .post-content .typeit .code .kc{color:#d371e3}.post-warp .post-content .typeit .code .o{color:#d371e3}.post-warp .post-content .typeit .code .nf{color:#f16473}.post-warp .post-content .typeit .code .na{color:#41b1f5}.post-warp .post-content .typeit .code .s{color:#8bc56f}.post-warp .post-content .typeit .code .n{color:#db975c}.post-warp .post-content .typeit .code .c1{color:#7e848f}.post-warp .post-content .align-left{text-align:left}.post-warp .post-content .align-center{text-align:center}.post-warp .post-content .align-right{text-align:right}.post-warp .post-content .float-left{float:left}.post-warp .post-content .float-right{float:right}.post-warp .post-footer{margin-top:3rem}.post-warp .post-footer .post-info{border-bottom:1px solid #dcdcdc;padding:1rem 0 .3rem}.dark-theme .post-warp .post-footer .post-info{border-bottom:1px solid #4a4b50}.post-warp .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.post-warp .post-footer .post-info .post-info-line .post-info-mod{font-size:.8em;color:#a9a9b3}.dark-theme .post-warp .post-footer .post-info .post-info-line .post-info-mod{color:#87878d}.post-warp .post-footer .post-info .post-info-line .post-info-license{font-size:.8em;color:#a9a9b3}.dark-theme .post-warp .post-footer .post-info .post-info-line .post-info-license{color:#87878d}.post-warp .post-footer .post-info .post-info-line .post-info-md a{font-size:.8em;color:#2d96bd}.dark-theme .post-warp .post-footer .post-info .post-info-line .post-info-md a{color:#eee}.post-warp .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}.dark-theme .post-warp .post-footer .post-info .post-info-line .post-info-md a:hover{color:#fff}.post-warp .post-footer .post-info-more{padding:.3rem 0 1rem;display:flex;justify-content:space-between;font-size:.9rem}.post-warp .post-footer .post-nav:before,.post-warp .post-footer .post-nav:after{content:" ";display:table}.post-warp .post-footer .post-nav a.prev,.post-warp .post-footer .post-nav a.next{font-weight:600;font-size:1rem;transition-property:transform;transition-timing-function:ease-out;transition-duration:.3s}.post-warp .post-footer .post-nav a.prev{float:left}.post-warp .post-footer .post-nav a.prev:hover{transform:translateX(-4px)}.post-warp .post-footer .post-nav a.next{float:right}.post-warp .post-footer .post-nav a.next:hover{transform:translateX(4px)}.post-warp .post-comment{padding:4rem 0}.post-warp .home-intro{transform:translateY(0);padding:2rem 0}.post-warp .home-intro .home-avatar img{width:6rem}.post-warp .post{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #dcdcdc}.dark-theme .post-warp .post{color:#a9a9b3;border-bottom:1px dashed #4a4b50}.post-warp .post .post-featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin-bottom:1rem}.post-warp .post .post-featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.post-warp .post .post-list-title{font-size:1.6rem}.post-warp .post .post-meta{font-size:.875rem!important}.post-warp .post .post-meta a{color:#a9a9b3!important}.dark-theme .post-warp .post .post-meta a{color:#87878d!important}.post-warp .post .post-meta a:hover{color:#2d96bd!important}.dark-theme .post-warp .post .post-meta a:hover{color:#fff!important}.post-warp .post .post-content{padding-top:.2rem;font-size:.9rem;width:100%;max-height:7rem;overflow:hidden}.post-warp .post .post-content h2,.post-warp .post .post-content h3,.post-warp .post .post-content h4,.post-warp .post .post-content h5,.post-warp .post .post-content h6{font-size:1rem;line-height:1rem;padding-top:.3rem;padding-bottom:.3rem}.post-warp .post .post-content p{margin:0;padding-top:.3rem;padding-bottom:.3rem}.post-warp .post .post-footer{margin-top:.5rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem!important}.post-warp .post .post-footer a{color:#2d96bd!important}.dark-theme .post-warp .post .post-footer a{color:#eee!important}.post-warp .post .post-footer a:hover{color:#ef3982!important}.dark-theme .post-warp .post .post-footer a:hover{color:#fff!important}.post-warp .post .post-footer .post-tags{padding:0}.post-warp .post .post-footer .post-tags a{color:#161209!important}.dark-theme .post-warp .post .post-footer .post-tags a{color:#a9a9b3!important}.post-warp .post .post-footer .post-tags a:hover{color:#2d96bd!important}.dark-theme .post-warp .post .post-footer .post-tags a:hover{color:#fff!important}.archive .post-title{text-align:right;padding-bottom:2rem}.archive .archive-item{margin-left:2rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;padding:0 2.5rem;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 .categories{width:100%;overflow:hidden}.archive .archive-item-link{display:inline-block;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:95%}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}.dark-theme .archive .archive-item-link{color:#a9a9b3;text-decoration:none;transition:color .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease}.dark-theme .archive .archive-item-link:hover{color:#fff;text-decoration:none;transition:color .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease}.archive .archive-item-date{float:right;text-align:right;color:#a9a9b3}.dark-theme .archive .archive-item-date{color:#87878d}.archive .more-post{text-align:right}.archive .categories h3{display:inline-block}.archive .categories span{float:right;padding-right:1rem}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{color:#2d96bd;transform:scale(1.1)}.dark-theme .archive .tag-cloud-tags a:active,.dark-theme .archive .tag-cloud-tags a:focus,.dark-theme .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a small{color:#a9a9b3}.dark-theme .archive .tag-cloud-tags a small{color:#fff}.single .post-title{text-align:right;padding-bottom:2rem}.navbar{display:block;position:fixed;width:100%;z-index:100;height:4rem;line-height:4rem;background-color:#fafafa}.dark-theme .navbar{background-color:#252627}.navbar .navbar-container{width:auto;text-align:center;margin:0 6rem;display:flex;justify-content:space-between}.navbar .navbar-container .navbar-header a{padding:0 8px;font-size:20px}.navbar .navbar-container .navbar-header a i{line-height:2em}.navbar .navbar-container .navbar-menu a{padding:0 8px}.navbar .navbar-container .navbar-menu a.active{font-weight:900;color:#161209}.dark-theme .navbar .navbar-container .navbar-menu a.active{color:#fff}.navbar-mobile{display:none;position:fixed;width:100%;z-index:100;transition:all .3s ease 0s}.navbar-mobile .navbar-container{padding:0;margin:0;height:4.5em;line-height:4.5em;background:#fff}.navbar-mobile .navbar-container .navbar-header{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:18px;padding-right:1em;padding-left:1em;box-sizing:border-box}.navbar-mobile .navbar-container .navbar-header .navbar-header-title{font-size:20px}.navbar-mobile .navbar-container .navbar-header .menu-toggle{cursor:pointer;line-height:4.5em}.navbar-mobile .navbar-container .navbar-header .menu-toggle span{display:block;background:#000;width:24px;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:.2s margin .2s,.2s transform;-moz-transition:.2s margin .2s,.2s transform;transition:.2s margin .2s,.2s transform}.dark-theme .navbar-mobile .navbar-container .navbar-header .menu-toggle span{background:#a9a9b3}.navbar-mobile .navbar-container .navbar-header .menu-toggle span:nth-child(1){margin-bottom:8px}.navbar-mobile .navbar-container .navbar-header .menu-toggle span:nth-child(3){margin-top:8px}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span{-webkit-transition:.2s margin,.2s transform .2s;-moz-transition:.2s margin,.2s transform .2s;transition:.2s margin,.2s transform .2s}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(1){-moz-transform:rotate(45deg)translate(4px,6px);-ms-transform:rotate(45deg)translate(4px,6px);-webkit-transform:rotate(45deg)translate(4px,6px);transform:rotate(45deg)translate(4px,6px)}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(2){opacity:0}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(3){-moz-transform:rotate(-45deg)translate(8px,-10px);-ms-transform:rotate(-45deg)translate(8px,-10px);-webkit-transform:rotate(-45deg)translate(8px,-10px);transform:rotate(-45deg)translate(8px,-10px)}.navbar-mobile .navbar-container .navbar-menu{text-align:center;background:#fff;border-top:2px solid #161209;display:none;box-shadow:0 2px 4px rgba(0,0,0,.1),0 4px 8px rgba(0,0,0,.1)}.navbar-mobile .navbar-container .navbar-menu a{display:block;line-height:2.5em}.navbar-mobile .navbar-container .navbar-menu.active{display:block}.dark-theme .navbar-mobile .navbar-container .navbar-menu{background:#292a2d;border-top:2px solid #a9a9b3}.dark-theme .navbar-mobile .navbar-container{background:#292a2d}.copyright{font-size:.875rem}.copyright .copyright-line{width:100%}.dynamic-to-top{display:none;overflow:hidden;width:auto;z-index:90;position:fixed;bottom:2rem;right:2rem;top:auto;left:auto;font-family:sans-serif;font-size:1rem;color:#fff;text-decoration:none;text-shadow:0 1px 0 #333;font-weight:700;padding:1rem;border:1px solid #dcdcdc;background:#222;outline:none}.dynamic-to-top:hover{background:#000;cursor:pointer}.dynamic-to-top:active{background:#000;outline:none}.dynamic-to-top:focus,.dynamic-to-top:hover{outline:none}.dynamic-to-top span{display:block;overflow:hidden;width:.875rem;height:.75rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAYAAACE2W/HAAAACXBIWXMAAArwAAAK8AFCrDSYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAKVJREFUeNqUz7ENgzAURdErUSXQMgdTZJFIqeg8DFI2YQeEvAEbUJja3y9NEiwCUXIlN/62jww7Saok3Z+r4pckXSRNWpskXb5deClHfeo7ylGrLqnbTmOMs/e+9d63McZ554GOlFLId0IIvXOuAUqgdM41IYQ+P5NSCpjZkitADRTZTwqgznUzWzCzZaMc9dbNbGEYhuuOclQB1OM43gBO/N/5MQAeMwpyB1MtLQAAAABJRU5ErkJggg==)no-repeat 50%}.dark-theme .dynamic-to-top{border:1px solid #4a4b50}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding-top:1rem}.pagination a{-webkit-font-smoothing:antialiased;font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px;text-decoration:none;transition:.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}.dark-theme .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;transition:.3s;bottom:0}.dark-theme .pagination li:before,.dark-theme .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}.dark-theme .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width:1800px){.post-warp{max-width:780px}.post-warp .post-toc{margin-left:800px}}@media only screen and (max-width:1300px){.post-warp{max-width:560px}.post-warp .post-toc{margin-left:580px}}@media only screen and (max-width:1080px){.navbar .navbar-container{margin:0 2rem}.post-warp{max-width:80%}.post-warp .post-toc{display:none}.post-warp .post-toc-mobile{display:block}}@media only screen and (max-width:480px){.navbar{display:none}.navbar-mobile{display:block}.post-warp{max-width:100%}.post-warp .categories-card .card-item{width:95%}.dynamic-to-top{display:none!important}} \ No newline at end of file
+@import "https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900";/*!normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css*/html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:Lato,-apple-system,BlinkMacSystemFont,PingFang-SC-Regular,Hiragino Sans GB,Microsoft Yahei,Arial,sans-serif}html::-webkit-scrollbar{width:8px;height:8px}html::-webkit-scrollbar-thumb{height:40px;background-color:#87878d;border-radius:16px}html::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background:rgba(0,149,255,.1)}body{font-size:16px;font-weight:400;line-height:26px;background-color:#fff;color:#161209}body:before{content:"";background-repeat:no-repeat;background-position:50%;opacity:.05;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);-ms-filter:grayscale(100%);-o-filter:grayscale(100%);filter:grayscale(100%);filter:gray}body.dark-theme{color:#a9a9b3;background-color:#292a2d}a{color:#161209;text-decoration:none;transition:color .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease}a:hover{color:#2d96bd}.dark-theme a{color:#a9a9b3}.dark-theme a:hover{color:#fff}.wrapper{display:flex;flex-direction:column;min-height:98vh;width:100%}.main{flex:1 0 auto}.container{padding-left:1rem;padding-right:1rem}.footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}.notfound{font-size:2rem;transform:translateY(35vh);text-align:center}.home-intro{transform:translateY(25vh);text-align:center}.home-intro .home-avatar{padding:.6rem}.home-intro .home-avatar img{width:8rem;height:auto;display:inline-block;-webkit-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 .3618em rgba(0,0,0,.05);box-shadow:0 0 0 .3618em rgba(0,0,0,.05);margin:0 auto;-webkit-transition:all ease .4s;-moz-transition:all ease .4s;-o-transition:all ease .4s;transition:all ease .4s;cursor:pointer}.home-intro .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-intro .home-description{font-size:1rem;font-weight:400;padding:.4rem}.home-intro .home-social-links{padding-top:.6rem}.home-intro .home-social-links i{font-size:1.4rem}.warpper{position:relative;width:100%;max-width:960px;margin:0 auto;padding-top:6rem}.warpper .post-title{margin:0!important;font-size:1.8rem;line-height:3rem}.warpper .post-meta{font-size:.88rem;color:#a9a9b3}.warpper .post-meta span{display:inline-block}.dark-theme .warpper .post-meta{color:#87878d}.warpper .post-meta a{color:#2d96bd}.dark-theme .warpper .post-meta a{color:#eee}.warpper .post-meta a:hover{color:#ef3982}.dark-theme .warpper .post-meta a:hover{color:#2d96bd}.warpper .post-meta .author{font-size:1.05rem}.warpper .post-featured-image{padding-top:.6rem}.warpper .post-featured-image img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.warpper .post-toc{display:block;position:absolute;width:240px;max-width:300px;margin-left:980px;padding:.8rem;border-left:1px solid #dcdcdc;word-wrap:break-word;box-sizing:border-box;top:12rem}.warpper .post-toc .post-toc-title{font-weight:400;text-transform:uppercase}.warpper .post-toc .post-toc-content.always-active ul{display:block}.warpper .post-toc .post-toc-content>nav>ul{margin:.625rem 0}.warpper .post-toc .post-toc-content ul{padding-left:.625rem;list-style:none}.warpper .post-toc .post-toc-content ul ul{padding-left:1.25rem;display:none}.warpper .post-toc .post-toc-content ul .has-active>ul{display:block}.warpper .post-toc .post-toc-content .toc-link.active{color:#2d96bd}.warpper .post-toc-mobile{display:none;padding-top:.8rem}.warpper .post-toc-mobile details summary .post-toc-title{display:block;display:flex;justify-content:space-between;font-size:1.2em;font-weight:700;line-height:2em;padding:0 .625rem;background:#f5f5f5}.warpper .post-toc-mobile details summary .post-toc-title i.details{line-height:2em}.dark-theme .warpper .post-toc-mobile details summary .post-toc-title{background:#272c34}.warpper .post-toc-mobile details summary::-webkit-details-marker{display:none}.warpper .post-toc-mobile details[open] i.details{transform:rotate(180deg)}.warpper .post-toc-mobile .post-toc-content{border:2px solid #f5f5f5}.warpper .post-toc-mobile .post-toc-content>nav>ul{margin:.625rem 0}.warpper .post-toc-mobile .post-toc-content ul{padding-left:.625rem;list-style:none}.warpper .post-toc-mobile .post-toc-content ul ul{padding-left:1.25rem}.dark-theme .warpper .post-toc-mobile .post-toc-content{border:2px solid #272c34}.warpper .post-content .post-dummy-target:target{display:inline-block;position:relative;top:-5.6rem;visibility:hidden}.warpper .post-content h2,.warpper .post-content h3,.warpper .post-content h4,.warpper .post-content h5,.warpper .post-content h6{padding-top:.8rem;padding-bottom:.3rem}.warpper .post-content h2::before{content:"#";margin-right:.3125rem;color:#2d96bd}.dark-theme .warpper .post-content h2::before{color:#eee}.warpper .post-content h3::before,.warpper .post-content h4::before,.warpper .post-content h5::before,.warpper .post-content h6::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark-theme .warpper .post-content h3::before,.dark-theme .warpper .post-content h4::before,.dark-theme .warpper .post-content h5::before,.dark-theme .warpper .post-content h6::before{color:#eee}.warpper .post-content p{font-size:1rem;margin:.5rem 0;text-align:justify}.warpper .post-content a{color:#2d96bd}.dark-theme .warpper .post-content a{color:#eee}.warpper .post-content a:hover{color:#ef3982}.dark-theme .warpper .post-content a:hover:hover{color:#2d96bd;font-weight:700}.warpper .post-content ul{padding-left:2rem}.warpper .post-content ruby{background:#f5f5f5}.warpper .post-content ruby rt{color:#a9a9b3}.dark-theme .warpper .post-content ruby{background:#272c34}.dark-theme .warpper .post-content ruby rt{color:#87878d}.warpper .post-content .table-wrapper{overflow-x:auto}.warpper .post-content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff}.dark-theme .warpper .post-content .table-wrapper>table{background:#272c34}.warpper .post-content .table-wrapper>table thead{background:#ededed}.dark-theme .warpper .post-content .table-wrapper>table thead{background-color:#20252b}.warpper .post-content .table-wrapper>table th,.warpper .post-content .table-wrapper>table td{padding:.3rem 1rem;border:1px double #dcdcdc}.dark-theme .warpper .post-content .table-wrapper>table th,.dark-theme .warpper .post-content .table-wrapper>table td{border:1px double #4a4b50}.warpper .post-content figure{text-align:center}.warpper .post-content .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.625rem;margin:0 auto;border-bottom:1px solid #d9d9d9;font-size:.875rem;color:#969696;line-height:1.7}.warpper .post-content img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.warpper .post-content blockquote{font-size:1rem;display:block;border-width:1px 0;border-style:solid;border-color:#dcdcdc;padding:1.5em 1.2em .5em;margin:0 0 2em;position:relative}.warpper .post-content blockquote::before{content:'\201C';position:absolute;top:0;left:50%;transform:translate(-50%,-50%);width:3rem;height:2rem;font:6em/1.08em pt sans,sans-serif;color:#2d96bd;text-align:center}.dark-theme .warpper .post-content blockquote::before{color:#eee}.warpper .post-content blockquote::after{content:"#blockquote" attr(cite);display:block;text-align:right;font-size:.875em;color:#2d96bd}.dark-theme .warpper .post-content blockquote::after{color:#eee}.dark-theme .warpper .post-content blockquote{border-color:#4a4b50}.warpper .post-content .footnotes{color:#a9a9b3}.dark-theme .warpper .post-content .footnotes{color:#87878d}.warpper .post-content code,.warpper .post-content pre{padding:7px;font-size:13px;font-family:Source Code Pro,Consolas,Liberation Mono,Menlo,Courier,monospace;background:#f5f5f5}.dark-theme .warpper .post-content code,.dark-theme .warpper .post-content pre{background:#272c34}.warpper .post-content code{padding:3px 5px;border-radius:4px;color:#e74c3c;background:#f5f5f5}.dark-theme .warpper .post-content code{color:#e5bf78;background:#272c34}.warpper .post-content p>code{background:#ededed}.dark-theme .warpper .post-content p>code{color:#e5bf78;background:#20252b}.warpper .post-content .highlight>.chroma{margin:1em 0;border-radius:6px;overflow-x:auto;position:relative;background:#f5f5f5}.warpper .post-content .highlight>.chroma code{padding:0}.warpper .post-content .highlight>.chroma table{position:relative}.warpper .post-content .highlight>.chroma table::after{position:absolute;top:0;right:0;left:0;padding:2px 7px;font-size:13px;font-weight:700;color:#b1b0b0;background:#ededed;content:'Code'}.dark-theme .warpper .post-content .highlight>.chroma table::after{background:#20252b}.warpper .post-content .highlight>.chroma .language-bash table::after{content:"Bash"}.warpper .post-content .highlight>.chroma .language-c table::after{content:"C"}.warpper .post-content .highlight>.chroma .language-cs table::after{content:"C#"}.warpper .post-content .highlight>.chroma .language-cpp table::after{content:"C++"}.warpper .post-content .highlight>.chroma .language-css table::after{content:"CSS"}.warpper .post-content .highlight>.chroma .language-coffeescript table::after{content:"CoffeeScript"}.warpper .post-content .highlight>.chroma .language-html table::after{content:"HTML"}.warpper .post-content .highlight>.chroma .language-xml table::after{content:"XML"}.warpper .post-content .highlight>.chroma .language-http table::after{content:"HTTP"}.warpper .post-content .highlight>.chroma .language-json table::after{content:"JSON"}.warpper .post-content .highlight>.chroma .language-java table::after{content:"Java"}.warpper .post-content .highlight>.chroma .language-js table::after{content:"JavaScript"}.warpper .post-content .highlight>.chroma .language-javascript table::after{content:"JavaScript"}.warpper .post-content .highlight>.chroma .language-makefile table::after{content:"Makefile"}.warpper .post-content .highlight>.chroma .language-markdown table::after{content:"Markdown"}.warpper .post-content .highlight>.chroma .language-objectivec table::after{content:"Objective-C"}.warpper .post-content .highlight>.chroma .language-php table::after{content:"PHP"}.warpper .post-content .highlight>.chroma .language-perl table::after{content:"Perl"}.warpper .post-content .highlight>.chroma .language-python table::after{content:"Python"}.warpper .post-content .highlight>.chroma .language-ruby table::after{content:"Ruby"}.warpper .post-content .highlight>.chroma .language-sql table::after{content:"SQL"}.warpper .post-content .highlight>.chroma .language-shell table::after{content:"Shell"}.warpper .post-content .highlight>.chroma .language-erlang table::after{content:"Erlang"}.warpper .post-content .highlight>.chroma .language-go table::after{content:"Go"}.warpper .post-content .highlight>.chroma .language-go-html-template table::after{content:"Go HTML Template"}.warpper .post-content .highlight>.chroma .language-groovy table::after{content:"Groovy"}.warpper .post-content .highlight>.chroma .language-haskell table::after{content:"Haskell"}.warpper .post-content .highlight>.chroma .language-kotlin table::after{content:"Kotlin"}.warpper .post-content .highlight>.chroma .language-clojure table::after{content:"Clojure"}.warpper .post-content .highlight>.chroma .language-less table::after{content:"Less"}.warpper .post-content .highlight>.chroma .language-lisp table::after{content:"Lisp"}.warpper .post-content .highlight>.chroma .language-lua table::after{content:"Lua"}.warpper .post-content .highlight>.chroma .language-matlab table::after{content:"Matlab"}.warpper .post-content .highlight>.chroma .language-rust table::after{content:"Rust"}.warpper .post-content .highlight>.chroma .language-scss table::after{content:"Scss"}.warpper .post-content .highlight>.chroma .language-scala table::after{content:"Scala"}.warpper .post-content .highlight>.chroma .language-swift table::after{content:"Swift"}.warpper .post-content .highlight>.chroma .language-typescript table::after{content:"TypeScript"}.warpper .post-content .highlight>.chroma .language-yml table::after{content:"YAML"}.warpper .post-content .highlight>.chroma .language-yaml table::after{content:"YAML"}.warpper .post-content .highlight>.chroma .language-toml table::after{content:"TOML"}.warpper .post-content .highlight>.chroma .language-diff table::after{content:"Diff"}.warpper .post-content .highlight>.chroma .lntd{line-height:20px}.warpper .post-content .highlight>.chroma .lntd:first-child{width:10px}.warpper .post-content .highlight>.chroma .lntd:first-child pre{margin:0;padding:38px 7px 8px}.warpper .post-content .highlight>.chroma .lntd:last-child{vertical-align:top}.warpper .post-content .highlight>.chroma .lntd:last-child pre{margin:0;padding:38px 10px 8px}.warpper .post-content .highlight>.chroma table,.warpper .post-content .highlight>.chroma tr,.warpper .post-content .highlight>.chroma td{margin:0;padding:0;width:100%;border-collapse:collapse;border-color:#f5f5f5}.dark-theme .warpper .post-content .highlight>.chroma table,.dark-theme .warpper .post-content .highlight>.chroma tr,.dark-theme .warpper .post-content .highlight>.chroma td{border-color:#272c34}.warpper .post-content .highlight>.chroma .lnt{color:#cacaca}.warpper .post-content .highlight>.chroma .hl{display:block;width:100%;background-color:#e8e8e8}.dark-theme .warpper .post-content .highlight>.chroma .hl{background-color:#1c2025}.warpper .post-content .highlight{}.warpper .post-content .highlight .p{color:#a9a9b3}.warpper .post-content .highlight .k{color:#859900}.warpper .post-content .highlight .kc{color:#859900;font-weight:700}.warpper .post-content .highlight .kd{color:#859900}.warpper .post-content .highlight .kn{color:#dc322f;font-weight:700}.warpper .post-content .highlight .kp{color:#859900}.warpper .post-content .highlight .kr{color:#859900}.warpper .post-content .highlight .kt{color:#859900;font-weight:700}.warpper .post-content .highlight .n{color:#268bd2}.warpper .post-content .highlight .na{color:#268bd2}.warpper .post-content .highlight .nb{color:#cb4b16}.warpper .post-content .highlight .bp{color:#268bd2}.warpper .post-content .highlight .nc{color:#cb4b16}.warpper .post-content .highlight .no{color:#268bd2}.warpper .post-content .highlight .nd{color:#268bd2}.warpper .post-content .highlight .ni{color:#268bd2}.warpper .post-content .highlight .ne{color:#268bd2}.warpper .post-content .highlight .nf{color:#268bd2}.warpper .post-content .highlight .fm{color:#268bd2}.warpper .post-content .highlight .nl{color:#268bd2}.warpper .post-content .highlight .nn{color:#268bd2}.warpper .post-content .highlight .nx{color:#268bd2}.warpper .post-content .highlight .py{color:#268bd2}.warpper .post-content .highlight .nt{color:#268bd2;font-weight:700}.warpper .post-content .highlight .nv{color:#268bd2}.warpper .post-content .highlight .vc{color:#268bd2}.warpper .post-content .highlight .vg{color:#268bd2}.warpper .post-content .highlight .vi{color:#268bd2}.warpper .post-content .highlight .vm{color:#268bd2}.warpper .post-content .highlight .l{color:#2aa198}.warpper .post-content .highlight .ld{color:#2aa198}.warpper .post-content .highlight .s{color:#2aa198}.warpper .post-content .highlight .sa{color:#2aa198}.warpper .post-content .highlight .sb{color:#2aa198}.warpper .post-content .highlight .sc{color:#2aa198}.warpper .post-content .highlight .dl{color:#2aa198}.warpper .post-content .highlight .sd{color:#2aa198}.warpper .post-content .highlight .s2{color:#2aa198}.warpper .post-content .highlight .se{color:#2aa198}.warpper .post-content .highlight .sh{color:#2aa198}.warpper .post-content .highlight .si{color:#2aa198}.warpper .post-content .highlight .sx{color:#2aa198}.warpper .post-content .highlight .sr{color:#2aa198}.warpper .post-content .highlight .s1{color:#2aa198}.warpper .post-content .highlight .ss{color:#2aa198}.warpper .post-content .highlight .m{color:#2aa198;font-weight:700}.warpper .post-content .highlight .mb{color:#2aa198;font-weight:700}.warpper .post-content .highlight .mf{color:#2aa198;font-weight:700}.warpper .post-content .highlight .mh{color:#2aa198;font-weight:700}.warpper .post-content .highlight .mi{color:#2aa198;font-weight:700}.warpper .post-content .highlight .il{color:#2aa198;font-weight:700}.warpper .post-content .highlight .mo{color:#2aa198;font-weight:700}.warpper .post-content .highlight .ow{color:#859900}.warpper .post-content .highlight .c{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .ch{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .cm{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .c1{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .cs{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .cp{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .cpf{color:#93a1a1;font-style:italic}.warpper .post-content .highlight .g{color:#d33682}.warpper .post-content .highlight .gd{color:#b58900}.warpper .post-content .highlight .ge{color:#d33682}.warpper .post-content .highlight .gr{color:#d33682}.warpper .post-content .highlight .gh{color:#d33682}.warpper .post-content .highlight .gi{color:#859900}.warpper .post-content .highlight .go{color:#d33682}.warpper .post-content .highlight .gp{color:#d33682}.warpper .post-content .highlight .gs{color:#d33682}.warpper .post-content .highlight .gu{color:#d33682}.warpper .post-content .highlight .gt{color:#d33682}.dark-theme .warpper .post-content .highlight{background:#272c34}.dark-theme .warpper .post-content .highlight .p{color:#a9a9b3}.dark-theme .warpper .post-content .highlight .k{color:#d371e3}.dark-theme .warpper .post-content .highlight .kc{color:#d371e3}.dark-theme .warpper .post-content .highlight .kd{color:#d371e3}.dark-theme .warpper .post-content .highlight .kn{color:#d371e3}.dark-theme .warpper .post-content .highlight .kp{color:#d371e3}.dark-theme .warpper .post-content .highlight .kr{color:#d371e3}.dark-theme .warpper .post-content .highlight .kt{color:#8be9fd}.dark-theme .warpper .post-content .highlight .na{color:#41b1f5}.dark-theme .warpper .post-content .highlight .nb{color:#8be9fd;font-style:italic}.dark-theme .warpper .post-content .highlight .nc{color:#e5bf78}.dark-theme .warpper .post-content .highlight .nf{color:#19b8c0}.dark-theme .warpper .post-content .highlight .nx{color:#f16473}.dark-theme .warpper .post-content .highlight .nl{color:#8be9fd;font-style:italic}.dark-theme .warpper .post-content .highlight .nt{color:#d371e3}.dark-theme .warpper .post-content .highlight .nv{color:#8be9fd;font-style:italic}.dark-theme .warpper .post-content .highlight .vc{color:#8be9fd;font-style:italic}.dark-theme .warpper .post-content .highlight .vg{color:#8be9fd;font-style:italic}.dark-theme .warpper .post-content .highlight .vi{color:#8be9fd;font-style:italic}.dark-theme .warpper .post-content .highlight .s{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sa{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sb{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sc{color:#8bc56f}.dark-theme .warpper .post-content .highlight .dl{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sd{color:#8bc56f}.dark-theme .warpper .post-content .highlight .s2{color:#8bc56f}.dark-theme .warpper .post-content .highlight .se{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sh{color:#8bc56f}.dark-theme .warpper .post-content .highlight .si{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sx{color:#8bc56f}.dark-theme .warpper .post-content .highlight .sr{color:#8bc56f}.dark-theme .warpper .post-content .highlight .s1{color:#8bc56f}.dark-theme .warpper .post-content .highlight .ss{color:#8bc56f}.dark-theme .warpper .post-content .highlight .m{color:#bd93f9}.dark-theme .warpper .post-content .highlight .mb{color:#bd93f9}.dark-theme .warpper .post-content .highlight .mf{color:#bd93f9}.dark-theme .warpper .post-content .highlight .mh{color:#bd93f9}.dark-theme .warpper .post-content .highlight .mi{color:#bd93f9}.dark-theme .warpper .post-content .highlight .il{color:#bd93f9}.dark-theme .warpper .post-content .highlight .mo{color:#bd93f9}.dark-theme .warpper .post-content .highlight .o{color:#d371e3}.dark-theme .warpper .post-content .highlight .ow{color:#d371e3}.dark-theme .warpper .post-content .highlight .c{color:#7e848f}.dark-theme .warpper .post-content .highlight .ch{color:#7e848f}.dark-theme .warpper .post-content .highlight .cm{color:#7e848f}.dark-theme .warpper .post-content .highlight .c1{color:#7e848f}.dark-theme .warpper .post-content .highlight .cs{color:#7e848f}.dark-theme .warpper .post-content .highlight .cp{color:#d371e3}.dark-theme .warpper .post-content .highlight .cpf{color:#d371e3}.dark-theme .warpper .post-content .highlight .gd{color:#8b080b}.dark-theme .warpper .post-content .highlight .ge{text-decoration:underline}.dark-theme .warpper .post-content .highlight .gh{font-weight:700}.dark-theme .warpper .post-content .highlight .gi{font-weight:700}.dark-theme .warpper .post-content .highlight .go{color:#44475a}.dark-theme .warpper .post-content .highlight .gu{font-weight:700}.dark-theme .warpper .post-content .highlight .gl{text-decoration:underline}.warpper .post-content .admonition{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);position:relative;margin:.9765em 0;padding:0 .75rem;border-left:.25rem solid #448aff;border-radius:.125rem;overflow:auto}.warpper .post-content .admonition .admonition-title{margin:0 -.75rem;padding:.5rem .75rem .5rem 2.5rem;border-bottom:.1rem solid rgba(68,138,255,.1);background-color:rgba(68,138,255,.1);font-weight:700}.warpper .post-content .admonition i.icon{font-size:16px;cursor:auto;position:absolute;left:.75rem;top:.75rem}.warpper .post-content .admonition.note{border-left-color:#448aff}.warpper .post-content .admonition.note i.icon{color:#448aff}.warpper .post-content .admonition.abstract{border-left-color:#00b0ff}.warpper .post-content .admonition.abstract .admonition-title{background-color:rgba(0,176,255,.1)}.warpper .post-content .admonition.abstract i.icon{color:#00b0ff}.warpper .post-content .admonition.info{border-left-color:#00b8d4}.warpper .post-content .admonition.info .admonition-title{background-color:rgba(0,184,212,.1)}.warpper .post-content .admonition.info i.icon{color:#00b8d4}.warpper .post-content .admonition.tip{border-left-color:#00bfa5}.warpper .post-content .admonition.tip .admonition-title{background-color:rgba(0,191,165,.1)}.warpper .post-content .admonition.tip i.icon{color:#00bfa5}.warpper .post-content .admonition.success{border-left-color:#00c853}.warpper .post-content .admonition.success .admonition-title{background-color:rgba(0,200,83,.1)}.warpper .post-content .admonition.success i.icon{color:#00c853}.warpper .post-content .admonition.question{border-left-color:#64dd17}.warpper .post-content .admonition.question .admonition-title{background-color:rgba(100,221,23,.1)}.warpper .post-content .admonition.question i.icon{color:#64dd17}.warpper .post-content .admonition.warning{border-left-color:#ff9100}.warpper .post-content .admonition.warning .admonition-title{background-color:rgba(255,145,0,.1)}.warpper .post-content .admonition.warning i.icon{color:#ff9100}.warpper .post-content .admonition.failure{border-left-color:#ff5252}.warpper .post-content .admonition.failure .admonition-title{background-color:rgba(255,82,82,.1)}.warpper .post-content .admonition.failure i.icon{color:#ff5252}.warpper .post-content .admonition.danger{border-left-color:#ff1744}.warpper .post-content .admonition.danger .admonition-title{background-color:rgba(255,23,68,.1)}.warpper .post-content .admonition.danger i.icon{color:#ff1744}.warpper .post-content .admonition.bug{border-left-color:#f50057}.warpper .post-content .admonition.bug .admonition-title{background-color:rgba(245,0,87,.1)}.warpper .post-content .admonition.bug i.icon{color:#f50057}.warpper .post-content .admonition.example{border-left-color:#651fff}.warpper .post-content .admonition.example .admonition-title{background-color:rgba(101,31,255,.1)}.warpper .post-content .admonition.example i.icon{color:#651fff}.warpper .post-content .admonition.quote{border-left-color:#9e9e9e}.warpper .post-content .admonition.quote .admonition-title{background-color:rgba(158,158,158,.1)}.warpper .post-content .admonition.quote i.icon{color:#9e9e9e}.warpper .post-content .admonition:last-child{margin-bottom:.75rem}.warpper .post-content details.admonition summary{display:block;outline:none;cursor:pointer}.warpper .post-content details.admonition summary::-webkit-details-marker{display:none}.warpper .post-content details.admonition summary i.details{position:absolute;top:.75rem;right:.75rem;color:#161209}.dark-theme .warpper .post-content details.admonition summary i.details{color:#a9a9b3}.warpper .post-content details.admonition[open] i.details{transform:rotate(180deg)}.warpper .post-content .mermaid{width:100%;margin:3% auto;text-align:center}.warpper .post-content .mermaid .label{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);color:#333}.warpper .post-content .mermaid .label text{fill:#333}.warpper .post-content .mermaid .node rect,.warpper .post-content .mermaid .node circle,.warpper .post-content .mermaid .node ellipse,.warpper .post-content .mermaid .node polygon{fill:#eee;stroke:#999;stroke-width:1px}.warpper .post-content .mermaid .node .label{text-align:center}.warpper .post-content .mermaid .node.clickable{cursor:pointer}.warpper .post-content .mermaid .arrowheadPath{fill:#333}.warpper .post-content .mermaid .edgePath .path{stroke:#666;stroke-width:1.5px}.warpper .post-content .mermaid .edgeLabel{background-color:#fff;text-align:center}.warpper .post-content .mermaid .cluster rect{fill:#eaf2fb;stroke:#26a;stroke-width:1px}.warpper .post-content .mermaid .cluster text{fill:#333}.warpper .post-content .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.warpper .post-content .mermaid .actor{stroke:#999;fill:#eee}.warpper .post-content .mermaid text.actor{fill:#333;stroke:none}.warpper .post-content .mermaid .actor-line{stroke:#666}.warpper .post-content .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.warpper .post-content .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.warpper .post-content .mermaid #arrowhead{fill:#333}.warpper .post-content .mermaid .sequenceNumber{fill:#fff}.warpper .post-content .mermaid #sequencenumber{fill:#333}.warpper .post-content .mermaid #crosshead path{fill:#333!important;stroke:#333!important}.warpper .post-content .mermaid .messageText{fill:#333;stroke:none}.warpper .post-content .mermaid .labelBox{stroke:#999;fill:#eee}.warpper .post-content .mermaid .labelText{fill:#333;stroke:none}.warpper .post-content .mermaid .loopText{fill:#333;stroke:none}.warpper .post-content .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.warpper .post-content .mermaid .note{stroke:#770;fill:#ffa}.warpper .post-content .mermaid .noteText{fill:#000;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:14px}.warpper .post-content .mermaid .activation0{fill:#f4f4f4;stroke:#666}.warpper .post-content .mermaid .activation1{fill:#f4f4f4;stroke:#666}.warpper .post-content .mermaid .activation2{fill:#f4f4f4;stroke:#666}.warpper .post-content .mermaid .mermaid-main-font{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .section{stroke:none;opacity:.2}.warpper .post-content .mermaid .section0{fill:#80b3e6}.warpper .post-content .mermaid .section2{fill:#80b3e6}.warpper .post-content .mermaid .section1,.warpper .post-content .mermaid .section3{fill:#fff;opacity:.2}.warpper .post-content .mermaid .sectionTitle0{fill:#333}.warpper .post-content .mermaid .sectionTitle1{fill:#333}.warpper .post-content .mermaid .sectionTitle2{fill:#333}.warpper .post-content .mermaid .sectionTitle3{fill:#333}.warpper .post-content .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .grid .tick{stroke:#e6e5e5;opacity:.3;shape-rendering:crispEdges}.warpper .post-content .mermaid .grid .tick text{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .grid path{stroke-width:0}.warpper .post-content .mermaid .today{fill:none;stroke:#d42;stroke-width:2px}.warpper .post-content .mermaid .task{stroke-width:2}.warpper .post-content .mermaid .taskText{text-anchor:middle;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .taskText:not([font-size]){font-size:11px}.warpper .post-content .mermaid .taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.warpper .post-content .mermaid .task.clickable{cursor:pointer}.warpper .post-content .mermaid .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.warpper .post-content .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.warpper .post-content .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.warpper .post-content .mermaid .taskText0,.warpper .post-content .mermaid .taskText1,.warpper .post-content .mermaid .taskText2,.warpper .post-content .mermaid .taskText3{fill:#fff}.warpper .post-content .mermaid .task0,.warpper .post-content .mermaid .task1,.warpper .post-content .mermaid .task2,.warpper .post-content .mermaid .task3{fill:#26a;stroke:#1a4d80}.warpper .post-content .mermaid .taskTextOutside0,.warpper .post-content .mermaid .taskTextOutside2{fill:#333}.warpper .post-content .mermaid .taskTextOutside1,.warpper .post-content .mermaid .taskTextOutside3{fill:#333}.warpper .post-content .mermaid .active0,.warpper .post-content .mermaid .active1,.warpper .post-content .mermaid .active2,.warpper .post-content .mermaid .active3{fill:#eee;stroke:#1a4d80}.warpper .post-content .mermaid .activeText0,.warpper .post-content .mermaid .activeText1,.warpper .post-content .mermaid .activeText2,.warpper .post-content .mermaid .activeText3{fill:#333!important}.warpper .post-content .mermaid .done0,.warpper .post-content .mermaid .done1,.warpper .post-content .mermaid .done2,.warpper .post-content .mermaid .done3{stroke:#666;fill:#bbb;stroke-width:2}.warpper .post-content .mermaid .doneText0,.warpper .post-content .mermaid .doneText1,.warpper .post-content .mermaid .doneText2,.warpper .post-content .mermaid .doneText3{fill:#333!important}.warpper .post-content .mermaid .crit0,.warpper .post-content .mermaid .crit1,.warpper .post-content .mermaid .crit2,.warpper .post-content .mermaid .crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.warpper .post-content .mermaid .activeCrit0,.warpper .post-content .mermaid .activeCrit1,.warpper .post-content .mermaid .activeCrit2,.warpper .post-content .mermaid .activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.warpper .post-content .mermaid .doneCrit0,.warpper .post-content .mermaid .doneCrit1,.warpper .post-content .mermaid .doneCrit2,.warpper .post-content .mermaid .doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.warpper .post-content .mermaid .milestone{transform:rotate(45deg)scale(0.8,0.8)}.warpper .post-content .mermaid .milestoneText{font-style:italic}.warpper .post-content .mermaid .doneCritText0,.warpper .post-content .mermaid .doneCritText1,.warpper .post-content .mermaid .doneCritText2,.warpper .post-content .mermaid .doneCritText3{fill:#333!important}.warpper .post-content .mermaid .activeCritText0,.warpper .post-content .mermaid .activeCritText1,.warpper .post-content .mermaid .activeCritText2,.warpper .post-content .mermaid .activeCritText3{fill:#333!important}.warpper .post-content .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid g.classGroup text{fill:#999;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:10px}.warpper .post-content .mermaid g.classGroup text .title{font-weight:bolder}.warpper .post-content .mermaid g.classGroup rect{fill:#eee;stroke:#999}.warpper .post-content .mermaid g.classGroup line{stroke:#999;stroke-width:1}.warpper .post-content .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:.5}.warpper .post-content .mermaid .classLabel .label{fill:#999;font-size:10px}.warpper .post-content .mermaid .relation{stroke:#999;stroke-width:1;fill:none}.warpper .post-content .mermaid #compositionStart{fill:#999;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #compositionEnd{fill:#999;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #aggregationStart{fill:#eee;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #dependencyStart{fill:#999;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #dependencyEnd{fill:#999;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #extensionStart{fill:#999;stroke:#999;stroke-width:1}.warpper .post-content .mermaid #extensionEnd{fill:#999;stroke:#999;stroke-width:1}.warpper .post-content .mermaid .commit-id,.warpper .post-content .mermaid .commit-msg,.warpper .post-content .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#333;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid .slice{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px}.warpper .post-content .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.warpper .post-content .mermaid g.stateGroup rect{fill:#eee;stroke:#999}.warpper .post-content .mermaid g.stateGroup line{stroke:#999;stroke-width:1}.warpper .post-content .mermaid .transition{stroke:#999;stroke-width:1;fill:none}.warpper .post-content .mermaid .stateGroup .composit{fill:#fff;border-bottom:1px}.warpper .post-content .mermaid .state-note{stroke:#770;fill:#ffa}.warpper .post-content .mermaid .state-note text{fill:#000;stroke:none;font-size:10px}.warpper .post-content .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:.5}.warpper .post-content .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:700;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.warpper .post-content .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .warpper .post-content .mermaid{}.dark-theme .warpper .post-content .mermaid .label{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);color:#333}.dark-theme .warpper .post-content .mermaid .label text{fill:#333}.dark-theme .warpper .post-content .mermaid .node rect,.dark-theme .warpper .post-content .mermaid .node circle,.dark-theme .warpper .post-content .mermaid .node ellipse,.dark-theme .warpper .post-content .mermaid .node polygon{fill:#bdd5ea;stroke:purple;stroke-width:1px}.dark-theme .warpper .post-content .mermaid .node .label{text-align:center}.dark-theme .warpper .post-content .mermaid .node.clickable{cursor:pointer}.dark-theme .warpper .post-content .mermaid .arrowheadPath{fill:lightgrey}.dark-theme .warpper .post-content .mermaid .edgePath .path{stroke:lightgrey;stroke-width:1.5px}.dark-theme .warpper .post-content .mermaid .edgeLabel{background-color:#e8e8e8;text-align:center}.dark-theme .warpper .post-content .mermaid .cluster rect{fill:#6d6d65;stroke:rgba(255,255,255,.25);stroke-width:1px}.dark-theme .warpper .post-content .mermaid .cluster text{fill:#f9fffe}.dark-theme .warpper .post-content .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:12px;background:#6d6d65;border:1px solid rgba(255,255,255,.25);border-radius:2px;pointer-events:none;z-index:100}.dark-theme .warpper .post-content .mermaid .actor{stroke:#81b1db;fill:#bdd5ea}.dark-theme .warpper .post-content .mermaid text.actor{fill:#000;stroke:none}.dark-theme .warpper .post-content .mermaid .actor-line{stroke:lightgrey}.dark-theme .warpper .post-content .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:lightgrey}.dark-theme .warpper .post-content .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:lightgrey}.dark-theme .warpper .post-content .mermaid #arrowhead{fill:lightgrey}.dark-theme .warpper .post-content .mermaid .sequenceNumber{fill:#fff}.dark-theme .warpper .post-content .mermaid #sequencenumber{fill:lightgrey}.dark-theme .warpper .post-content .mermaid #crosshead path{fill:lightgrey!important;stroke:lightgrey!important}.dark-theme .warpper .post-content .mermaid .messageText{fill:lightgrey;stroke:none}.dark-theme .warpper .post-content .mermaid .labelBox{stroke:#81b1db;fill:#bdd5ea}.dark-theme .warpper .post-content .mermaid .labelText{fill:#323d47;stroke:none}.dark-theme .warpper .post-content .mermaid .loopText{fill:lightgrey;stroke:none}.dark-theme .warpper .post-content .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81b1db}.dark-theme .warpper .post-content .mermaid .note{stroke:rgba(255,255,255,.25);fill:#fff5ad}.dark-theme .warpper .post-content .mermaid .noteText{fill:#000;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:14px}.dark-theme .warpper .post-content .mermaid .activation0{fill:#f4f4f4;stroke:#666}.dark-theme .warpper .post-content .mermaid .activation1{fill:#f4f4f4;stroke:#666}.dark-theme .warpper .post-content .mermaid .activation2{fill:#f4f4f4;stroke:#666}.dark-theme .warpper .post-content .mermaid .mermaid-main-font{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .section{stroke:none;opacity:.2}.dark-theme .warpper .post-content .mermaid .section0{fill:rgba(255,255,255,.3)}.dark-theme .warpper .post-content .mermaid .section2{fill:#eae8b9}.dark-theme .warpper .post-content .mermaid .section1,.dark-theme .warpper .post-content .mermaid .section3{fill:#fff;opacity:.2}.dark-theme .warpper .post-content .mermaid .sectionTitle0{fill:#f9fffe}.dark-theme .warpper .post-content .mermaid .sectionTitle1{fill:#f9fffe}.dark-theme .warpper .post-content .mermaid .sectionTitle2{fill:#f9fffe}.dark-theme .warpper .post-content .mermaid .sectionTitle3{fill:#f9fffe}.dark-theme .warpper .post-content .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .grid .tick{stroke:lightgrey;opacity:.3;shape-rendering:crispEdges}.dark-theme .warpper .post-content .mermaid .grid .tick text{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .grid path{stroke-width:0}.dark-theme .warpper .post-content .mermaid .today{fill:none;stroke:#db5757;stroke-width:2px}.dark-theme .warpper .post-content .mermaid .task{stroke-width:2}.dark-theme .warpper .post-content .mermaid .taskText{text-anchor:middle;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .taskText:not([font-size]){font-size:11px}.dark-theme .warpper .post-content .mermaid .taskTextOutsideRight{fill:#323d47;text-anchor:start;font-size:11px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .taskTextOutsideLeft{fill:#323d47;text-anchor:end;font-size:11px}.dark-theme .warpper .post-content .mermaid .task.clickable{cursor:pointer}.dark-theme .warpper .post-content .mermaid .taskText.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.dark-theme .warpper .post-content .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.dark-theme .warpper .post-content .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163!important;font-weight:700}.dark-theme .warpper .post-content .mermaid .taskText0,.dark-theme .warpper .post-content .mermaid .taskText1,.dark-theme .warpper .post-content .mermaid .taskText2,.dark-theme .warpper .post-content .mermaid .taskText3{fill:#323d47}.dark-theme .warpper .post-content .mermaid .task0,.dark-theme .warpper .post-content .mermaid .task1,.dark-theme .warpper .post-content .mermaid .task2,.dark-theme .warpper .post-content .mermaid .task3{fill:#bdd5ea;stroke:rgba(255,255,255,.5)}.dark-theme .warpper .post-content .mermaid .taskTextOutside0,.dark-theme .warpper .post-content .mermaid .taskTextOutside2{fill:lightgrey}.dark-theme .warpper .post-content .mermaid .taskTextOutside1,.dark-theme .warpper .post-content .mermaid .taskTextOutside3{fill:lightgrey}.dark-theme .warpper .post-content .mermaid .active0,.dark-theme .warpper .post-content .mermaid .active1,.dark-theme .warpper .post-content .mermaid .active2,.dark-theme .warpper .post-content .mermaid .active3{fill:#81b1db;stroke:rgba(255,255,255,.5)}.dark-theme .warpper .post-content .mermaid .activeText0,.dark-theme .warpper .post-content .mermaid .activeText1,.dark-theme .warpper .post-content .mermaid .activeText2,.dark-theme .warpper .post-content .mermaid .activeText3{fill:#323d47!important}.dark-theme .warpper .post-content .mermaid .done0,.dark-theme .warpper .post-content .mermaid .done1,.dark-theme .warpper .post-content .mermaid .done2,.dark-theme .warpper .post-content .mermaid .done3{stroke:grey;fill:lightgrey;stroke-width:2}.dark-theme .warpper .post-content .mermaid .doneText0,.dark-theme .warpper .post-content .mermaid .doneText1,.dark-theme .warpper .post-content .mermaid .doneText2,.dark-theme .warpper .post-content .mermaid .doneText3{fill:#323d47!important}.dark-theme .warpper .post-content .mermaid .crit0,.dark-theme .warpper .post-content .mermaid .crit1,.dark-theme .warpper .post-content .mermaid .crit2,.dark-theme .warpper .post-content .mermaid .crit3{stroke:#e83737;fill:#e83737;stroke-width:2}.dark-theme .warpper .post-content .mermaid .activeCrit0,.dark-theme .warpper .post-content .mermaid .activeCrit1,.dark-theme .warpper .post-content .mermaid .activeCrit2,.dark-theme .warpper .post-content .mermaid .activeCrit3{stroke:#e83737;fill:#81b1db;stroke-width:2}.dark-theme .warpper .post-content .mermaid .doneCrit0,.dark-theme .warpper .post-content .mermaid .doneCrit1,.dark-theme .warpper .post-content .mermaid .doneCrit2,.dark-theme .warpper .post-content .mermaid .doneCrit3{stroke:#e83737;fill:lightgrey;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.dark-theme .warpper .post-content .mermaid .milestone{transform:rotate(45deg)scale(0.8,0.8)}.dark-theme .warpper .post-content .mermaid .milestoneText{font-style:italic}.dark-theme .warpper .post-content .mermaid .doneCritText0,.dark-theme .warpper .post-content .mermaid .doneCritText1,.dark-theme .warpper .post-content .mermaid .doneCritText2,.dark-theme .warpper .post-content .mermaid .doneCritText3{fill:#323d47!important}.dark-theme .warpper .post-content .mermaid .activeCritText0,.dark-theme .warpper .post-content .mermaid .activeCritText1,.dark-theme .warpper .post-content .mermaid .activeCritText2,.dark-theme .warpper .post-content .mermaid .activeCritText3{fill:#323d47!important}.dark-theme .warpper .post-content .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#323d47;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid g.classGroup text{fill:purple;stroke:none;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family);font-size:10px}.dark-theme .warpper .post-content .mermaid g.classGroup text .title{font-weight:bolder}.dark-theme .warpper .post-content .mermaid g.classGroup rect{fill:#bdd5ea;stroke:purple}.dark-theme .warpper .post-content .mermaid g.classGroup line{stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#bdd5ea;opacity:.5}.dark-theme .warpper .post-content .mermaid .classLabel .label{fill:purple;font-size:10px}.dark-theme .warpper .post-content .mermaid .relation{stroke:purple;stroke-width:1;fill:none}.dark-theme .warpper .post-content .mermaid #compositionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #compositionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #aggregationStart{fill:#bdd5ea;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #aggregationEnd{fill:#bdd5ea;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #dependencyStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #dependencyEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #extensionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid #extensionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid .commit-id,.dark-theme .warpper .post-content .mermaid .commit-msg,.dark-theme .warpper .post-content .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#323d47;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid .slice{font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px}.dark-theme .warpper .post-content .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.dark-theme .warpper .post-content .mermaid g.stateGroup rect{fill:#bdd5ea;stroke:purple}.dark-theme .warpper .post-content .mermaid g.stateGroup line{stroke:purple;stroke-width:1}.dark-theme .warpper .post-content .mermaid .transition{stroke:purple;stroke-width:1;fill:none}.dark-theme .warpper .post-content .mermaid .stateGroup .composit{fill:#fff;border-bottom:1px}.dark-theme .warpper .post-content .mermaid .state-note{stroke:rgba(255,255,255,.25);fill:#fff5ad}.dark-theme .warpper .post-content .mermaid .state-note text{fill:#000;stroke:none;font-size:10px}.dark-theme .warpper .post-content .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#bdd5ea;opacity:.5}.dark-theme .warpper .post-content .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:700;font-family:trebuchet ms,verdana,arial;font-family:var(--mermaid-font-family)}.dark-theme .warpper .post-content .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .warpper .post-content .aplayer{background:#212121}.dark-theme .warpper .post-content .aplayer.aplayer-withlist .aplayer-info{border-bottom-color:#5c5c5c}.dark-theme .warpper .post-content .aplayer.aplayer-fixed .aplayer-list{border-color:#5c5c5c}.dark-theme .warpper .post-content .aplayer .aplayer-body{background-color:#212121}.dark-theme .warpper .post-content .aplayer .aplayer-info{border-top-color:#212121}.dark-theme .warpper .post-content .aplayer .aplayer-info .aplayer-music .aplayer-title{color:#fff}.dark-theme .warpper .post-content .aplayer .aplayer-info .aplayer-music .aplayer-author{color:#fff}.dark-theme .warpper .post-content .aplayer .aplayer-info .aplayer-controller .aplayer-time{color:#eee}.dark-theme .warpper .post-content .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#eee}.dark-theme .warpper .post-content .aplayer .aplayer-list{background-color:#212121}.dark-theme .warpper .post-content .aplayer .aplayer-list::-webkit-scrollbar-thumb{background-color:#999}.dark-theme .warpper .post-content .aplayer .aplayer-list::-webkit-scrollbar-thumb:hover{background-color:#bbb}.dark-theme .warpper .post-content .aplayer .aplayer-list li{color:#fff;border-top-color:#666}.dark-theme .warpper .post-content .aplayer .aplayer-list li:hover{background:#4e4e4e}.dark-theme .warpper .post-content .aplayer .aplayer-list li.aplayer-list-light{background:#6c6c6c}.dark-theme .warpper .post-content .aplayer .aplayer-list li .aplayer-list-index{color:#ddd}.dark-theme .warpper .post-content .aplayer .aplayer-list li .aplayer-list-author{color:#ddd}.dark-theme .warpper .post-content .aplayer .aplayer-lrc{text-shadow:-1px -1px 0 #666}.dark-theme .warpper .post-content .aplayer .aplayer-lrc:before{background:-moz-linear-gradient(top,#212121 0%,rgba(33,33,33,0) 100%);background:-webkit-linear-gradient(top,#212121 0%,rgba(33,33,33,0) 100%);background:linear-gradient(to bottom,#212121 0%,rgba(33,33,33,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121',endColorstr='#00212121',GradientType=0 )}.dark-theme .warpper .post-content .aplayer .aplayer-lrc:after{background:-moz-linear-gradient(top,rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%);background:-webkit-linear-gradient(top,rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%);background:linear-gradient(to bottom,rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121',endColorstr='#cc212121',GradientType=0 )}.dark-theme .warpper .post-content .aplayer .aplayer-lrc p{color:#fff}.dark-theme .warpper .post-content .aplayer .aplayer-miniswitcher{background:#484848}.dark-theme .warpper .post-content .aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#eee}.warpper .post-content .echarts{width:100%;height:30rem;margin:3% auto;text-align:center}.warpper .post-content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.warpper .post-content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.warpper .post-content hr{margin:1rem 0;position:relative;border-top:1px dashed #dcdcdc;border-bottom:none}.dark-theme .warpper .post-content hr{border-top:1px dashed #4a4b50}.warpper .post-content kbd{display:inline-block;padding:.25em;background-color:#fff;border:1px solid #dcdcdc;border-bottom-color:#dcdcdc;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #dcdcdc;box-shadow:inset 0 -1px 0 #dcdcdc;font-size:.8em;line-height:1.25rem;font-family:Source Code Pro,Consolas,Liberation Mono,Menlo,Courier,monospace;color:#e74c3c}.dark-theme .warpper .post-content kbd{background-color:#292a2d;border:1px solid #4a4b50;border-bottom-color:#4a4b50;-webkit-box-shadow:inset 0 -1px 0 #4a4b50;box-shadow:inset 0 -1px 0 #4a4b50;color:#e5bf78}.warpper .post-content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Consolas,Liberation Mono,Menlo,Courier,monospace;font-weight:700;word-break:break-all}.warpper .post-content .align-left{text-align:left}.warpper .post-content .align-center{text-align:center}.warpper .post-content .align-right{text-align:right}.warpper .post-content .float-left{float:left}.warpper .post-content .float-right{float:right}.warpper .post-footer{margin-top:3rem}.warpper .post-footer .post-info{border-bottom:1px solid #dcdcdc;padding:1rem 0 .3rem}.dark-theme .warpper .post-footer .post-info{border-bottom:1px solid #4a4b50}.warpper .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.warpper .post-footer .post-info .post-info-line .post-info-mod{font-size:.8em;color:#a9a9b3}.dark-theme .warpper .post-footer .post-info .post-info-line .post-info-mod{color:#87878d}.warpper .post-footer .post-info .post-info-line .post-info-license{font-size:.8em;color:#a9a9b3}.dark-theme .warpper .post-footer .post-info .post-info-line .post-info-license{color:#87878d}.warpper .post-footer .post-info .post-info-line .post-info-md a{font-size:.8em;color:#2d96bd}.dark-theme .warpper .post-footer .post-info .post-info-line .post-info-md a{color:#eee}.warpper .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}.dark-theme .warpper .post-footer .post-info .post-info-line .post-info-md a:hover{color:#2d96bd}.warpper .post-footer .post-info-more{padding:.3rem 0 1rem;display:flex;justify-content:space-between;font-size:.9rem}.warpper .post-footer .post-nav::before,.warpper .post-footer .post-nav::after{content:' ';display:table}.warpper .post-footer .post-nav a.prev,.warpper .post-footer .post-nav a.next{font-size:1rem;font-weight:600;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.warpper .post-footer .post-nav a.prev{float:left}.warpper .post-footer .post-nav a.prev:hover{transform:translateX(-4px)}.warpper .post-footer .post-nav a.next{float:right}.warpper .post-footer .post-nav a.next:hover{transform:translateX(4px)}.warpper .post-comment{padding:4rem 0}.warpper .home-intro{transform:translateY(0);padding:2rem 0}.warpper .home-intro .home-avatar img{width:6rem}.warpper .post{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #dcdcdc}.dark-theme .warpper .post{color:#a9a9b3;border-bottom:1px dashed #4a4b50}.warpper .post .post-featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:.6rem auto}.warpper .post .post-featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.warpper .post .post-list-title{font-size:1.6rem}.warpper .post .post-meta{font-size:.875rem!important}.warpper .post .post-meta a{color:#a9a9b3!important}.dark-theme .warpper .post .post-meta a{color:#87878d!important}.warpper .post .post-meta a:hover{color:#2d96bd!important}.dark-theme .warpper .post .post-meta a:hover{color:#fff!important}.warpper .post .post-content{padding-top:.2rem;font-size:.9rem;width:100%;max-height:7rem;overflow:hidden}.warpper .post .post-content h2,.warpper .post .post-content h3,.warpper .post .post-content h4,.warpper .post .post-content h5,.warpper .post .post-content h6{font-size:1rem;line-height:1rem;padding-top:.3rem;padding-bottom:.3rem}.warpper .post .post-content p{margin:0;padding-top:.3rem;padding-bottom:.3rem}.warpper .post .post-footer{margin-top:.5rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem!important}.warpper .post .post-footer a{color:#2d96bd!important}.dark-theme .warpper .post .post-footer a{color:#eee!important}.warpper .post .post-footer a:hover{color:#ef3982!important}.dark-theme .warpper .post .post-footer a:hover{color:#2d96bd!important}.warpper .post .post-footer .post-tags{padding:0}.warpper .post .post-footer .post-tags a{color:#161209!important}.dark-theme .warpper .post .post-footer .post-tags a{color:#a9a9b3!important}.warpper .post .post-footer .post-tags a:hover{color:#2d96bd!important}.dark-theme .warpper .post .post-footer .post-tags a:hover{color:#fff!important}.archive .post-title{text-align:right;padding-bottom:2rem}.archive .archive-item{margin-left:2rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;padding:0 2.5rem;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 .categories{width:100%;overflow:hidden}.archive .archive-item-link{display:inline-block;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:95%}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}.dark-theme .archive .archive-item-link{color:#a9a9b3;text-decoration:none;transition:color .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease}.dark-theme .archive .archive-item-link:hover{color:#fff;text-decoration:none;transition:color .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease}.archive .archive-item-date{float:right;text-align:right;color:#a9a9b3}.dark-theme .archive .archive-item-date{color:#87878d}.archive .more-post{text-align:right}.archive .categories h3{display:inline-block}.archive .categories span{float:right;padding-right:1rem}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{color:#2d96bd;transform:scale(1.1)}.dark-theme .archive .tag-cloud-tags a:active,.dark-theme .archive .tag-cloud-tags a:focus,.dark-theme .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a small{color:#a9a9b3}.dark-theme .archive .tag-cloud-tags a small{color:#fff}.single .post-title{text-align:right;padding-bottom:2rem}.navbar{display:block;position:fixed;width:100%;z-index:100;height:4rem;line-height:4rem;background-color:#fafafa}.dark-theme .navbar{background-color:#252627}.navbar .navbar-container{width:auto;text-align:center;margin:0 6rem;display:flex;justify-content:space-between}.navbar .navbar-container .navbar-header a{padding:0 8px;font-size:20px}.navbar .navbar-container .navbar-header a i{line-height:2em}.navbar .navbar-container .navbar-menu a{padding:0 8px}.navbar .navbar-container .navbar-menu a.active{font-weight:900;color:#161209}.dark-theme .navbar .navbar-container .navbar-menu a.active{color:#fff}.navbar-mobile{display:none;position:fixed;width:100%;z-index:100;transition:all .3s ease 0s}.navbar-mobile .navbar-container{padding:0;margin:0;height:4.5em;line-height:4.5em;background:#fff}.navbar-mobile .navbar-container .navbar-header{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:18px;padding-right:1em;padding-left:1em;box-sizing:border-box}.navbar-mobile .navbar-container .navbar-header .navbar-header-title{font-size:20px}.navbar-mobile .navbar-container .navbar-header .menu-toggle{cursor:pointer;line-height:4.5em}.navbar-mobile .navbar-container .navbar-header .menu-toggle span{display:block;background:#000;width:24px;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:.2s margin .2s,.2s transform;-moz-transition:.2s margin .2s,.2s transform;transition:.2s margin .2s,.2s transform}.dark-theme .navbar-mobile .navbar-container .navbar-header .menu-toggle span{background:#a9a9b3}.navbar-mobile .navbar-container .navbar-header .menu-toggle span:nth-child(1){margin-bottom:8px}.navbar-mobile .navbar-container .navbar-header .menu-toggle span:nth-child(3){margin-top:8px}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span{-webkit-transition:.2s margin,.2s transform .2s;-moz-transition:.2s margin,.2s transform .2s;transition:.2s margin,.2s transform .2s}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(1){-moz-transform:rotate(45deg)translate(4px,6px);-ms-transform:rotate(45deg)translate(4px,6px);-webkit-transform:rotate(45deg)translate(4px,6px);transform:rotate(45deg)translate(4px,6px)}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(2){opacity:0}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(3){-moz-transform:rotate(-45deg)translate(8px,-10px);-ms-transform:rotate(-45deg)translate(8px,-10px);-webkit-transform:rotate(-45deg)translate(8px,-10px);transform:rotate(-45deg)translate(8px,-10px)}.navbar-mobile .navbar-container .navbar-menu{text-align:center;background:#fff;border-top:2px solid #161209;display:none;box-shadow:0 2px 4px rgba(0,0,0,.1),0 4px 8px rgba(0,0,0,.1)}.navbar-mobile .navbar-container .navbar-menu a{display:block;line-height:2.5em}.navbar-mobile .navbar-container .navbar-menu.active{display:block}.dark-theme .navbar-mobile .navbar-container .navbar-menu{background:#292a2d;border-top:2px solid #a9a9b3}.dark-theme .navbar-mobile .navbar-container{background:#292a2d}.copyright{font-size:.875rem}.copyright .copyright-line{width:100%}.dynamic-to-top{display:none;overflow:hidden;width:auto;z-index:90;position:fixed;bottom:2rem;right:2rem;top:auto;left:auto;font-family:sans-serif;font-size:1rem;color:#fff;text-decoration:none;text-shadow:0 1px 0 #333;font-weight:700;padding:1rem;border:1px solid #dcdcdc;background:#222;outline:none}.dynamic-to-top:hover{background:#000;cursor:pointer}.dynamic-to-top:active{background:#000;outline:none}.dynamic-to-top:focus,.dynamic-to-top:hover{outline:none}.dynamic-to-top span{display:block;overflow:hidden;width:.875rem;height:.75rem;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAYAAACE2W/HAAAACXBIWXMAAArwAAAK8AFCrDSYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAKVJREFUeNqUz7ENgzAURdErUSXQMgdTZJFIqeg8DFI2YQeEvAEbUJja3y9NEiwCUXIlN/62jww7Saok3Z+r4pckXSRNWpskXb5deClHfeo7ylGrLqnbTmOMs/e+9d63McZ554GOlFLId0IIvXOuAUqgdM41IYQ+P5NSCpjZkitADRTZTwqgznUzWzCzZaMc9dbNbGEYhuuOclQB1OM43gBO/N/5MQAeMwpyB1MtLQAAAABJRU5ErkJggg==)no-repeat 50%}.dark-theme .dynamic-to-top{border:1px solid #4a4b50}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding-top:1rem}.pagination a{-webkit-font-smoothing:antialiased;font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px;text-decoration:none;transition:.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}.dark-theme .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;transition:.3s;bottom:0}.dark-theme .pagination li:before,.dark-theme .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}.dark-theme .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width:1800px){.warpper{max-width:780px}.warpper .post-toc{margin-left:800px}}@media only screen and (max-width:1300px){.warpper{max-width:560px}.warpper .post-toc{margin-left:580px}}@media only screen and (max-width:1080px){.navbar .navbar-container{margin:0 2rem}.warpper{max-width:80%}.warpper .post-toc{display:none}.warpper .post-toc-mobile{display:block}}@media only screen and (max-width:560px){.navbar{display:none}.navbar-mobile{display:block}.warpper{max-width:100%}.warpper .categories-card .card-item{width:95%}.dynamic-to-top{display:none!important}} \ No newline at end of file