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:
-rw-r--r--README.md4
-rw-r--r--README.zh-cn.md4
-rw-r--r--assets/css/_core/_base.scss15
-rw-r--r--assets/css/_mixin/_index.scss2
-rw-r--r--assets/css/_mixin/_link.scss18
-rw-r--r--assets/css/_mixin/_summary.scss (renamed from assets/css/_partial/_home/_summary.scss)48
-rw-r--r--assets/css/_page/_home.scss2
-rw-r--r--assets/css/_page/_single.scss29
-rw-r--r--assets/css/_partial/_archive/_tags.scss9
-rw-r--r--assets/css/_partial/_single/_code.scss44
-rw-r--r--assets/css/_partial/_single/_footer.scss32
-rw-r--r--assets/css/style.template.scss2
-rw-r--r--exampleSite/config.toml7
-rw-r--r--exampleSite/config/css/_override.scss4
-rw-r--r--exampleSite/content/posts/basic-markdown-syntax.en.md2
-rw-r--r--exampleSite/content/posts/basic-markdown-syntax.fr.md2
-rw-r--r--exampleSite/content/posts/basic-markdown-syntax.zh-cn.md2
-rw-r--r--exampleSite/content/posts/theme-documentation-basics.en.md51
-rw-r--r--exampleSite/content/posts/theme-documentation-basics.fr.md56
-rw-r--r--exampleSite/content/posts/theme-documentation-basics.zh-cn.md51
-rw-r--r--exampleSite/content/posts/theme-documentation-content.fr.md5
-rw-r--r--exampleSite/content/posts/theme-documentation-shortcodes.en.md66
-rw-r--r--exampleSite/content/posts/theme-documentation-shortcodes.fr.md66
-rw-r--r--exampleSite/content/posts/theme-documentation-shortcodes.zh-cn.md77
-rw-r--r--layouts/_default/summary.html4
-rw-r--r--layouts/partials/plugin/link.html5
-rw-r--r--layouts/posts/single.html4
-rw-r--r--layouts/shortcodes/link.html13
-rw-r--r--package.json1
-rw-r--r--resources/_gen/assets/scss/css/style.template.scss_90197bdac482216ecaaaae0fb88517c1.content2
30 files changed, 375 insertions, 252 deletions
diff --git a/README.md b/README.md
index e60363d..4e0d222 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
[![License](https://img.shields.io/github/license/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)
[![CircleCI](https://img.shields.io/circleci/build/github/dillonzq/LoveIt/develop?label=CI&style=flat-square&logo=circleci)](https://app.circleci.com/pipelines/github/dillonzq/LoveIt)
-English README | [中文说明](README.zh-cn.md)
+English README | [中文说明](https://github.com/dillonzq/LoveIt/blob/master/README.zh-cn.md)
**LoveIt** is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/).
@@ -14,7 +14,7 @@ It is based on the original [LeaveIt Theme](https://github.com/liuzc/LeaveIt/) a
Since the three themes have a similar look, if you have questions about their differences,
read [Why choose LoveIt](#why-choose-loveit) so that you can choose the one that works best for you.
-![Hugo Theme LoveIt](https://github.com/dillonzq/LoveIt/raw/develop/images/Apple-Devices-Preview.png)
+![Hugo Theme LoveIt](https://github.com/dillonzq/LoveIt/raw/master/images/Apple-Devices-Preview.png)
## [Demo Site](https://hugoloveit.com/)
diff --git a/README.zh-cn.md b/README.zh-cn.md
index 9beee57..9c50268 100644
--- a/README.zh-cn.md
+++ b/README.zh-cn.md
@@ -5,7 +5,7 @@
[![License](https://img.shields.io/github/license/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)
[![CircleCI](https://img.shields.io/circleci/build/github/dillonzq/LoveIt/develop?label=CI&style=flat-square&logo=circleci)](https://app.circleci.com/pipelines/github/dillonzq/LoveIt)
-[English README](README.md) | 中文说明
+[English README](https://github.com/dillonzq/LoveIt/blob/master/README.md) | 中文说明
[LoveIt](https://github.com/dillonzq/LoveIt) 是一个**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。
@@ -13,7 +13,7 @@
由于三个主题外观的相似性,如果你对于它们的不同之处有疑问,请阅读 [为什么选择 LoveIt](#为什么选择-LoveIt),以便你能选择最适合你的一个。
-![Hugo 主题 LoveIt](https://github.com/dillonzq/LoveIt/raw/develop/images/Apple-Devices-Preview.png)
+![Hugo 主题 LoveIt](https://github.com/dillonzq/LoveIt/raw/master/images/Apple-Devices-Preview.png)
## 主题[预览](https://hugoloveit.com/zh-cn/)
diff --git a/assets/css/_core/_base.scss b/assets/css/_core/_base.scss
index 5f8070d..1663c1c 100644
--- a/assets/css/_core/_base.scss
+++ b/assets/css/_core/_base.scss
@@ -60,20 +60,9 @@ body {
}
a {
- color: $global-link-color;
text-decoration: none;
-
- &:hover {
- color: $global-link-hover-color;
- }
-
- .dark-theme & {
- color: $global-link-color-dark;
-
- &:hover {
- color: $global-link-hover-color-dark;
- }
- }
}
+@include link(true, true);
+
@import "../_partial/fixed-button";
diff --git a/assets/css/_mixin/_index.scss b/assets/css/_mixin/_index.scss
new file mode 100644
index 0000000..34ffd18
--- /dev/null
+++ b/assets/css/_mixin/_index.scss
@@ -0,0 +1,2 @@
+@import "_link";
+@import "_summary";
diff --git a/assets/css/_mixin/_link.scss b/assets/css/_mixin/_link.scss
new file mode 100644
index 0000000..057949f
--- /dev/null
+++ b/assets/css/_mixin/_link.scss
@@ -0,0 +1,18 @@
+@mixin link($light, $dark) {
+ a {
+ color: if($light, $global-link-color, $single-link-color);
+
+ .dark-theme & {
+ color: if($dark, $global-link-color-dark, $single-link-color-dark);
+ }
+
+ &:active,
+ &:hover {
+ color: if($light, $global-link-hover-color, $single-link-hover-color);
+
+ .dark-theme & {
+ color: if($dark, $global-link-hover-color-dark, $single-link-hover-color-dark);
+ }
+ }
+ }
+}
diff --git a/assets/css/_partial/_home/_summary.scss b/assets/css/_mixin/_summary.scss
index f216e64..82b28dc 100644
--- a/assets/css/_partial/_home/_summary.scss
+++ b/assets/css/_mixin/_summary.scss
@@ -90,21 +90,7 @@
}
}
- a {
- color: $global-link-color;
-
- .dark-theme & {
- color: $global-link-color-dark;
- }
-
- &:hover {
- color: $global-link-hover-color;
-
- .dark-theme & {
- color: $global-link-hover-color-dark;
- }
- }
- }
+ @include link(true, true);
b, strong {
.dark-theme & {
@@ -120,40 +106,12 @@
align-items: center;
font-size: .875rem;
- a {
- color: $single-link-color;
-
- .dark-theme & {
- color: $single-link-color-dark;
- }
-
- &:hover {
- color: $single-link-hover-color;
-
- .dark-theme & {
- color: $single-link-hover-color-dark;
- }
- }
- }
+ @include link(false, false);
.post-tags {
padding: 0;
- a {
- color: $global-link-color;
-
- .dark-theme & {
- color: $global-link-color-dark;
- }
-
- &:hover {
- color: $global-link-hover-color;
-
- .dark-theme & {
- color: $global-link-hover-color-dark;
- }
- }
- }
+ @include link(true, true);
}
}
}
diff --git a/assets/css/_page/_home.scss b/assets/css/_page/_home.scss
index ff0d475..3e74bab 100644
--- a/assets/css/_page/_home.scss
+++ b/assets/css/_page/_home.scss
@@ -1,6 +1,4 @@
/** Home **/
-@import "../_partial/_home/summary";
-
@mixin page-home($profile, $posts) {
.home {
@if $profile {
diff --git a/assets/css/_page/_single.scss b/assets/css/_page/_single.scss
index ff554cd..a19c47d 100644
--- a/assets/css/_page/_single.scss
+++ b/assets/css/_page/_single.scss
@@ -26,21 +26,7 @@
color: $global-font-secondary-color-dark;
}
- a {
- color: $single-link-color;
-
- .dark-theme & {
- color: $global-link-color-dark;
- }
-
- &:hover {
- color: $single-link-hover-color;
-
- .dark-theme & {
- color: $global-link-hover-color-dark;
- }
- }
- }
+ @include link(false, true);
.author {
font-size: 1.05rem;
@@ -102,22 +88,19 @@
}
}
+ @include link(false, false);
+
a {
word-break: break-all;
word-break: break-word;
- color: $single-link-color;
- .dark-theme &, .dark-theme & b, .dark-theme & strong {
+ .dark-theme & b, .dark-theme & strong {
color: $single-link-color-dark;
}
}
- a:hover {
- color: $single-link-hover-color;
-
- .dark-theme &, .dark-theme & b, .dark-theme & strong {
- color: $single-link-hover-color-dark;
- }
+ .dark-theme a:hover b, .dark-theme a:hover strong {
+ color: $single-link-hover-color-dark;
}
ul {
diff --git a/assets/css/_partial/_archive/_tags.scss b/assets/css/_partial/_archive/_tags.scss
index 1870a77..ca38fde 100644
--- a/assets/css/_partial/_archive/_tags.scss
+++ b/assets/css/_partial/_archive/_tags.scss
@@ -1,6 +1,8 @@
.tag-cloud-tags {
margin: 10px 0;
+ @include link(true, true);
+
a {
display: inline-block;
position: relative;
@@ -14,23 +16,18 @@
&:active,
&:focus,
&:hover {
- color: $global-link-hover-color;
-webkit-transform: scale(1.2);
-moz-transform: scale(1.2);
-ms-transform: scale(1.2);
-o-transform: scale(1.2);
transform: scale(1.2);
-
- .dark-theme & {
- color: $global-link-hover-color-dark;
- }
}
small {
color: $global-font-secondary-color;
.dark-theme & {
- color: $global-link-hover-color-dark;
+ color: $global-font-secondary-color-dark;
}
}
}
diff --git a/assets/css/_partial/_single/_code.scss b/assets/css/_partial/_single/_code.scss
index 0e37869..19df2c5 100644
--- a/assets/css/_partial/_single/_code.scss
+++ b/assets/css/_partial/_single/_code.scss
@@ -46,23 +46,12 @@ code, pre, .highlight table, .highlight tr, .highlight td {
}
}
- .lntd {
- &:first-child {
- width: 1.2rem;
-
- /* LineNumbersTable */
- .lnt {
- color: $code-info-color;
- }
-
- /* LineHighlight */
- .hl {
- font-weight: bolder;
- }
- }
+ .ln {
+ padding-right: .8rem;
+ }
+ .lntd {
&:last-child {
- /* LineHighlight */
.hl {
display: block;
background-color: darken($code-background-color, 5%);
@@ -73,6 +62,14 @@ code, pre, .highlight table, .highlight tr, .highlight td {
}
}
}
+
+ .ln, .lnt {
+ color: $global-font-secondary-color;
+
+ .dark-theme & {
+ color: $global-font-secondary-color-dark;
+ }
+ }
}
.highlight {
@@ -103,6 +100,7 @@ code, pre, .highlight table, .highlight tr, .highlight td {
table, tr, td {
margin: 0;
border: none !important;
+ white-space: nowrap;
}
td {
@@ -119,21 +117,7 @@ code, pre, .highlight table, .highlight tr, .highlight td {
padding: .4rem .8rem;
background-color: darken($code-background-color, 5%);
- a {
- color: $single-link-color;
-
- .dark-theme & {
- color: $single-link-color-dark;
- }
- }
-
- a:hover {
- color: $single-link-hover-color;
-
- .dark-theme &:hover {
- color: $single-link-hover-color-dark;
- }
- }
+ @include link(false, false);
.dark-theme & {
background-color: darken($code-background-color-dark, 5%);
diff --git a/assets/css/_partial/_single/_footer.scss b/assets/css/_partial/_single/_footer.scss
index 451d9c2..3cadeff 100644
--- a/assets/css/_partial/_single/_footer.scss
+++ b/assets/css/_partial/_single/_footer.scss
@@ -21,21 +21,7 @@
color: $global-font-secondary-color-dark;
}
- a {
- color: $single-link-color;
-
- .dark-theme & {
- color: $single-link-color-dark;
- }
-
- &:hover {
- color: $single-link-hover-color;
-
- .dark-theme & {
- color: $single-link-hover-color-dark;
- }
- }
- }
+ @include link(false, false);
}
.post-info-license {
@@ -51,21 +37,7 @@
font-size: 0.8rem;
width: 8rem;
- a {
- color: $single-link-color;
-
- .dark-theme & {
- color: $single-link-color-dark;
- }
-
- &:hover {
- color: $single-link-hover-color;
-
- .dark-theme & {
- color: $single-link-hover-color-dark;
- }
- }
- }
+ @include link(false, false);
}
}
}
diff --git a/assets/css/style.template.scss b/assets/css/style.template.scss
index c9799fd..9794b20 100644
--- a/assets/css/style.template.scss
+++ b/assets/css/style.template.scss
@@ -11,6 +11,8 @@ $header-normal-mode-mobile: {{ if eq .Site.Params.header.mobileMode "normal" }}t
@import "_override";
{{- end -}}
+@import "_mixin/index";
+
@import "_core/normalize";
@import "_core/base";
@import "_core/layout";
diff --git a/exampleSite/config.toml b/exampleSite/config.toml
index 719d818..4d506ad 100644
--- a/exampleSite/config.toml
+++ b/exampleSite/config.toml
@@ -835,12 +835,11 @@ enableEmoji = true
[markup.highlight]
codeFences = true
guessSyntax = true
- lineNoStart = 1
lineNos = true
- lineNumbersInTable = true
+ lineNumbersInTable = false
+ # false is a necessary configuration (https://github.com/dillonzq/LoveIt/issues/158)
+ # false 是必要的设置 (https://github.com/dillonzq/LoveIt/issues/158)
noClasses = false
- style = "monokai"
- tabWidth = 4
# Goldmark is from Hugo 0.60 the default library used for Markdown
# Goldmark 是 Hugo 0.60 以来的默认 Markdown 解析库
[markup.goldmark]
diff --git a/exampleSite/config/css/_override.scss b/exampleSite/config/css/_override.scss
index aee416b..e9da43c 100644
--- a/exampleSite/config/css/_override.scss
+++ b/exampleSite/config/css/_override.scss
@@ -3,6 +3,6 @@
// 覆盖变量
// ==============================
-@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@500&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap');
-$header-title-font-family: 'Baloo 2', $global-font-family;
+$header-title-font-family: 'Nunito', $global-font-family;
diff --git a/exampleSite/content/posts/basic-markdown-syntax.en.md b/exampleSite/content/posts/basic-markdown-syntax.en.md
index df5ce48..9b7e4bc 100644
--- a/exampleSite/content/posts/basic-markdown-syntax.en.md
+++ b/exampleSite/content/posts/basic-markdown-syntax.en.md
@@ -641,7 +641,7 @@ The rendered output looks like this:
| ext | extension to be used for dest files. |
{{< /admonition >}}
-## 11 Links
+## 11 Links {#links}
### Basic Link
diff --git a/exampleSite/content/posts/basic-markdown-syntax.fr.md b/exampleSite/content/posts/basic-markdown-syntax.fr.md
index dfc49e4..410a4b6 100644
--- a/exampleSite/content/posts/basic-markdown-syntax.fr.md
+++ b/exampleSite/content/posts/basic-markdown-syntax.fr.md
@@ -648,7 +648,7 @@ The rendered output looks like this:
## 11 Links
-### Basic Link
+### Basic Link {#links}
```markdown
<https://assemble.io>
diff --git a/exampleSite/content/posts/basic-markdown-syntax.zh-cn.md b/exampleSite/content/posts/basic-markdown-syntax.zh-cn.md
index 4bff6d5..5ba2755 100644
--- a/exampleSite/content/posts/basic-markdown-syntax.zh-cn.md
+++ b/exampleSite/content/posts/basic-markdown-syntax.zh-cn.md
@@ -643,7 +643,7 @@ grunt.initConfig({
| ext | extension to be used for dest files. |
{{< /admonition >}}
-## 11 链接
+## 11 链接 {#links}
### 基本链接
diff --git a/exampleSite/content/posts/theme-documentation-basics.en.md b/exampleSite/content/posts/theme-documentation-basics.en.md
index bb71fbd..e5eb648 100644
--- a/exampleSite/content/posts/theme-documentation-basics.en.md
+++ b/exampleSite/content/posts/theme-documentation-basics.en.md
@@ -205,7 +205,7 @@ Note that some of these parameters are explained in details in other sections of
# 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 = '<a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank">CC BY-NC 4.0</a>'
# Home Page Info
[params.home]
# Home Page Profile
@@ -304,7 +304,7 @@ Note that some of these parameters are explained in details in other sections of
lightgallery = true
# whether to show link to Raw Markdown content of the post
linkToMarkdown = true
- # mathematical formulas (KaTeX https://katex.org/)
+ # {{< link "https://katex.org/" KaTeX >}} mathematical formulas
[params.math]
enable = true
# default block delimiter is $$ ... $$ and \\[ ... \\]
@@ -350,13 +350,13 @@ Note that some of these parameters are explained in details in other sections of
# Comment Config
[params.comment]
enable = true
- # Disqus Comment Config (https://disqus.com/)
+ # {{< link "https://disqus.com/" Disqus >}} Comment Config
[params.comment.disqus]
# {{< version 0.1.1 >}}
enable = false
# Disqus shortname to use Disqus in posts
shortname = ""
- # Gitalk Comment Config (https://github.com/gitalk/gitalk)
+ # {{< link "https://github.com/gitalk/gitalk" Gitalk >}} Comment Config
[params.comment.gitalk]
# {{< version 0.1.1 >}}
enable = false
@@ -364,7 +364,7 @@ Note that some of these parameters are explained in details in other sections of
repo = ""
clientId = ""
clientSecret = ""
- # Valine Comment Config (https://github.com/xCss/Valine)
+ # {{< link "https://github.com/xCss/Valine" Valine >}} Comment Config
[params.comment.valine]
enable = false
appId = ""
@@ -378,7 +378,7 @@ Note that some of these parameters are explained in details in other sections of
lang = "en"
visitor = true
recordIP = true
- # Facebook Comment Config (https://developers.facebook.com/docs/plugins/comments)
+ # {{< link "https://developers.facebook.com/docs/plugins/comments" "Facebook Comment" >}} Config
[params.comment.facebook]
enable = false
width = "100%"
@@ -412,58 +412,57 @@ Note that some of these parameters are explained in details in other sections of
height = 600
# CSS and JS Files CDN
[params.cdn]
- # fontawesome-free@5.12.1 https://fontawesome.com/
+ # {{< link "https://fontawesome.com/" "fontawesome-free" >}}@5.12.1
fontawesomeFreeCSS = ''
# animate.css@3.7.2 https://github.com/daneden/animate.css
animateCSS = ''
- # smooth-scroll@16.1.2 https://github.com/cferdinandi/smooth-scroll
+ # {{< link "https://github.com/cferdinandi/smooth-scroll" "smooth-scroll" >}}@16.1.2
smoothScrollJS = ''
- # sharer@0.4.0 https://github.com/ellisonleao/sharer.js
+ # {{< link "https://github.com/ellisonleao/sharer.js" "sharer" >}}@0.4.0
sharerJS = ''
- # lazysizes@5.2.0 https://github.com/aFarkas/lazysizes
+ # {{< link "https://github.com/aFarkas/lazysizes" "lazysizes" >}}@5.2.0
lazysizesJS = ''
- # lightgallery@1.1.3 lg-thumbnail@1.1.0 lg-zoom@1.1.0 https://github.com/sachinchoolur/lightgallery.js
+ # {{< link "https://github.com/sachinchoolur/lightgallery.js" "lightgallery" >}}@1.1.3 lg-thumbnail@1.1.0 lg-zoom@1.1.0
lightgalleryCSS = ''
lightgalleryJS = ''
lightgalleryThumbnailJS = ''
lightgalleryZoomJS = ''
- # typeit@6.5.1 https://github.com/alexmacarthur/typeit
+ # {{< link "https://github.com/alexmacarthur/typeit" "typeit" >}}@6.5.1
typeitJS = ''
- # katex@0.11.1 https://github.com/KaTeX/KaTeX
+ # {{< link "https://github.com/KaTeX/KaTeX" "katex" >}}@0.11.1
katexCSS = ''
katexJS = ''
katexAutoRenderJS = ''
katexCopyTexCSS = ''
katexCopyTexJS = ''
katexMhchemJS = ''
- # mermaid@8.4.8 https://github.com/knsv/mermaid
+ # {{< link "https://github.com/knsv/mermaid" "mermaid" >}}@8.4.8
mermaidJS = ''
- # aplayer@1.10.1 https://github.com/MoePlayer/APlayer
+ # {{< link "https://github.com/MoePlayer/APlayer" "aplayer" >}}@1.10.1
aplayerCSS = ''
aplayerJS = ''
- # meting@2.0.1 https://github.com/metowolf/MetingJS
+ # {{< link "https://github.com/metowolf/MetingJS" "meting" >}}@2.0.1
metingJS = ''
- # echarts@4.6.0 https://echarts.apache.org/
+ # {{< link "https://echarts.apache.org/" "echarts" >}}@4.6.0
echartsJS = ''
echartsMacaronsJS = ''
- # gitalk@1.6.2 https://github.com/gitalk/gitalk
+ # {{< link "https://github.com/gitalk/gitalk" "gitalk" >}}@1.6.2
gitalkCSS = ''
gitalkJS = ''
- # valine@1.3.10 https://valine.js.org/
+ # {{< link "https://valine.js.org/" "valine" >}}@1.3.10
valineJS = ''
# Markup related configuration in Hugo
[markup]
- # Syntax Highlighting (https://gohugo.io/content-management/syntax-highlighting)
+ # {{< link "https://gohugo.io/content-management/syntax-highlighting" "Syntax Highlighting" >}}
[markup.highlight]
codeFences = true
guessSyntax = true
- lineNoStart = 1
lineNos = true
- lineNumbersInTable = true
+ lineNumbersInTable = false
+ # false is a necessary configuration
+ # ({{< link "https://github.com/dillonzq/LoveIt/issues/158" >}})
noClasses = false
- style = "monokai"
- tabWidth = 4
# Goldmark is from Hugo 0.60 the default library used for Markdown
[markup.goldmark]
[markup.goldmark.extensions]
@@ -493,12 +492,12 @@ Note that some of these parameters are explained in details in other sections of
filename = "sitemap.xml"
priority = 0.5
-# Permalinks Info (https://gohugo.io/content-management/urls/#permalinks)
+# {{< link "https://gohugo.io/content-management/urls/#permalinks" "Permalinks Info" >}}
[Permalinks]
# posts = ":year/:month/:filename"
posts = ":filename"
-# Privacy Info (https://gohugo.io/about/hugo-and-gdpr/)
+# {{< link "https://gohugo.io/about/hugo-and-gdpr/" "Privacy Info" >}}
[privacy]
[privacy.googleAnalytics]
anonymizeIP = true
diff --git a/exampleSite/content/posts/theme-documentation-basics.fr.md b/exampleSite/content/posts/theme-documentation-basics.fr.md
index a980b2e..e18c76e 100644
--- a/exampleSite/content/posts/theme-documentation-basics.fr.md
+++ b/exampleSite/content/posts/theme-documentation-basics.fr.md
@@ -31,6 +31,11 @@ Découvrez en quoi consiste le thème Hugo - **LoveIt** et les concepts fondamen
<!--more-->
+{{< admonition warning >}}
+Sorry, this article has not been completely translated into **French**.
+Welcome to take the time to propose a translation by [making a PR](https://github.com/dillonzq/LoveIt/pulls) to the theme!
+{{< /admonition >}}
+
## 1 Requirements
Thanks to the simplicity of Hugo, [Hugo](https://gohugo.io/) is the only dependency of this theme.
@@ -205,7 +210,7 @@ Note that some of these parameters are explained in details in other sections of
# 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 = '<a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank">CC BY-NC 4.0</a>'
# Home Page Info
[params.home]
# Home Page Profile
@@ -304,7 +309,7 @@ Note that some of these parameters are explained in details in other sections of
lightgallery = true
# whether to show link to Raw Markdown content of the post
linkToMarkdown = true
- # mathematical formulas (KaTeX https://katex.org/)
+ # {{< link "https://katex.org/" KaTeX >}} mathematical formulas
[params.math]
enable = true
# default block delimiter is $$ ... $$ and \\[ ... \\]
@@ -350,13 +355,13 @@ Note that some of these parameters are explained in details in other sections of
# Comment Config
[params.comment]
enable = true
- # Disqus Comment Config (https://disqus.com/)
+ # {{< link "https://disqus.com/" Disqus >}} Comment Config
[params.comment.disqus]
# {{< version 0.1.1 >}}
enable = false
# Disqus shortname to use Disqus in posts
shortname = ""
- # Gitalk Comment Config (https://github.com/gitalk/gitalk)
+ # {{< link "https://github.com/gitalk/gitalk" Gitalk >}} Comment Config
[params.comment.gitalk]
# {{< version 0.1.1 >}}
enable = false
@@ -364,7 +369,7 @@ Note that some of these parameters are explained in details in other sections of
repo = ""
clientId = ""
clientSecret = ""
- # Valine Comment Config (https://github.com/xCss/Valine)
+ # {{< link "https://github.com/xCss/Valine" Valine >}} Comment Config
[params.comment.valine]
enable = false
appId = ""
@@ -378,7 +383,7 @@ Note that some of these parameters are explained in details in other sections of
lang = "en"
visitor = true
recordIP = true
- # Facebook Comment Config (https://developers.facebook.com/docs/plugins/comments)
+ # {{< link "https://developers.facebook.com/docs/plugins/comments" "Facebook Comment" >}} Config
[params.comment.facebook]
enable = false
width = "100%"
@@ -412,58 +417,57 @@ Note that some of these parameters are explained in details in other sections of
height = 600
# CSS and JS Files CDN
[params.cdn]
- # fontawesome-free@5.12.1 https://fontawesome.com/
+ # {{< link "https://fontawesome.com/" "fontawesome-free" >}}@5.12.1
fontawesomeFreeCSS = ''
# animate.css@3.7.2 https://github.com/daneden/animate.css
animateCSS = ''
- # smooth-scroll@16.1.2 https://github.com/cferdinandi/smooth-scroll
+ # {{< link "https://github.com/cferdinandi/smooth-scroll" "smooth-scroll" >}}@16.1.2
smoothScrollJS = ''
- # sharer@0.4.0 https://github.com/ellisonleao/sharer.js
+ # {{< link "https://github.com/ellisonleao/sharer.js" "sharer" >}}@0.4.0
sharerJS = ''
- # lazysizes@5.2.0 https://github.com/aFarkas/lazysizes
+ # {{< link "https://github.com/aFarkas/lazysizes" "lazysizes" >}}@5.2.0
lazysizesJS = ''
- # lightgallery@1.1.3 lg-thumbnail@1.1.0 lg-zoom@1.1.0 https://github.com/sachinchoolur/lightgallery.js
+ # {{< link "https://github.com/sachinchoolur/lightgallery.js" "lightgallery" >}}@1.1.3 lg-thumbnail@1.1.0 lg-zoom@1.1.0
lightgalleryCSS = ''
lightgalleryJS = ''
lightgalleryThumbnailJS = ''
lightgalleryZoomJS = ''
- # typeit@6.5.1 https://github.com/alexmacarthur/typeit
+ # {{< link "https://github.com/alexmacarthur/typeit" "typeit" >}}@6.5.1
typeitJS = ''
- # katex@0.11.1 https://github.com/KaTeX/KaTeX
+ # {{< link "https://github.com/KaTeX/KaTeX" "katex" >}}@0.11.1
katexCSS = ''
katexJS = ''
katexAutoRenderJS = ''
katexCopyTexCSS = ''
katexCopyTexJS = ''
katexMhchemJS = ''
- # mermaid@8.4.8 https://github.com/knsv/mermaid
+ # {{< link "https://github.com/knsv/mermaid" "mermaid" >}}@8.4.8
mermaidJS = ''
- # aplayer@1.10.1 https://github.com/MoePlayer/APlayer
+ # {{< link "https://github.com/MoePlayer/APlayer" "aplayer" >}}@1.10.1
aplayerCSS = ''
aplayerJS = ''
- # meting@2.0.1 https://github.com/metowolf/MetingJS
+ # {{< link "https://github.com/metowolf/MetingJS" "meting" >}}@2.0.1
metingJS = ''
- # echarts@4.6.0 https://echarts.apache.org/
+ # {{< link "https://echarts.apache.org/" "echarts" >}}@4.6.0
echartsJS = ''
echartsMacaronsJS = ''
- # gitalk@1.6.2 https://github.com/gitalk/gitalk
+ # {{< link "https://github.com/gitalk/gitalk" "gitalk" >}}@1.6.2
gitalkCSS = ''
gitalkJS = ''
- # valine@1.3.10 https://valine.js.org/
+ # {{< link "https://valine.js.org/" "valine" >}}@1.3.10
valineJS = ''
# Markup related configuration in Hugo
[markup]
- # Syntax Highlighting (https://gohugo.io/content-management/syntax-highlighting)
+ # {{< link "https://gohugo.io/content-management/syntax-highlighting" "Syntax Highlighting" >}}
[markup.highlight]
codeFences = true
guessSyntax = true
- lineNoStart = 1
lineNos = true
- lineNumbersInTable = true
+ lineNumbersInTable = false
+ # false is a necessary configuration
+ # ({{< link "https://github.com/dillonzq/LoveIt/issues/158" >}})
noClasses = false
- style = "monokai"
- tabWidth = 4
# Goldmark is from Hugo 0.60 the default library used for Markdown
[markup.goldmark]
[markup.goldmark.extensions]
@@ -493,12 +497,12 @@ Note that some of these parameters are explained in details in other sections of
filename = "sitemap.xml"
priority = 0.5
-# Permalinks Info (https://gohugo.io/content-management/urls/#permalinks)
+# {{< link "https://gohugo.io/content-management/urls/#permalinks" "Permalinks Info" >}}
[Permalinks]
# posts = ":year/:month/:filename"
posts = ":filename"
-# Privacy Info (https://gohugo.io/about/hugo-and-gdpr/)
+# {{< link "https://gohugo.io/about/hugo-and-gdpr/" "Privacy Info" >}}
[privacy]
[privacy.googleAnalytics]
anonymizeIP = true
diff --git a/exampleSite/content/posts/theme-documentation-basics.zh-cn.md b/exampleSite/content/posts/theme-documentation-basics.zh-cn.md
index 3806657..08de73b 100644
--- a/exampleSite/content/posts/theme-documentation-basics.zh-cn.md
+++ b/exampleSite/content/posts/theme-documentation-basics.zh-cn.md
@@ -208,7 +208,7 @@ hugo
# ICP 备案信息,仅在中国使用 (允许使用 HTML 格式)
icp = ""
# 许可协议信息 (允许使用 HTML 格式)
- 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 = '<a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank">CC BY-NC 4.0</a>'
# 文章页面配置
[params.home]
# 主页信息设置
@@ -306,7 +306,7 @@ hugo
lightgallery = true
# 是否在文章页面显示原始 Markdown 文档链接
linkToMarkdown = true
- # 数学公式 (KaTeX https://katex.org/)
+ # {{< link "https://katex.org/" KaTeX >}} 数学公式
[params.math]
enable = true
# 默认块定界符是 $$ ... $$ 和 \\[ ... \\]
@@ -352,13 +352,13 @@ hugo
# 评论系统设置
[params.comment]
enable = true
- # Disqus 评论系统设置 (https://disqus.com/)
+ # {{< link "https://disqus.com/" Disqus >}} 评论系统设置
[params.comment.disqus]
# {{< version 0.1.1 >}}
enable = false
# Disqus 的 shortname,用来在文章中启用 Disqus 评论系统
shortname = ""
- # Gitalk 评论系统设置 (https://github.com/gitalk/gitalk)
+ # {{< link "https://github.com/gitalk/gitalk" Gitalk >}} 评论系统设置
[params.comment.gitalk]
# {{< version 0.1.1 >}}
enable = false
@@ -366,7 +366,7 @@ hugo
repo = ""
clientId = ""
clientSecret = ""
- # Valine 评论系统设置 (https://github.com/xCss/Valine)
+ # {{< link "https://github.com/xCss/Valine" Valine >}} 评论系统设置
[params.comment.valine]
enable = false
appId = ""
@@ -380,7 +380,7 @@ hugo
lang = "en"
visitor = true
recordIP = true
- # Facebook 评论系统设置 (https://developers.facebook.com/docs/plugins/comments)
+ # # {{< link "https://developers.facebook.com/docs/plugins/comments" "Facebook 评论系统" >}}设置
[params.comment.facebook]
enable = false
width = "100%"
@@ -414,58 +414,57 @@ hugo
height = 600
# CSS 和 JS 文件的 CDN 设置
[params.cdn]
- # fontawesome-free@5.12.1 https://fontawesome.com/
+ # {{< link "https://fontawesome.com/" "fontawesome-free" >}}@5.12.1
fontawesomeFreeCSS = ''
# animate.css@3.7.2 https://github.com/daneden/animate.css
animateCSS = ''
- # smooth-scroll@16.1.2 https://github.com/cferdinandi/smooth-scroll
+ # {{< link "https://github.com/cferdinandi/smooth-scroll" "smooth-scroll" >}}@16.1.2
smoothScrollJS = ''
- # sharer@0.4.0 https://github.com/ellisonleao/sharer.js
+ # {{< link "https://github.com/ellisonleao/sharer.js" "sharer" >}}@0.4.0
sharerJS = ''
- # lazysizes@5.2.0 https://github.com/aFarkas/lazysizes
+ # {{< link "https://github.com/aFarkas/lazysizes" "lazysizes" >}}@5.2.0
lazysizesJS = ''
- # lightgallery@1.1.3 lg-thumbnail@1.1.0 lg-zoom@1.1.0 https://github.com/sachinchoolur/lightgallery.js
+ # {{< link "https://github.com/sachinchoolur/lightgallery.js" "lightgallery" >}}@1.1.3 lg-thumbnail@1.1.0 lg-zoom@1.1.0
lightgalleryCSS = ''
lightgalleryJS = ''
lightgalleryThumbnailJS = ''
lightgalleryZoomJS = ''
- # typeit@6.5.1 https://github.com/alexmacarthur/typeit
+ # {{< link "https://github.com/alexmacarthur/typeit" "typeit" >}}@6.5.1
typeitJS = ''
- # katex@0.11.1 https://github.com/KaTeX/KaTeX
+ # {{< link "https://github.com/KaTeX/KaTeX" "katex" >}}@0.11.1
katexCSS = ''
katexJS = ''
katexAutoRenderJS = ''
katexCopyTexCSS = ''
katexCopyTexJS = ''
katexMhchemJS = ''
- # mermaid@8.4.8 https://github.com/knsv/mermaid
+ # {{< link "https://github.com/knsv/mermaid" "mermaid" >}}@8.4.8
mermaidJS = ''
- # aplayer@1.10.1 https://github.com/MoePlayer/APlayer
+ # {{< link "https://github.com/MoePlayer/APlayer" "aplayer" >}}@1.10.1
aplayerCSS = ''
aplayerJS = ''
- # meting@2.0.1 https://github.com/metowolf/MetingJS
+ # {{< link "https://github.com/metowolf/MetingJS" "meting" >}}@2.0.1
metingJS = ''
- # echarts@4.6.0 https://echarts.apache.org/
+ # {{< link "https://echarts.apache.org/" "echarts" >}}@4.6.0
echartsJS = ''
echartsMacaronsJS = ''
- # gitalk@1.6.2 https://github.com/gitalk/gitalk
+ # {{< link "https://github.com/gitalk/gitalk" "gitalk" >}}@1.6.2
gitalkCSS = ''
gitalkJS = ''
- # valine@1.3.10 https://valine.js.org/
+ # {{< link "https://valine.js.org/" "valine" >}}@1.3.10
valineJS = ''
# Hugo 解析文档的配置
[markup]
- # 语法高亮设置 (https://gohugo.io/content-management/syntax-highlighting)
+ # {{< link "https://gohugo.io/content-management/syntax-highlighting" "语法高亮设置" >}}
[markup.highlight]
codeFences = true
guessSyntax = true
- lineNoStart = 1
lineNos = true
- lineNumbersInTable = true
+ lineNumbersInTable = false
+ # false 是必要的设置
+ # ({{< link "https://github.com/dillonzq/LoveIt/issues/158" >}})
noClasses = false
- style = "monokai"
- tabWidth = 4
# Goldmark 是 Hugo 0.60 以来的默认 Markdown 解析库
[markup.goldmark]
[markup.goldmark.extensions]
@@ -495,12 +494,12 @@ hugo
filename = "sitemap.xml"
priority = 0.5
-# Permalinks 信息 (https://gohugo.io/content-management/urls/#permalinks)
+# {{< link "https://gohugo.io/content-management/urls/#permalinks" "Permalinks 信息" >}}
[Permalinks]
# posts = ":year/:month/:filename"
posts = ":filename"
-# 隐私信息设置 (https://gohugo.io/about/hugo-and-gdpr/)
+# {{< link "https://gohugo.io/about/hugo-and-gdpr/" "隐私信息设置" >}}
[privacy]
[privacy.googleAnalytics]
anonymizeIP = true
diff --git a/exampleSite/content/posts/theme-documentation-content.fr.md b/exampleSite/content/posts/theme-documentation-content.fr.md
index 149499b..1a635ab 100644
--- a/exampleSite/content/posts/theme-documentation-content.fr.md
+++ b/exampleSite/content/posts/theme-documentation-content.fr.md
@@ -31,6 +31,11 @@ Découvrez comment créer et organiser votre contenu rapidement et intuitivement
<!--more-->
+{{< admonition warning >}}
+Sorry, this article has not been completely translated into **French**.
+Welcome to take the time to propose a translation by [making a PR](https://github.com/dillonzq/LoveIt/pulls) to the theme!
+{{< /admonition >}}
+
## 1 Contents Organization
A few suggestions to help you get a good looking site quickly:
diff --git a/exampleSite/content/posts/theme-documentation-shortcodes.en.md b/exampleSite/content/posts/theme-documentation-shortcodes.en.md
index 52a3c69..2ad2999 100644
--- a/exampleSite/content/posts/theme-documentation-shortcodes.en.md
+++ b/exampleSite/content/posts/theme-documentation-shortcodes.en.md
@@ -217,6 +217,72 @@ The rendered output looks like this:
This is a right-aligned paragraph.
{{< /style >}}
+### `link`
+
+{{< admonition >}}
+{{< version 1.2.0 >}}
+{{< /admonition >}}
+
+`link` shortcode is an alternative to [Markdown link syntax](../basic-markdown-syntax/#links). `link` shortcode can provide some other features and can be used in code blocks.
+
+The `link` shortcode can use the following named parameters:
+
+* **href**
+
+ Destination of the link.
+
+* **content**
+
+ Content of the link (HTML format is allowed).
+
+* **title**
+
+ `title` attribute of the HTML `a` tag, which will be shown when hovering on the link.
+
+* **rel**
+
+ Additional `rel` attributes of the HTML `a` tag.
+
+* **class**
+
+ `class` attribute of the HTML `a` tag.
+
+#### Basic `link`
+
+Example basic `link` Input:
+
+```markdown
+{{</* link "https://assemble.io" */>}}
+Or
+{{</* link href="https://assemble.io" */>}}
+
+{{</* link "mailto:contact@revolunet.com" */>}}
+Or
+{{</* link href="mailto:contact@revolunet.com" */>}}
+
+{{</* link "https://assemble.io" Assemble */>}}
+Or
+{{</* link href="https://assemble.io" content=Assemble */>}}
+```
+
+The rendered output looks like this:
+
+* {{< link "https://assemble.io" >}}
+* {{< link "mailto:contact@revolunet.com" >}}
+* {{< link "https://assemble.io" Assemble >}}
+
+#### Add a Title
+
+```markdown
+{{</* link "https://github.com/upstage/" Upstage "Visit Upstage!" */>}}
+Or
+{{</* link href="https://github.com/upstage/" content=Upstage title="Visit Upstage!" */>}}
+```
+
+The rendered output looks like this (hover over the link, there should be a tooltip):
+
+{{< link "https://github.com/upstage/" Upstage "Visit Upstage!" >}}
+
### `image`
`image` shortcode is an alternative to [`figure` shortcode](#figure). `image` shortcode can take full advantage of the dependent libraries of [lazysizes](https://github.com/aFarkas/lazysizes) and [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js).
diff --git a/exampleSite/content/posts/theme-documentation-shortcodes.fr.md b/exampleSite/content/posts/theme-documentation-shortcodes.fr.md
index 306e1a6..d270a11 100644
--- a/exampleSite/content/posts/theme-documentation-shortcodes.fr.md
+++ b/exampleSite/content/posts/theme-documentation-shortcodes.fr.md
@@ -222,6 +222,72 @@ The rendered output looks like this:
This is a right-aligned paragraph.
{{< /style >}}
+### `link`
+
+{{< admonition >}}
+{{< version 1.2.0 >}}
+{{< /admonition >}}
+
+`link` shortcode is an alternative to [Markdown link syntax](../basic-markdown-syntax/#links). `link` shortcode can provide some other features and can be used in code blocks.
+
+The `link` shortcode can use the following named parameters:
+
+* **href**
+
+ Destination of the link.
+
+* **content**
+
+ Content of the link (HTML format is allowed).
+
+* **title**
+
+ `title` attribute of the HTML `a` tag, which will be shown when hovering on the link.
+
+* **rel**
+
+ Additional `rel` attributes of the HTML `a` tag.
+
+* **class**
+
+ `class` attribute of the HTML `a` tag.
+
+#### Basic `link`
+
+Example basic `link` Input:
+
+```markdown
+{{</* link "https://assemble.io" */>}}
+Or
+{{</* link href="https://assemble.io" */>}}
+
+{{</* link "mailto:contact@revolunet.com" */>}}
+Or
+{{</* link href="mailto:contact@revolunet.com" */>}}
+
+{{</* link "https://assemble.io" Assemble */>}}
+Or
+{{</* link href="https://assemble.io" content=Assemble */>}}
+```
+
+The rendered output looks like this:
+
+* {{< link "https://assemble.io" >}}
+* {{< link "mailto:contact@revolunet.com" >}}
+* {{< link "https://assemble.io" Assemble >}}
+
+#### Add a Title
+
+```markdown
+{{</* link "https://github.com/upstage/" Upstage "Visit Upstage!" */>}}
+Or
+{{</* link href="https://github.com/upstage/" content=Upstage title="Visit Upstage!" */>}}
+```
+
+The rendered output looks like this (hover over the link, there should be a tooltip):
+
+{{< link "https://github.com/upstage/" Upstage "Visit Upstage!" >}}
+
### `image`
`image` shortcode is an alternative to [`figure` shortcode](#figure). `image` shortcode can take full advantage of the dependent libraries of [lazysizes](https://github.com/aFarkas/lazysizes) and [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js).
diff --git a/exampleSite/content/posts/theme-documentation-shortcodes.zh-cn.md b/exampleSite/content/posts/theme-documentation-shortcodes.zh-cn.md
index fab3970..05e38c3 100644
--- a/exampleSite/content/posts/theme-documentation-shortcodes.zh-cn.md
+++ b/exampleSite/content/posts/theme-documentation-shortcodes.zh-cn.md
@@ -219,6 +219,73 @@ This is a right-aligned paragraph.
This is a right-aligned paragraph.
{{< /style >}}
+### `link`
+
+{{< admonition >}}
+{{< version 1.2.0 >}}
+{{< /admonition >}}
+
+`link` shortcode 是 [Markdown 链接语法](../basic-markdown-syntax/#links) 的替代.
+`link` shortcode 可以提供一些其它的功能并且可以在代码块中使用.
+
+`link` shortcode 可以使用以下命名参数:
+
+* **href**
+
+ 链接的目标.
+
+* **content**
+
+ 链接的内容 (允许 HTML 格式).
+
+* **title**
+
+ HTML `a` 标签 的 `title` 属性, 当悬停在链接上会显示的提示.
+
+* **rel**
+
+ HTML `a` 标签 的 `rel` 补充属性.
+
+* **class**
+
+ HTML `a` 标签 的 `class` 属性.
+
+#### 基本 `link`
+
+一个基本的 `link` 示例:
+
+```markdown
+{{</* link "https://assemble.io" */>}}
+或者
+{{</* link href="https://assemble.io" */>}}
+
+{{</* link "mailto:contact@revolunet.com" */>}}
+或者
+{{</* link href="mailto:contact@revolunet.com" */>}}
+
+{{</* link "https://assemble.io" Assemble */>}}
+或者
+{{</* link href="https://assemble.io" content=Assemble */>}}
+```
+
+呈现的输出效果如下:
+
+* {{< link "https://assemble.io" >}}
+* {{< link "mailto:contact@revolunet.com" >}}
+* {{< link "https://assemble.io" Assemble >}}
+
+#### 添加一个标题
+
+```markdown
+{{</* link "https://github.com/upstage/" Upstage "Visit Upstage!" */>}}
+或者
+{{</* link href="https://github.com/upstage/" content=Upstage title="Visit Upstage!" */>}}
+```
+
+呈现的输出效果如下 (将鼠标悬停在链接上,会有一行提示):
+
+{{< link "https://github.com/upstage/" Upstage "Visit Upstage!" >}}
+
### `image`
`image` shortcode 是 [`figure` shortcode](#figure) 的替代. `image` shortcode 可以充分利用 [lazysizes](https://github.com/aFarkas/lazysizes) 和 [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) 两个依赖库.
@@ -333,7 +400,7 @@ This is a right-aligned paragraph.
{{</* admonition type=tip title="This is a tip" details=true */>}}
一个 **技巧** 横幅
{{</* /admonition */>}}
-Or
+或者
{{</* admonition tip "This is a tip" true */>}}
一个 **技巧** 横幅
{{</* /admonition */>}}
@@ -1016,7 +1083,7 @@ data = [
```markdown
{{</* music auto="https://music.163.com/#/playlist?id=60198" */>}}
-Or
+或者
{{</* music "https://music.163.com/#/playlist?id=60198" */>}}
```
@@ -1030,7 +1097,7 @@ Or
```markdown
{{</* music server="netease" type="song" id="1868553" */>}}
-Or
+或者
{{</* music netease song 1868553 */>}}
```
@@ -1052,7 +1119,7 @@ https://www.bilibili.com/video/av47027633
```markdown
{{</* bilibili 47027633 */>}}
-Or
+或者
{{</* bilibili av=47027633 */>}}
```
@@ -1070,7 +1137,7 @@ https://www.bilibili.com/video/av36570401?p=3
```markdown
{{</* bilibili 36570401 3 */>}}
-Or
+或者
{{</* bilibili av=36570401 p=3 */>}}
```
diff --git a/layouts/_default/summary.html b/layouts/_default/summary.html
index 60c3a91..440bfd0 100644
--- a/layouts/_default/summary.html
+++ b/layouts/_default/summary.html
@@ -19,8 +19,8 @@
{{- $author := .Params.author | default .Site.Author.name | default (T "author") -}}
{{- $authorLink := .Params.authorLink | default .Site.Author.link | default (relLangURL "/") -}}
<span class="post-author">
- {{- $link := dict "class" "author" "href" $authorLink "title" "Author" "rel" "author" "icon" (dict "class" "fas fa-user-circle fa-fw") "content" $author -}}
- {{- partial "plugin/link.html" $link -}}
+ {{- $options := dict "class" "author" "href" $authorLink "title" "Author" "rel" "author" "icon" (dict "class" "fas fa-user-circle fa-fw") "content" $author -}}
+ {{- partial "plugin/link.html" $options -}}
</span>
{{- $publish_date := .PublishDate.Format (.Site.Params.dateFormatToUse | default "2006-01-02") -}}
diff --git a/layouts/partials/plugin/link.html b/layouts/partials/plugin/link.html
index 700676d..13346a1 100644
--- a/layouts/partials/plugin/link.html
+++ b/layouts/partials/plugin/link.html
@@ -1,8 +1,9 @@
-<a href="{{ .href | safeURL }}"{{ with .title }} title="{{ . }}"{{ end }}{{ if strings.HasPrefix .href "http" }} target="_blank"{{ end }} rel="noopener noreffer{{ with .rel }} {{ . }}{{ end }}"{{ with .class }} class="{{ . }}"{{ end }}>
+{{- $rel := "" -}}
+<a href="{{ .href | safeURL }}"{{ with .title }} title="{{ . }}"{{ end }}{{ if strings.HasPrefix .href "http" }}{{ $rel = "noopener noreffer" }} target="_blank"{{ end }} rel="{{ $rel }}{{ with .rel }} {{ . }}{{ end }}"{{ with .class }} class="{{ . }}"{{ end }}>
{{- with .icon -}}
{{- partial "plugin/icon.html" . -}}
{{- end -}}
{{- with .content -}}
{{- . | safeHTML -}}
{{- end -}}
-</a>
+</a> \ No newline at end of file
diff --git a/layouts/posts/single.html b/layouts/posts/single.html
index 4877b1b..d7a1a4a 100644
--- a/layouts/posts/single.html
+++ b/layouts/posts/single.html
@@ -15,8 +15,8 @@
{{- $author := .Params.author | default .Site.Author.name | default (T "author") -}}
{{- $authorLink := .Params.authorLink | default .Site.Author.link | default (relLangURL "/") -}}
<span class="post-author">
- {{- $link := dict "class" "author" "href" $authorLink "title" "Author" "rel" "author" "icon" (dict "class" "fas fa-user-circle fa-fw") "content" $author -}}
- {{- partial "plugin/link.html" $link -}}
+ {{- $options := dict "class" "author" "href" $authorLink "title" "Author" "rel" "author" "icon" (dict "class" "fas fa-user-circle fa-fw") "content" $author -}}
+ {{- partial "plugin/link.html" $options -}}
</span>
{{- with .Params.categories -}}
diff --git a/layouts/shortcodes/link.html b/layouts/shortcodes/link.html
new file mode 100644
index 0000000..5208d81
--- /dev/null
+++ b/layouts/shortcodes/link.html
@@ -0,0 +1,13 @@
+{{- $options := dict -}}
+{{- if .IsNamedParams -}}
+ {{- $options = dict "href" (.Get "href") | merge $options -}}
+ {{- $options = dict "title" (.Get "title") | merge $options -}}
+ {{- $options = dict "rel" (.Get "rel") | merge $options -}}
+ {{- $options = dict "class" (.Get "class") | merge $options -}}
+ {{- $options = dict "content" (.Get "content") | merge $options -}}
+{{- else -}}
+ {{- $options = dict "href" (.Get 0) | merge $options -}}
+ {{- $options = dict "content" (.Get 1 | default (.Get 0)) | merge $options -}}
+ {{- $options = dict "title" (.Get 2) | merge $options -}}
+{{- end -}}
+{{- partial "plugin/link.html" $options -}}
diff --git a/package.json b/package.json
index 8da12b7..0cf376d 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
"scripts": {
"build": "npx babel src --out-file assets/js/theme.min.js --source-maps && hugo -v --source=exampleSite --themesDir=../.. -D --gc",
"start": "npm run build && hugo server --source=exampleSite --themesDir=../.. --disableFastRender",
+ "check": "htmlproofer exampleSite/public --check-html --allow-hash-href --empty-alt-ignore --disable-external",
"copy": "rm -rf resources && cp -rf exampleSite/resources resources"
},
"husky": {
diff --git a/resources/_gen/assets/scss/css/style.template.scss_90197bdac482216ecaaaae0fb88517c1.content b/resources/_gen/assets/scss/css/style.template.scss_90197bdac482216ecaaaae0fb88517c1.content
index 25c4d2f..2c2e108 100644
--- a/resources/_gen/assets/scss/css/style.template.scss_90197bdac482216ecaaaae0fb88517c1.content
+++ b/resources/_gen/assets/scss/css/style.template.scss_90197bdac482216ecaaaae0fb88517c1.content
@@ -1,3 +1,3 @@
-@import url("https://fonts.googleapis.com/css2?family=Baloo+2:wght@500&display=swap");/*! 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:0.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:-0.25em}sup{top:-0.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:0.35em 0.75em 0.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:system,-apple-system,BlinkMacSystemFont,"PingFang SC","Segoe UI","Microsoft YaHei","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background:rgba(38,139,211,0.2)}.dark-theme ::selection{background:rgba(38,139,211,0.3)}body{background-color:#fff;color:#161209;overflow-wrap:break-word}body::before{content:"";background-repeat:no-repeat;background-position:center;opacity:0.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}a:hover{color:#2d96bd}.dark-theme a{color:#a9a9b3}.dark-theme a:hover{color:#fff}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;border:1px solid #c3c3c3;border-radius:2rem}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}.dark-theme .fixed-button{color:#5d5d5f;background:#252627;border-color:#313236}.dark-theme .fixed-button:hover,.dark-theme .fixed-button:active{color:#a9a9b3}#top-button{display:block;bottom:1.5rem}#comment-button{bottom:4.5rem}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}.page{position:relative;width:100%;max-width:60%;margin:0 auto;padding-top:3.5rem}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}.dark-theme .single .post-meta{color:#5d5d5f}.single .post-meta a{color:#2d96bd}.dark-theme .single .post-meta a{color:#a9a9b3}.single .post-meta a:hover{color:#ef3982}.dark-theme .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{padding-top:.6rem}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single #toc-auto{display:block;position:absolute;width:1000px;padding:0 .8rem;border-left:1px solid #dcdcdc;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:10000px}.dark-theme .single #toc-auto{border-left:1px solid #4a4b50}.single #toc-auto .toc-title{font-weight:400;margin:.8rem 0;text-transform:uppercase}.single #toc-auto .toc-content.always-active ul{display:block}.single #toc-auto .toc-content>nav>ul{margin:.625rem 0}.single #toc-auto .toc-content ul{text-indent:-0.85rem;padding-left:.625rem;list-style:none}.single #toc-auto .toc-content ul a::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}.dark-theme .single #toc-auto .toc-content ul a::before{color:#55bde2}.single #toc-auto .toc-content ul ul{padding-left:1.25rem;display:none}.single #toc-auto .toc-content ul .has-active>ul{display:block}.single #toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}.dark-theme .single #toc-auto .toc-content a.active{color:#55bde2}.single #toc-auto .toc-content a.active::before{color:#ef3982}.dark-theme .single #toc-auto .toc-content a.active::before{color:#bdebfc}.single #toc-static{display:none;padding-top:.8rem}.single #toc-static details summary{list-style:none;background:#ededed}.dark-theme .single #toc-static details summary{background:#20252b}.single #toc-static details summary .toc-title{display:block;display:flex;justify-content:space-between;font-weight:bold;line-height:2em;padding:0 .625rem}.single #toc-static details summary .toc-title i.details{line-height:2em}.single #toc-static details summary .toc-title:hover{cursor:pointer}.single #toc-static details summary::-webkit-details-marker{display:none}.single #toc-static details[open] i.details{transform:rotate(180deg)}.single #toc-static .toc-content{background-color:#f5f5f5}.single #toc-static .toc-content>nav>ul{margin:0;padding:.4rem .8rem}.single #toc-static .toc-content ul{list-style:none}.single #toc-static .toc-content ul ul{padding-left:1.25rem}.dark-theme .single #toc-static .toc-content{background-color:#272C34}.single .toc .toc-title{font-size:1.2rem}.single .toc .toc-content{font-size:.9rem}.single .toc ruby{background:#f5f5f5}.single .toc ruby rt{color:#a9a9b3}.dark-theme .single .toc ruby{background:#272C34}.dark-theme .single .toc ruby rt{color:#5d5d5f}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}.dark-theme .single .content h2,.dark-theme .single .content h3,.dark-theme .single .content h4,.dark-theme .single .content h5,.dark-theme .single .content h6{font-weight:bolder}.single .content h2>.header-mark::before,.single .content h3>.header-mark::before,.single .content h4>.header-mark::before,.single .content h5>.header-mark::before,.single .content h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark-theme .single .content h2>.header-mark::before,.dark-theme .single .content h3>.header-mark::before,.dark-theme .single .content h4>.header-mark::before,.dark-theme .single .content h5>.header-mark::before,.dark-theme .single .content h6>.header-mark::before{color:#55bde2}.single .content h2>.header-mark::before{content:"#"}.single .content p{font-size:1rem;margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}.dark-theme .single .content b,.dark-theme .single .content strong{color:#ddd}.single .content a{word-break:break-all;word-break:break-word;color:#2d96bd}.dark-theme .single .content a,.dark-theme .single .content a b,.dark-theme .single .content a strong{color:#55bde2}.single .content a:hover{color:#ef3982}.dark-theme .single .content a:hover,.dark-theme .single .content a:hover b,.dark-theme .single .content a:hover strong{color:#bdebfc}.single .content ul{padding-left:2rem;list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}.dark-theme .single .content ruby{background:#272C34}.dark-theme .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}.dark-theme .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}.dark-theme .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}.dark-theme .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px double #dcdcdc}.dark-theme .single .content .table-wrapper>table th,.dark-theme .single .content .table-wrapper>table td{border:1px double #4a4b50}.single .content img{max-width:100%;min-height:1.2rem}.single .content figure{text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{object-fit:none}.single .content blockquote{font-size:1rem;display:block;border-width:1px 0;border-style:solid;border-color:#dcdcdc;padding:1.5em 1.2em 0.5em 1.2em;margin:0 0 2em 0;position:relative}.single .content blockquote::before{content:'\201C';position:absolute;top:0em;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 .single .content blockquote::before{color:#55bde2}.single .content blockquote::after{content:"#blockquote" attr(cite);display:block;text-align:right;font-size:0.875em;color:#2d96bd}.dark-theme .single .content blockquote::after{color:#55bde2}.dark-theme .single .content blockquote{border-color:#4a4b50}.single .content .footnotes{color:#a9a9b3}.dark-theme .single .content .footnotes{color:#5d5d5f}.single .content code{font-size:13px;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;padding:.2rem .4rem;color:#E74C3C}.dark-theme .single .content code{color:#E5BF78}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}.dark-theme .single .content code,.dark-theme .single .content pre,.dark-theme .single .content .highlight table,.dark-theme .single .content .highlight tr,.dark-theme .single .content .highlight td{background:#272C34}.single .content .highlight>.chroma{margin:1rem 0}.single .content .highlight>.chroma code,.single .content .highlight>.chroma pre{margin:0;padding:0}.single .content .highlight>.chroma::before{display:block;padding:.4rem;font-family:system,-apple-system,BlinkMacSystemFont,"PingFang SC","Segoe UI","Microsoft YaHei","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;color:#b1b0b0;background:#ededed;content:'Code'}.dark-theme .single .content .highlight>.chroma::before{color:#b1b0b0;background:#20252b}.single .content .highlight>.chroma.language-bash::before{content:"Bash"}.single .content .highlight>.chroma.language-c::before{content:"C"}.single .content .highlight>.chroma.language-cs::before{content:"C#"}.single .content .highlight>.chroma.language-cpp::before{content:"C++"}.single .content .highlight>.chroma.language-clojure::before{content:"Clojure"}.single .content .highlight>.chroma.language-coffeescript::before{content:"CoffeeScript"}.single .content .highlight>.chroma.language-css::before{content:"CSS"}.single .content .highlight>.chroma.language-dart::before{content:"Dart"}.single .content .highlight>.chroma.language-diff::before{content:"Diff"}.single .content .highlight>.chroma.language-erlang::before{content:"Erlang"}.single .content .highlight>.chroma.language-go::before{content:"Go"}.single .content .highlight>.chroma.language-go-html-template::before{content:"Go HTML Template"}.single .content .highlight>.chroma.language-groovy::before{content:"Groovy"}.single .content .highlight>.chroma.language-haskell::before{content:"Haskell"}.single .content .highlight>.chroma.language-html::before{content:"HTML"}.single .content .highlight>.chroma.language-http::before{content:"HTTP"}.single .content .highlight>.chroma.language-xml::before{content:"XML"}.single .content .highlight>.chroma.language-java::before{content:"Java"}.single .content .highlight>.chroma.language-js::before{content:"JavaScript"}.single .content .highlight>.chroma.language-javascript::before{content:"JavaScript"}.single .content .highlight>.chroma.language-json::before{content:"JSON"}.single .content .highlight>.chroma.language-kotlin::before{content:"Kotlin"}.single .content .highlight>.chroma.language-latex::before{content:"LaTeX"}.single .content .highlight>.chroma.language-less::before{content:"Less"}.single .content .highlight>.chroma.language-lisp::before{content:"Lisp"}.single .content .highlight>.chroma.language-lua::before{content:"Lua"}.single .content .highlight>.chroma.language-makefile::before{content:"Makefile"}.single .content .highlight>.chroma.language-markdown::before{content:"Markdown"}.single .content .highlight>.chroma.language-matlab::before{content:"Matlab"}.single .content .highlight>.chroma.language-objectivec::before{content:"Objective-C"}.single .content .highlight>.chroma.language-php::before{content:"PHP"}.single .content .highlight>.chroma.language-perl::before{content:"Perl"}.single .content .highlight>.chroma.language-python::before{content:"Python"}.single .content .highlight>.chroma.language-r::before{content:"R"}.single .content .highlight>.chroma.language-ruby::before{content:"Ruby"}.single .content .highlight>.chroma.language-rust::before{content:"Rust"}.single .content .highlight>.chroma.language-scala::before{content:"Scala"}.single .content .highlight>.chroma.language-scss::before{content:"Scss"}.single .content .highlight>.chroma.language-shell::before{content:"Shell"}.single .content .highlight>.chroma.language-sql::before{content:"SQL"}.single .content .highlight>.chroma.language-swift::before{content:"Swift"}.single .content .highlight>.chroma.language-tex::before{content:"TeX"}.single .content .highlight>.chroma.language-toml::before{content:"TOML"}.single .content .highlight>.chroma.language-ts::before{content:"TypeScript"}.single .content .highlight>.chroma.language-typescript::before{content:"TypeScript"}.single .content .highlight>.chroma.language-vue::before{content:"Vue"}.single .content .highlight>.chroma.language-yml::before{content:"YAML"}.single .content .highlight>.chroma.language-yaml::before{content:"YAML"}.single .content .highlight>.chroma .lntd:first-child{width:1.2rem}.single .content .highlight>.chroma .lntd:first-child .lnt{color:#b1b0b0}.single .content .highlight>.chroma .lntd:first-child .hl{font-weight:bolder}.single .content .highlight>.chroma .lntd:last-child .hl{display:block;background-color:#e8e8e8}.dark-theme .single .content .highlight>.chroma .lntd:last-child .hl{background-color:#1c2025}.single .content .highlight{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;font-size:13px;line-height:18px}.single .content .highlight .c,.single .content .highlight .ch,.single .content .highlight .cm,.single .content .highlight .c1,.single .content .highlight .cs,.single .content .highlight .cp,.single .content .highlight .cpf{font-style:italic}.single .content .highlight .gl{text-decoration:underline}.single .content .highlight .p{color:#a9a9b3}.single .content .highlight .k{color:#b501a9}.single .content .highlight .kc{color:#b501a9}.single .content .highlight .kd{color:#b501a9}.single .content .highlight .kn{color:#b501a9}.single .content .highlight .kp{color:#b501a9}.single .content .highlight .kr{color:#b501a9}.single .content .highlight .kt{color:#b501a9}.single .content .highlight .n{color:#333}.single .content .highlight .na{color:#2b77fa}.single .content .highlight .nb{color:#f74840}.single .content .highlight .bp{color:#f74840}.single .content .highlight .nc{color:#cb8100}.single .content .highlight .no{color:#2b77fa}.single .content .highlight .nd{color:#0086c1}.single .content .highlight .ni{color:#2b77fa}.single .content .highlight .ne{color:#2b77fa}.single .content .highlight .nf{color:#2b77fa}.single .content .highlight .fm{color:#1ccad6}.single .content .highlight .nl{color:#2b77fa}.single .content .highlight .nn{color:#2b77fa}.single .content .highlight .nx{color:#333}.single .content .highlight .py{color:#2b77fa}.single .content .highlight .nt{color:#2b77fa}.single .content .highlight .nv{color:#2b77fa}.single .content .highlight .vc{color:#2b77fa}.single .content .highlight .vg{color:#2b77fa}.single .content .highlight .vi{color:#2b77fa}.single .content .highlight .vm{color:#2b77fa}.single .content .highlight .l{color:#2aa198}.single .content .highlight .ld{color:#2aa198}.single .content .highlight .s{color:#24a443}.single .content .highlight .sa{color:#24a443}.single .content .highlight .sb{color:#24a443}.single .content .highlight .sc{color:#24a443}.single .content .highlight .dl{color:#24a443}.single .content .highlight .sd{color:#24a443}.single .content .highlight .s2{color:#24a443}.single .content .highlight .se{color:#24a443}.single .content .highlight .sh{color:#24a443}.single .content .highlight .si{color:#24a443}.single .content .highlight .sx{color:#24a443}.single .content .highlight .sr{color:#24a443}.single .content .highlight .s1{color:#24a443}.single .content .highlight .ss{color:#24a443}.single .content .highlight .m{color:#e2893c}.single .content .highlight .mb{color:#e2893c}.single .content .highlight .mf{color:#e2893c}.single .content .highlight .mh{color:#e2893c}.single .content .highlight .mi{color:#e2893c}.single .content .highlight .il{color:#e2893c}.single .content .highlight .mo{color:#e2893c}.single .content .highlight .o{color:#f19b04}.single .content .highlight .ow{color:#b501a9}.single .content .highlight .c{color:#a0a1a8}.single .content .highlight .ch{color:#a0a1a8}.single .content .highlight .cm{color:#a0a1a8}.single .content .highlight .c1{color:#a0a1a8}.single .content .highlight .cs{color:#a0a1a8}.single .content .highlight .cp{color:#a0a1a8}.single .content .highlight .cpf{color:#a0a1a8}.single .content .highlight .g{color:#e72d40}.single .content .highlight .gd{color:#e72d40}.single .content .highlight .ge{color:#e72d40}.single .content .highlight .gr{color:#e72d40}.single .content .highlight .gh{color:#e72d40}.single .content .highlight .gi{color:#e72d40}.single .content .highlight .go{color:#e72d40}.single .content .highlight .gp{color:#e72d40}.single .content .highlight .gs{color:#e72d40}.single .content .highlight .gu{color:#e72d40}.single .content .highlight .gt{color:#e72d40}.single .content .highlight .w{color:#bbb}.dark-theme .single .content .highlight .p{color:#a9a9b3}.dark-theme .single .content .highlight .k{color:#d371e3}.dark-theme .single .content .highlight .kc{color:#d371e3}.dark-theme .single .content .highlight .kd{color:#d371e3}.dark-theme .single .content .highlight .kn{color:#d371e3}.dark-theme .single .content .highlight .kp{color:#d371e3}.dark-theme .single .content .highlight .kr{color:#d371e3}.dark-theme .single .content .highlight .kt{color:#d371e3}.dark-theme .single .content .highlight .n{color:#a9b2c0}.dark-theme .single .content .highlight .na{color:#41b0f5}.dark-theme .single .content .highlight .nb{color:#19b9c4}.dark-theme .single .content .highlight .bp{color:#ecbf6f}.dark-theme .single .content .highlight .nc{color:#ecbf6f}.dark-theme .single .content .highlight .no{color:#41b0f5}.dark-theme .single .content .highlight .nd{color:#ecbf6f}.dark-theme .single .content .highlight .ni{color:#41b0f5}.dark-theme .single .content .highlight .ne{color:#41b0f5}.dark-theme .single .content .highlight .nf{color:#41b0f5}.dark-theme .single .content .highlight .fm{color:#19b9c4}.dark-theme .single .content .highlight .nl{color:#41b0f5}.dark-theme .single .content .highlight .nn{color:#41b0f5}.dark-theme .single .content .highlight .nx{color:#a9a9b3}.dark-theme .single .content .highlight .py{color:#41b0f5}.dark-theme .single .content .highlight .nt{color:#41b0f5}.dark-theme .single .content .highlight .nv{color:#41b0f5}.dark-theme .single .content .highlight .vc{color:#41b0f5}.dark-theme .single .content .highlight .vg{color:#41b0f5}.dark-theme .single .content .highlight .vi{color:#41b0f5}.dark-theme .single .content .highlight .vm{color:#41b0f5}.dark-theme .single .content .highlight .l{color:#2aa198}.dark-theme .single .content .highlight .ld{color:#2aa198}.dark-theme .single .content .highlight .s{color:#8cc570}.dark-theme .single .content .highlight .sa{color:#8cc570}.dark-theme .single .content .highlight .sb{color:#8cc570}.dark-theme .single .content .highlight .sc{color:#8cc570}.dark-theme .single .content .highlight .dl{color:#8cc570}.dark-theme .single .content .highlight .sd{color:#8cc570}.dark-theme .single .content .highlight .s2{color:#8cc570}.dark-theme .single .content .highlight .se{color:#8cc570}.dark-theme .single .content .highlight .sh{color:#8cc570}.dark-theme .single .content .highlight .si{color:#8cc570}.dark-theme .single .content .highlight .sx{color:#8cc570}.dark-theme .single .content .highlight .sr{color:#8cc570}.dark-theme .single .content .highlight .s1{color:#8cc570}.dark-theme .single .content .highlight .ss{color:#8cc570}.dark-theme .single .content .highlight .m{color:#db985c}.dark-theme .single .content .highlight .mb{color:#db985c}.dark-theme .single .content .highlight .mf{color:#db985c}.dark-theme .single .content .highlight .mh{color:#db985c}.dark-theme .single .content .highlight .mi{color:#db985c}.dark-theme .single .content .highlight .il{color:#db985c}.dark-theme .single .content .highlight .mo{color:#db985c}.dark-theme .single .content .highlight .o{color:#ecbf6f}.dark-theme .single .content .highlight .ow{color:#d371e3}.dark-theme .single .content .highlight .c{color:#7e848f}.dark-theme .single .content .highlight .ch{color:#7e848f}.dark-theme .single .content .highlight .cm{color:#7e848f}.dark-theme .single .content .highlight .c1{color:#7e848f}.dark-theme .single .content .highlight .cs{color:#7e848f}.dark-theme .single .content .highlight .cp{color:#7e848f}.dark-theme .single .content .highlight .cpf{color:#7e848f}.dark-theme .single .content .highlight .g{color:#f16372}.dark-theme .single .content .highlight .gd{color:#f16372}.dark-theme .single .content .highlight .ge{color:#f16372}.dark-theme .single .content .highlight .gr{color:#f16372}.dark-theme .single .content .highlight .gh{color:#f16372}.dark-theme .single .content .highlight .gi{color:#f16372}.dark-theme .single .content .highlight .go{color:#f16372}.dark-theme .single .content .highlight .gp{color:#f16372}.dark-theme .single .content .highlight .gs{color:#f16372}.dark-theme .single .content .highlight .gu{color:#f16372}.dark-theme .single .content .highlight .gt{color:#f16372}.dark-theme .single .content .highlight .w{color:#bbb}.single .content .highlight>.chroma table,.single .content .highlight>.chroma tr,.single .content .highlight>.chroma td,.single .content .gist table,.single .content .gist tr,.single .content .gist td{margin:0;border:none !important}.single .content .highlight>.chroma td,.single .content .gist td{padding:.2rem .4rem}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a{color:#2d96bd}.dark-theme .single .content .gist .gist-meta a{color:#55bde2}.single .content .gist .gist-meta a:hover{color:#ef3982}.dark-theme .single .content .gist .gist-meta a:hover:hover{color:#bdebfc}.dark-theme .single .content .gist .gist-meta{background-color:#1c2025}.dark-theme .single .content .gist .highlight{background:#141414}.dark-theme .single .content .gist .blob-num,.dark-theme .single .content .gist .blob-code-inner,.dark-theme .single .content .gist .highlight,.dark-theme .single .content .gist .pl-enm,.dark-theme .single .content .gist .pl-ko,.dark-theme .single .content .gist .pl-mo,.dark-theme .single .content .gist .pl-mp1 .pl-sf,.dark-theme .single .content .gist .pl-ms,.dark-theme .single .content .gist .pl-pdc1,.dark-theme .single .content .gist .pl-scp,.dark-theme .single .content .gist .pl-smc,.dark-theme .single .content .gist .pl-som,.dark-theme .single .content .gist .pl-va,.dark-theme .single .content .gist .pl-vpf,.dark-theme .single .content .gist .pl-vpu,.dark-theme .single .content .gist .pl-mdr{color:#aab1bf}.dark-theme .single .content .gist .pl-mb,.dark-theme .single .content .gist .pl-pdb{font-weight:700}.dark-theme .single .content .gist .pl-c,.dark-theme .single .content .gist .pl-c span,.dark-theme .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}.dark-theme .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}.dark-theme .single .content .gist .pl-ef,.dark-theme .single .content .gist .pl-en,.dark-theme .single .content .gist .pl-enf,.dark-theme .single .content .gist .pl-eoai,.dark-theme .single .content .gist .pl-kos,.dark-theme .single .content .gist .pl-mh .pl-pdh,.dark-theme .single .content .gist .pl-mr{color:#61afef}.dark-theme .single .content .gist .pl-ens,.dark-theme .single .content .gist .pl-vi{color:#be5046}.dark-theme .single .content .gist .pl-enti,.dark-theme .single .content .gist .pl-mai .pl-sf,.dark-theme .single .content .gist .pl-ml,.dark-theme .single .content .gist .pl-sf,.dark-theme .single .content .gist .pl-sr,.dark-theme .single .content .gist .pl-sr .pl-sra,.dark-theme .single .content .gist .pl-src,.dark-theme .single .content .gist .pl-st,.dark-theme .single .content .gist .pl-vo{color:#56b5c2}.dark-theme .single .content .gist .pl-eoi,.dark-theme .single .content .gist .pl-mri,.dark-theme .single .content .gist .pl-pds,.dark-theme .single .content .gist .pl-pse .pl-s1,.dark-theme .single .content .gist .pl-s,.dark-theme .single .content .gist .pl-s1{color:#97c279}.dark-theme .single .content .gist .pl-k,.dark-theme .single .content .gist .pl-kolp,.dark-theme .single .content .gist .pl-mc,.dark-theme .single .content .gist .pl-pde{color:#c578dd}.dark-theme .single .content .gist .pl-mi,.dark-theme .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}.dark-theme .single .content .gist .pl-mp,.dark-theme .single .content .gist .pl-stp{color:#818896}.dark-theme .single .content .gist .pl-mdh,.dark-theme .single .content .gist .pl-mdi,.dark-theme .single .content .gist .pl-mdr{font-weight:400}.dark-theme .single .content .gist .pl-mdht,.dark-theme .single .content .gist .pl-mi1{color:#97c279;background:#020}.dark-theme .single .content .gist .pl-md,.dark-theme .single .content .gist .pl-mdhf{color:#df6b75;background:#200}.dark-theme .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}.dark-theme .single .content .gist .pl-ib{background:#df6b75}.dark-theme .single .content .gist .pl-ii{background:#e0c184;color:#fff}.dark-theme .single .content .gist .pl-iu{background:#e05151}.dark-theme .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}.dark-theme .single .content .gist .pl-c1,.dark-theme .single .content .gist .pl-cn,.dark-theme .single .content .gist .pl-e,.dark-theme .single .content .gist .pl-eoa,.dark-theme .single .content .gist .pl-eoac,.dark-theme .single .content .gist .pl-eoac .pl-pde,.dark-theme .single .content .gist .pl-kou,.dark-theme .single .content .gist .pl-mm,.dark-theme .single .content .gist .pl-mp .pl-s3,.dark-theme .single .content .gist .pl-mq,.dark-theme .single .content .gist .pl-s3,.dark-theme .single .content .gist .pl-sok,.dark-theme .single .content .gist .pl-sv,.dark-theme .single .content .gist .pl-mb{color:#d19965}.dark-theme .single .content .gist .pl-enc,.dark-theme .single .content .gist .pl-entc,.dark-theme .single .content .gist .pl-pse .pl-s2,.dark-theme .single .content .gist .pl-s2,.dark-theme .single .content .gist .pl-sc,.dark-theme .single .content .gist .pl-smp,.dark-theme .single .content .gist .pl-sr .pl-sre,.dark-theme .single .content .gist .pl-stj,.dark-theme .single .content .gist .pl-v,.dark-theme .single .content .gist .pl-pdb{color:#e4bf7a}.dark-theme .single .content .gist .pl-ent,.dark-theme .single .content .gist .pl-entl,.dark-theme .single .content .gist .pl-entm,.dark-theme .single .content .gist .pl-mh,.dark-theme .single .content .gist .pl-pdv,.dark-theme .single .content .gist .pl-smi,.dark-theme .single .content .gist .pl-sol,.dark-theme .single .content .gist .pl-mdh,.dark-theme .single .content .gist .pl-mdi{color:#df6b75}.dark-theme .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:.9765em 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{margin:0 -0.75rem;padding:.2rem .75rem .2rem 1.8rem;border-bottom:0.05rem solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{margin:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;cursor:auto;position:absolute;left:.6rem;top:.6rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(158,158,158,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(158,158,158,0.1);background-color:rgba(158,158,158,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content details.admonition summary{display:block;outline:none;cursor:pointer}.single .content details.admonition summary::-webkit-details-marker{display:none}.single .content details.admonition summary i.details{position:absolute;top:.5rem;right:.5rem;color:#161209}.dark-theme .single .content details.admonition summary i.details{color:#a9a9b3}.single .content details.admonition[open] i.details{transform:rotate(180deg)}.single .content .echarts{width:100%;height:30rem;margin:3% auto;text-align:center}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #dcdcdc;border-bottom:none}.dark-theme .single .content hr{border-top:1px dashed #4a4b50}.single .content kbd{display:inline-block;padding:.25rem;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:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;color:#E74C3C}.dark-theme .single .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}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;font-weight:bold;word-break:break-all}.single .content .version{font-weight:bold;font-style:normal;color:#df1a08}.dark-theme .single .content .version{color:#fff}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #dcdcdc;padding:1rem 0 0.3rem}.dark-theme .single .post-footer .post-info{border-bottom:1px solid #4a4b50}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}.dark-theme .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a{color:#2d96bd}.dark-theme .single .post-footer .post-info .post-info-line .post-info-mod a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}.dark-theme .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}.dark-theme .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a{color:#2d96bd}.dark-theme .single .post-footer .post-info .post-info-line .post-info-md a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}.dark-theme .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all ease-out .3s;-moz-transition:all ease-out .3s;-o-transition:all ease-out .3s;transition:all ease-out .3s}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .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 .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.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 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}.dark-theme .archive .archive-item-link:hover{color:#fff;text-decoration:none;transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}.archive .archive-item-date{float:right;text-align:right;color:#a9a9b3}.dark-theme .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;overflow-wrap:break-word;-webkit-transition:all ease-out .3s;-moz-transition:all ease-out .3s;-o-transition:all ease-out .3s;transition:all ease-out .3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{color:#2d96bd;-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.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}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{width:6rem;height:auto;display:inline-block;-webkit-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);margin:0 auto;-webkit-transition:all ease 0.4s;-moz-transition:all ease 0.4s;-o-transition:all ease 0.4s;transition:all ease 0.4s;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem 0}.home .home-profile .social-links a,.home .home-profile .social-links i{font-size:1.6rem;line-height:2rem}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}.dark-theme .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #dcdcdc}.dark-theme .home .summary{color:#a9a9b3;border-bottom:1px dashed #4a4b50}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.home .summary .single-title{font-size:1.4rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;-moz-box-orient:vertical;-webkit-box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}.dark-theme .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6{line-height:2}.home .summary .content h2::before,.home .summary .content h3::before,.home .summary .content h4::before,.home .summary .content h5::before,.home .summary .content h6::before{content:"|";margin-right:.3125rem;color:#161209}.dark-theme .home .summary .content h2::before,.dark-theme .home .summary .content h3::before,.dark-theme .home .summary .content h4::before,.dark-theme .home .summary .content h5::before,.dark-theme .home .summary .content h6::before{color:#a9a9b3}.home .summary .content h2{font-size:1.2rem}.home .summary .content h2::before{content:"#"}.home .summary .content a{color:#161209}.dark-theme .home .summary .content a{color:#a9a9b3}.home .summary .content a:hover{color:#2d96bd}.dark-theme .home .summary .content a:hover{color:#fff}.dark-theme .home .summary .content b,.dark-theme .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a{color:#2d96bd}.dark-theme .home .summary .post-footer a{color:#55bde2}.home .summary .post-footer a:hover{color:#ef3982}.dark-theme .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a{color:#161209}.dark-theme .home .summary .post-footer .post-tags a{color:#a9a9b3}.home .summary .post-footer .post-tags a:hover{color:#2d96bd}.dark-theme .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;transform:translateY(30vh);text-align:center}header{width:100%;z-index:100;background-color:#f8f8f8}.dark-theme header{background-color:#252627}header .header-title{font-family:"Baloo 2",system,-apple-system,BlinkMacSystemFont,"PingFang SC","Segoe UI","Microsoft YaHei","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}header .menu .menu-item{position:relative}header .language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}header .language-select:hover{cursor:pointer}header .theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{width:auto;text-align:center;padding:0 3%;display:flex;justify-content:space-between}#header-desktop .header-wrapper .header-title{font-size:1.5rem;max-width:30%}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.theme-switch{margin:0 .3rem}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}.dark-theme #header-desktop .header-wrapper .menu a.active{color:#fff}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-wrapper{padding:0;margin:0;transition:all 0.3s ease 0s}#header-mobile .header-wrapper .header-container{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:1.125rem;padding-right:1rem;padding-left:1rem;box-sizing:border-box}#header-mobile .header-wrapper .header-container .header-title{max-width:80%;font-size:1.5rem}#header-mobile .header-wrapper .header-container .menu-toggle{cursor:pointer;line-height:4rem}#header-mobile .header-wrapper .header-container .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:.1s margin .1s, .1s transform;-moz-transition:.1s margin .1s, .1s transform;-o-transition:.1s margin .1s, .1s transform;transition:.1s margin .1s, .1s transform}.dark-theme #header-mobile .header-wrapper .header-container .menu-toggle span{background:#a9a9b3}#header-mobile .header-wrapper .header-container .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-wrapper .header-container .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-wrapper .header-container .menu-toggle.active span{-webkit-transition:.1s margin, .1s transform .1s;-moz-transition:.1s margin, .1s transform .1s;-o-transition:.1s margin, .1s transform .1s;transition:.1s margin, .1s transform .1s}#header-mobile .header-wrapper .header-container .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-wrapper .header-container .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-wrapper .header-container .menu-toggle.active span:nth-child(3){-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-wrapper .menu{text-align:center;background:#fff;border-top:2px solid #161209;display:none;box-shadow:0px 2px 4px rgba(0,0,0,0.1),0px 4px 8px rgba(0,0,0,0.1)}#header-mobile .header-wrapper .menu a{display:block;line-height:2.5rem}#header-mobile .header-wrapper .menu.active{display:block}.dark-theme #header-mobile .header-wrapper .menu{background:#292a2d;border-top:2px solid #a9a9b3}.copyright{font-size:.875rem}.copyright .copyright-line{width:100%}.copyright .copyright-line .icp-br{display:none}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{-webkit-font-smoothing:antialiased;font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}.dark-theme .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;transition:0.3s;bottom:0px}.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: 1440px){.page{max-width:56%}}@media only screen and (max-width: 1200px){.page{max-width:52%}}@media only screen and (max-width: 960px){.page{max-width:80%}.page #toc-auto{display:none}.page #toc-static{display:block}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}.page{max-width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}}
+@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@800&display=swap");/*! 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:0.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:-0.25em}sup{top:-0.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:0.35em 0.75em 0.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:system,-apple-system,BlinkMacSystemFont,"PingFang SC","Segoe UI","Microsoft YaHei","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background:rgba(38,139,211,0.2)}.dark-theme ::selection{background:rgba(38,139,211,0.3)}body{background-color:#fff;color:#161209;overflow-wrap:break-word}body::before{content:"";background-repeat:no-repeat;background-position:center;opacity:0.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{text-decoration:none}a{color:#161209}.dark-theme a{color:#a9a9b3}a:active,a:hover{color:#2d96bd}.dark-theme a:active,.dark-theme a:hover{color:#fff}#fixed-buttons{display:none}.fixed-button{display:none;z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.3rem;padding:.6rem .6rem;color:#a9a9b3;background:#f8f8f8;border:1px solid #c3c3c3;border-radius:2rem}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}.dark-theme .fixed-button{color:#5d5d5f;background:#252627;border-color:#313236}.dark-theme .fixed-button:hover,.dark-theme .fixed-button:active{color:#a9a9b3}#top-button{display:block;bottom:1.5rem}#comment-button{bottom:4.5rem}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}.page{position:relative;width:100%;max-width:60%;margin:0 auto;padding-top:3.5rem}.single .single-title{margin:1rem 0 .5rem;font-size:1.6rem;line-height:140%}.single .single-subtitle{margin:.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}.dark-theme .single .post-meta{color:#5d5d5f}.single .post-meta a{color:#2d96bd}.dark-theme .single .post-meta a{color:#a9a9b3}.single .post-meta a:active,.single .post-meta a:hover{color:#ef3982}.dark-theme .single .post-meta a:active,.dark-theme .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .featured-image{padding-top:.6rem}.single .featured-image img{display:block;width:100%;height:auto;margin:0 auto;overflow:hidden}.single #toc-auto{display:block;position:absolute;width:1000px;padding:0 .8rem;border-left:1px solid #dcdcdc;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:10000px}.dark-theme .single #toc-auto{border-left:1px solid #4a4b50}.single #toc-auto .toc-title{font-weight:400;margin:.8rem 0;text-transform:uppercase}.single #toc-auto .toc-content.always-active ul{display:block}.single #toc-auto .toc-content>nav>ul{margin:.625rem 0}.single #toc-auto .toc-content ul{text-indent:-0.85rem;padding-left:.625rem;list-style:none}.single #toc-auto .toc-content ul a::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}.dark-theme .single #toc-auto .toc-content ul a::before{color:#55bde2}.single #toc-auto .toc-content ul ul{padding-left:1.25rem;display:none}.single #toc-auto .toc-content ul .has-active>ul{display:block}.single #toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}.dark-theme .single #toc-auto .toc-content a.active{color:#55bde2}.single #toc-auto .toc-content a.active::before{color:#ef3982}.dark-theme .single #toc-auto .toc-content a.active::before{color:#bdebfc}.single #toc-static{display:none;padding-top:.8rem}.single #toc-static details summary{list-style:none;background:#ededed}.dark-theme .single #toc-static details summary{background:#20252b}.single #toc-static details summary .toc-title{display:block;display:flex;justify-content:space-between;font-weight:bold;line-height:2em;padding:0 .625rem}.single #toc-static details summary .toc-title i.details{line-height:2em}.single #toc-static details summary .toc-title:hover{cursor:pointer}.single #toc-static details summary::-webkit-details-marker{display:none}.single #toc-static details[open] i.details{transform:rotate(180deg)}.single #toc-static .toc-content{background-color:#f5f5f5}.single #toc-static .toc-content>nav>ul{margin:0;padding:.4rem .8rem}.single #toc-static .toc-content ul{list-style:none}.single #toc-static .toc-content ul ul{padding-left:1.25rem}.dark-theme .single #toc-static .toc-content{background-color:#272C34}.single .toc .toc-title{font-size:1.2rem}.single .toc .toc-content{font-size:.9rem}.single .toc ruby{background:#f5f5f5}.single .toc ruby rt{color:#a9a9b3}.dark-theme .single .toc ruby{background:#272C34}.dark-theme .single .toc ruby rt{color:#5d5d5f}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}.dark-theme .single .content h2,.dark-theme .single .content h3,.dark-theme .single .content h4,.dark-theme .single .content h5,.dark-theme .single .content h6{font-weight:bolder}.single .content h2>.header-mark::before,.single .content h3>.header-mark::before,.single .content h4>.header-mark::before,.single .content h5>.header-mark::before,.single .content h6>.header-mark::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark-theme .single .content h2>.header-mark::before,.dark-theme .single .content h3>.header-mark::before,.dark-theme .single .content h4>.header-mark::before,.dark-theme .single .content h5>.header-mark::before,.dark-theme .single .content h6>.header-mark::before{color:#55bde2}.single .content h2>.header-mark::before{content:"#"}.single .content p{font-size:1rem;margin:.5rem 0}.single .content b,.single .content strong{font-weight:bold}.dark-theme .single .content b,.dark-theme .single .content strong{color:#ddd}.single .content a{color:#2d96bd}.dark-theme .single .content a{color:#55bde2}.single .content a:active,.single .content a:hover{color:#ef3982}.dark-theme .single .content a:active,.dark-theme .single .content a:hover{color:#bdebfc}.single .content a{word-break:break-all;word-break:break-word}.dark-theme .single .content a b,.dark-theme .single .content a strong{color:#55bde2}.single .content .dark-theme a:hover b,.single .content .dark-theme a:hover strong{color:#bdebfc}.single .content ul{padding-left:2rem;list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}.dark-theme .single .content ruby{background:#272C34}.dark-theme .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}.dark-theme .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}.dark-theme .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}.dark-theme .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px double #dcdcdc}.dark-theme .single .content .table-wrapper>table th,.dark-theme .single .content .table-wrapper>table td{border:1px double #4a4b50}.single .content img{max-width:100%;min-height:1.2rem}.single .content figure{text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.5rem;margin:0 auto;font-size:.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content .lazyloading{object-fit:none}.single .content blockquote{font-size:1rem;display:block;border-width:1px 0;border-style:solid;border-color:#dcdcdc;padding:1.5em 1.2em 0.5em 1.2em;margin:0 0 2em 0;position:relative}.single .content blockquote::before{content:'\201C';position:absolute;top:0em;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 .single .content blockquote::before{color:#55bde2}.single .content blockquote::after{content:"#blockquote" attr(cite);display:block;text-align:right;font-size:0.875em;color:#2d96bd}.dark-theme .single .content blockquote::after{color:#55bde2}.dark-theme .single .content blockquote{border-color:#4a4b50}.single .content .footnotes{color:#a9a9b3}.dark-theme .single .content .footnotes{color:#5d5d5f}.single .content code{font-size:13px;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;padding:.2rem .4rem;color:#E74C3C}.dark-theme .single .content code{color:#E5BF78}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}.dark-theme .single .content code,.dark-theme .single .content pre,.dark-theme .single .content .highlight table,.dark-theme .single .content .highlight tr,.dark-theme .single .content .highlight td{background:#272C34}.single .content .highlight>.chroma{margin:1rem 0}.single .content .highlight>.chroma code,.single .content .highlight>.chroma pre{margin:0;padding:0}.single .content .highlight>.chroma::before{display:block;padding:.4rem;font-family:system,-apple-system,BlinkMacSystemFont,"PingFang SC","Segoe UI","Microsoft YaHei","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;color:#b1b0b0;background:#ededed;content:'Code'}.dark-theme .single .content .highlight>.chroma::before{color:#b1b0b0;background:#20252b}.single .content .highlight>.chroma.language-bash::before{content:"Bash"}.single .content .highlight>.chroma.language-c::before{content:"C"}.single .content .highlight>.chroma.language-cs::before{content:"C#"}.single .content .highlight>.chroma.language-cpp::before{content:"C++"}.single .content .highlight>.chroma.language-clojure::before{content:"Clojure"}.single .content .highlight>.chroma.language-coffeescript::before{content:"CoffeeScript"}.single .content .highlight>.chroma.language-css::before{content:"CSS"}.single .content .highlight>.chroma.language-dart::before{content:"Dart"}.single .content .highlight>.chroma.language-diff::before{content:"Diff"}.single .content .highlight>.chroma.language-erlang::before{content:"Erlang"}.single .content .highlight>.chroma.language-go::before{content:"Go"}.single .content .highlight>.chroma.language-go-html-template::before{content:"Go HTML Template"}.single .content .highlight>.chroma.language-groovy::before{content:"Groovy"}.single .content .highlight>.chroma.language-haskell::before{content:"Haskell"}.single .content .highlight>.chroma.language-html::before{content:"HTML"}.single .content .highlight>.chroma.language-http::before{content:"HTTP"}.single .content .highlight>.chroma.language-xml::before{content:"XML"}.single .content .highlight>.chroma.language-java::before{content:"Java"}.single .content .highlight>.chroma.language-js::before{content:"JavaScript"}.single .content .highlight>.chroma.language-javascript::before{content:"JavaScript"}.single .content .highlight>.chroma.language-json::before{content:"JSON"}.single .content .highlight>.chroma.language-kotlin::before{content:"Kotlin"}.single .content .highlight>.chroma.language-latex::before{content:"LaTeX"}.single .content .highlight>.chroma.language-less::before{content:"Less"}.single .content .highlight>.chroma.language-lisp::before{content:"Lisp"}.single .content .highlight>.chroma.language-lua::before{content:"Lua"}.single .content .highlight>.chroma.language-makefile::before{content:"Makefile"}.single .content .highlight>.chroma.language-markdown::before{content:"Markdown"}.single .content .highlight>.chroma.language-matlab::before{content:"Matlab"}.single .content .highlight>.chroma.language-objectivec::before{content:"Objective-C"}.single .content .highlight>.chroma.language-php::before{content:"PHP"}.single .content .highlight>.chroma.language-perl::before{content:"Perl"}.single .content .highlight>.chroma.language-python::before{content:"Python"}.single .content .highlight>.chroma.language-r::before{content:"R"}.single .content .highlight>.chroma.language-ruby::before{content:"Ruby"}.single .content .highlight>.chroma.language-rust::before{content:"Rust"}.single .content .highlight>.chroma.language-scala::before{content:"Scala"}.single .content .highlight>.chroma.language-scss::before{content:"Scss"}.single .content .highlight>.chroma.language-shell::before{content:"Shell"}.single .content .highlight>.chroma.language-sql::before{content:"SQL"}.single .content .highlight>.chroma.language-swift::before{content:"Swift"}.single .content .highlight>.chroma.language-tex::before{content:"TeX"}.single .content .highlight>.chroma.language-toml::before{content:"TOML"}.single .content .highlight>.chroma.language-ts::before{content:"TypeScript"}.single .content .highlight>.chroma.language-typescript::before{content:"TypeScript"}.single .content .highlight>.chroma.language-vue::before{content:"Vue"}.single .content .highlight>.chroma.language-yml::before{content:"YAML"}.single .content .highlight>.chroma.language-yaml::before{content:"YAML"}.single .content .highlight>.chroma .ln{padding-right:.8rem}.single .content .highlight>.chroma .lntd:last-child .hl{display:block;background-color:#e8e8e8}.dark-theme .single .content .highlight>.chroma .lntd:last-child .hl{background-color:#1c2025}.single .content .highlight>.chroma .ln,.single .content .highlight>.chroma .lnt{color:#a9a9b3}.dark-theme .single .content .highlight>.chroma .ln,.dark-theme .single .content .highlight>.chroma .lnt{color:#5d5d5f}.single .content .highlight{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;font-size:13px;line-height:18px}.single .content .highlight .c,.single .content .highlight .ch,.single .content .highlight .cm,.single .content .highlight .c1,.single .content .highlight .cs,.single .content .highlight .cp,.single .content .highlight .cpf{font-style:italic}.single .content .highlight .gl{text-decoration:underline}.single .content .highlight .p{color:#a9a9b3}.single .content .highlight .k{color:#b501a9}.single .content .highlight .kc{color:#b501a9}.single .content .highlight .kd{color:#b501a9}.single .content .highlight .kn{color:#b501a9}.single .content .highlight .kp{color:#b501a9}.single .content .highlight .kr{color:#b501a9}.single .content .highlight .kt{color:#b501a9}.single .content .highlight .n{color:#333}.single .content .highlight .na{color:#2b77fa}.single .content .highlight .nb{color:#f74840}.single .content .highlight .bp{color:#f74840}.single .content .highlight .nc{color:#cb8100}.single .content .highlight .no{color:#2b77fa}.single .content .highlight .nd{color:#0086c1}.single .content .highlight .ni{color:#2b77fa}.single .content .highlight .ne{color:#2b77fa}.single .content .highlight .nf{color:#2b77fa}.single .content .highlight .fm{color:#1ccad6}.single .content .highlight .nl{color:#2b77fa}.single .content .highlight .nn{color:#2b77fa}.single .content .highlight .nx{color:#333}.single .content .highlight .py{color:#2b77fa}.single .content .highlight .nt{color:#2b77fa}.single .content .highlight .nv{color:#2b77fa}.single .content .highlight .vc{color:#2b77fa}.single .content .highlight .vg{color:#2b77fa}.single .content .highlight .vi{color:#2b77fa}.single .content .highlight .vm{color:#2b77fa}.single .content .highlight .l{color:#2aa198}.single .content .highlight .ld{color:#2aa198}.single .content .highlight .s{color:#24a443}.single .content .highlight .sa{color:#24a443}.single .content .highlight .sb{color:#24a443}.single .content .highlight .sc{color:#24a443}.single .content .highlight .dl{color:#24a443}.single .content .highlight .sd{color:#24a443}.single .content .highlight .s2{color:#24a443}.single .content .highlight .se{color:#24a443}.single .content .highlight .sh{color:#24a443}.single .content .highlight .si{color:#24a443}.single .content .highlight .sx{color:#24a443}.single .content .highlight .sr{color:#24a443}.single .content .highlight .s1{color:#24a443}.single .content .highlight .ss{color:#24a443}.single .content .highlight .m{color:#e2893c}.single .content .highlight .mb{color:#e2893c}.single .content .highlight .mf{color:#e2893c}.single .content .highlight .mh{color:#e2893c}.single .content .highlight .mi{color:#e2893c}.single .content .highlight .il{color:#e2893c}.single .content .highlight .mo{color:#e2893c}.single .content .highlight .o{color:#f19b04}.single .content .highlight .ow{color:#b501a9}.single .content .highlight .c{color:#a0a1a8}.single .content .highlight .ch{color:#a0a1a8}.single .content .highlight .cm{color:#a0a1a8}.single .content .highlight .c1{color:#a0a1a8}.single .content .highlight .cs{color:#a0a1a8}.single .content .highlight .cp{color:#a0a1a8}.single .content .highlight .cpf{color:#a0a1a8}.single .content .highlight .g{color:#e72d40}.single .content .highlight .gd{color:#e72d40}.single .content .highlight .ge{color:#e72d40}.single .content .highlight .gr{color:#e72d40}.single .content .highlight .gh{color:#e72d40}.single .content .highlight .gi{color:#e72d40}.single .content .highlight .go{color:#e72d40}.single .content .highlight .gp{color:#e72d40}.single .content .highlight .gs{color:#e72d40}.single .content .highlight .gu{color:#e72d40}.single .content .highlight .gt{color:#e72d40}.single .content .highlight .w{color:#bbb}.dark-theme .single .content .highlight .p{color:#a9a9b3}.dark-theme .single .content .highlight .k{color:#d371e3}.dark-theme .single .content .highlight .kc{color:#d371e3}.dark-theme .single .content .highlight .kd{color:#d371e3}.dark-theme .single .content .highlight .kn{color:#d371e3}.dark-theme .single .content .highlight .kp{color:#d371e3}.dark-theme .single .content .highlight .kr{color:#d371e3}.dark-theme .single .content .highlight .kt{color:#d371e3}.dark-theme .single .content .highlight .n{color:#a9b2c0}.dark-theme .single .content .highlight .na{color:#41b0f5}.dark-theme .single .content .highlight .nb{color:#19b9c4}.dark-theme .single .content .highlight .bp{color:#ecbf6f}.dark-theme .single .content .highlight .nc{color:#ecbf6f}.dark-theme .single .content .highlight .no{color:#41b0f5}.dark-theme .single .content .highlight .nd{color:#ecbf6f}.dark-theme .single .content .highlight .ni{color:#41b0f5}.dark-theme .single .content .highlight .ne{color:#41b0f5}.dark-theme .single .content .highlight .nf{color:#41b0f5}.dark-theme .single .content .highlight .fm{color:#19b9c4}.dark-theme .single .content .highlight .nl{color:#41b0f5}.dark-theme .single .content .highlight .nn{color:#41b0f5}.dark-theme .single .content .highlight .nx{color:#a9a9b3}.dark-theme .single .content .highlight .py{color:#41b0f5}.dark-theme .single .content .highlight .nt{color:#41b0f5}.dark-theme .single .content .highlight .nv{color:#41b0f5}.dark-theme .single .content .highlight .vc{color:#41b0f5}.dark-theme .single .content .highlight .vg{color:#41b0f5}.dark-theme .single .content .highlight .vi{color:#41b0f5}.dark-theme .single .content .highlight .vm{color:#41b0f5}.dark-theme .single .content .highlight .l{color:#2aa198}.dark-theme .single .content .highlight .ld{color:#2aa198}.dark-theme .single .content .highlight .s{color:#8cc570}.dark-theme .single .content .highlight .sa{color:#8cc570}.dark-theme .single .content .highlight .sb{color:#8cc570}.dark-theme .single .content .highlight .sc{color:#8cc570}.dark-theme .single .content .highlight .dl{color:#8cc570}.dark-theme .single .content .highlight .sd{color:#8cc570}.dark-theme .single .content .highlight .s2{color:#8cc570}.dark-theme .single .content .highlight .se{color:#8cc570}.dark-theme .single .content .highlight .sh{color:#8cc570}.dark-theme .single .content .highlight .si{color:#8cc570}.dark-theme .single .content .highlight .sx{color:#8cc570}.dark-theme .single .content .highlight .sr{color:#8cc570}.dark-theme .single .content .highlight .s1{color:#8cc570}.dark-theme .single .content .highlight .ss{color:#8cc570}.dark-theme .single .content .highlight .m{color:#db985c}.dark-theme .single .content .highlight .mb{color:#db985c}.dark-theme .single .content .highlight .mf{color:#db985c}.dark-theme .single .content .highlight .mh{color:#db985c}.dark-theme .single .content .highlight .mi{color:#db985c}.dark-theme .single .content .highlight .il{color:#db985c}.dark-theme .single .content .highlight .mo{color:#db985c}.dark-theme .single .content .highlight .o{color:#ecbf6f}.dark-theme .single .content .highlight .ow{color:#d371e3}.dark-theme .single .content .highlight .c{color:#7e848f}.dark-theme .single .content .highlight .ch{color:#7e848f}.dark-theme .single .content .highlight .cm{color:#7e848f}.dark-theme .single .content .highlight .c1{color:#7e848f}.dark-theme .single .content .highlight .cs{color:#7e848f}.dark-theme .single .content .highlight .cp{color:#7e848f}.dark-theme .single .content .highlight .cpf{color:#7e848f}.dark-theme .single .content .highlight .g{color:#f16372}.dark-theme .single .content .highlight .gd{color:#f16372}.dark-theme .single .content .highlight .ge{color:#f16372}.dark-theme .single .content .highlight .gr{color:#f16372}.dark-theme .single .content .highlight .gh{color:#f16372}.dark-theme .single .content .highlight .gi{color:#f16372}.dark-theme .single .content .highlight .go{color:#f16372}.dark-theme .single .content .highlight .gp{color:#f16372}.dark-theme .single .content .highlight .gs{color:#f16372}.dark-theme .single .content .highlight .gu{color:#f16372}.dark-theme .single .content .highlight .gt{color:#f16372}.dark-theme .single .content .highlight .w{color:#bbb}.single .content .highlight>.chroma table,.single .content .highlight>.chroma tr,.single .content .highlight>.chroma td,.single .content .gist table,.single .content .gist tr,.single .content .gist td{margin:0;border:none !important;white-space:nowrap}.single .content .highlight>.chroma td,.single .content .gist td{padding:.2rem .4rem}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:.4rem .8rem;background-color:#e8e8e8}.single .content .gist .gist-meta a{color:#2d96bd}.dark-theme .single .content .gist .gist-meta a{color:#55bde2}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ef3982}.dark-theme .single .content .gist .gist-meta a:active,.dark-theme .single .content .gist .gist-meta a:hover{color:#bdebfc}.dark-theme .single .content .gist .gist-meta{background-color:#1c2025}.dark-theme .single .content .gist .highlight{background:#141414}.dark-theme .single .content .gist .blob-num,.dark-theme .single .content .gist .blob-code-inner,.dark-theme .single .content .gist .highlight,.dark-theme .single .content .gist .pl-enm,.dark-theme .single .content .gist .pl-ko,.dark-theme .single .content .gist .pl-mo,.dark-theme .single .content .gist .pl-mp1 .pl-sf,.dark-theme .single .content .gist .pl-ms,.dark-theme .single .content .gist .pl-pdc1,.dark-theme .single .content .gist .pl-scp,.dark-theme .single .content .gist .pl-smc,.dark-theme .single .content .gist .pl-som,.dark-theme .single .content .gist .pl-va,.dark-theme .single .content .gist .pl-vpf,.dark-theme .single .content .gist .pl-vpu,.dark-theme .single .content .gist .pl-mdr{color:#aab1bf}.dark-theme .single .content .gist .pl-mb,.dark-theme .single .content .gist .pl-pdb{font-weight:700}.dark-theme .single .content .gist .pl-c,.dark-theme .single .content .gist .pl-c span,.dark-theme .single .content .gist .pl-pdc{color:#5b6270;font-style:italic}.dark-theme .single .content .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}.dark-theme .single .content .gist .pl-ef,.dark-theme .single .content .gist .pl-en,.dark-theme .single .content .gist .pl-enf,.dark-theme .single .content .gist .pl-eoai,.dark-theme .single .content .gist .pl-kos,.dark-theme .single .content .gist .pl-mh .pl-pdh,.dark-theme .single .content .gist .pl-mr{color:#61afef}.dark-theme .single .content .gist .pl-ens,.dark-theme .single .content .gist .pl-vi{color:#be5046}.dark-theme .single .content .gist .pl-enti,.dark-theme .single .content .gist .pl-mai .pl-sf,.dark-theme .single .content .gist .pl-ml,.dark-theme .single .content .gist .pl-sf,.dark-theme .single .content .gist .pl-sr,.dark-theme .single .content .gist .pl-sr .pl-sra,.dark-theme .single .content .gist .pl-src,.dark-theme .single .content .gist .pl-st,.dark-theme .single .content .gist .pl-vo{color:#56b5c2}.dark-theme .single .content .gist .pl-eoi,.dark-theme .single .content .gist .pl-mri,.dark-theme .single .content .gist .pl-pds,.dark-theme .single .content .gist .pl-pse .pl-s1,.dark-theme .single .content .gist .pl-s,.dark-theme .single .content .gist .pl-s1{color:#97c279}.dark-theme .single .content .gist .pl-k,.dark-theme .single .content .gist .pl-kolp,.dark-theme .single .content .gist .pl-mc,.dark-theme .single .content .gist .pl-pde{color:#c578dd}.dark-theme .single .content .gist .pl-mi,.dark-theme .single .content .gist .pl-pdi{color:#c578dd;font-style:italic}.dark-theme .single .content .gist .pl-mp,.dark-theme .single .content .gist .pl-stp{color:#818896}.dark-theme .single .content .gist .pl-mdh,.dark-theme .single .content .gist .pl-mdi,.dark-theme .single .content .gist .pl-mdr{font-weight:400}.dark-theme .single .content .gist .pl-mdht,.dark-theme .single .content .gist .pl-mi1{color:#97c279;background:#020}.dark-theme .single .content .gist .pl-md,.dark-theme .single .content .gist .pl-mdhf{color:#df6b75;background:#200}.dark-theme .single .content .gist .pl-corl{color:#df6b75;text-decoration:underline}.dark-theme .single .content .gist .pl-ib{background:#df6b75}.dark-theme .single .content .gist .pl-ii{background:#e0c184;color:#fff}.dark-theme .single .content .gist .pl-iu{background:#e05151}.dark-theme .single .content .gist .pl-ms1{color:#aab1bf;background:#373b41}.dark-theme .single .content .gist .pl-c1,.dark-theme .single .content .gist .pl-cn,.dark-theme .single .content .gist .pl-e,.dark-theme .single .content .gist .pl-eoa,.dark-theme .single .content .gist .pl-eoac,.dark-theme .single .content .gist .pl-eoac .pl-pde,.dark-theme .single .content .gist .pl-kou,.dark-theme .single .content .gist .pl-mm,.dark-theme .single .content .gist .pl-mp .pl-s3,.dark-theme .single .content .gist .pl-mq,.dark-theme .single .content .gist .pl-s3,.dark-theme .single .content .gist .pl-sok,.dark-theme .single .content .gist .pl-sv,.dark-theme .single .content .gist .pl-mb{color:#d19965}.dark-theme .single .content .gist .pl-enc,.dark-theme .single .content .gist .pl-entc,.dark-theme .single .content .gist .pl-pse .pl-s2,.dark-theme .single .content .gist .pl-s2,.dark-theme .single .content .gist .pl-sc,.dark-theme .single .content .gist .pl-smp,.dark-theme .single .content .gist .pl-sr .pl-sre,.dark-theme .single .content .gist .pl-stj,.dark-theme .single .content .gist .pl-v,.dark-theme .single .content .gist .pl-pdb{color:#e4bf7a}.dark-theme .single .content .gist .pl-ent,.dark-theme .single .content .gist .pl-entl,.dark-theme .single .content .gist .pl-entm,.dark-theme .single .content .gist .pl-mh,.dark-theme .single .content .gist .pl-pdv,.dark-theme .single .content .gist .pl-smi,.dark-theme .single .content .gist .pl-sol,.dark-theme .single .content .gist .pl-mdh,.dark-theme .single .content .gist .pl-mdi{color:#df6b75}.dark-theme .single .content iframe.instagram-media{border:none !important}.single .content .admonition{position:relative;margin:.9765em 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{margin:0 -0.75rem;padding:.2rem .75rem .2rem 1.8rem;border-bottom:0.05rem solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{margin:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;cursor:auto;position:absolute;left:.6rem;top:.6rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(158,158,158,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(158,158,158,0.1);background-color:rgba(158,158,158,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content details.admonition summary{display:block;outline:none;cursor:pointer}.single .content details.admonition summary::-webkit-details-marker{display:none}.single .content details.admonition summary i.details{position:absolute;top:.5rem;right:.5rem;color:#161209}.dark-theme .single .content details.admonition summary i.details{color:#a9a9b3}.single .content details.admonition[open] i.details{transform:rotate(180deg)}.single .content .echarts{width:100%;height:30rem;margin:3% auto;text-align:center}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #dcdcdc;border-bottom:none}.dark-theme .single .content hr{border-top:1px dashed #4a4b50}.single .content kbd{display:inline-block;padding:.25rem;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:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;color:#E74C3C}.dark-theme .single .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}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;font-weight:bold;word-break:break-all}.single .content .version{font-weight:bold;font-style:normal;color:#df1a08}.dark-theme .single .content .version{color:#fff}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #dcdcdc;padding:1rem 0 0.3rem}.dark-theme .single .post-footer .post-info{border-bottom:1px solid #4a4b50}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}.dark-theme .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a{color:#2d96bd}.dark-theme .single .post-footer .post-info .post-info-line .post-info-mod a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}.dark-theme .single .post-footer .post-info .post-info-line .post-info-mod a:active,.dark-theme .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#bdebfc}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}.dark-theme .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a{color:#2d96bd}.dark-theme .single .post-footer .post-info .post-info-line .post-info-md a{color:#55bde2}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}.dark-theme .single .post-footer .post-info .post-info-line .post-info-md a:active,.dark-theme .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#bdebfc}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all ease-out .3s;-moz-transition:all ease-out .3s;-o-transition:all ease-out .3s;transition:all ease-out .3s}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .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 .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.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 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}.dark-theme .archive .archive-item-link:hover{color:#fff;text-decoration:none;transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}.archive .archive-item-date{float:right;text-align:right;color:#a9a9b3}.dark-theme .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{color:#161209}.dark-theme .archive .tag-cloud-tags a{color:#a9a9b3}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2d96bd}.dark-theme .archive .tag-cloud-tags a:active,.dark-theme .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;overflow-wrap:break-word;-webkit-transition:all ease-out .3s;-moz-transition:all ease-out .3s;-o-transition:all ease-out .3s;transition:all ease-out .3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a small{color:#a9a9b3}.dark-theme .archive .tag-cloud-tags a small{color:#5d5d5f}.home .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding:2rem 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{width:6rem;height:auto;display:inline-block;-webkit-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);margin:0 auto;-webkit-transition:all ease 0.4s;-moz-transition:all ease 0.4s;-o-transition:all ease 0.4s;transition:all ease 0.4s;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .social-links{padding:.4rem 0}.home .home-profile .social-links a,.home .home-profile .social-links i{font-size:1.6rem;line-height:2rem}.home .home-profile .social-links img{height:1.4rem;padding:0 .25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.4rem;font-weight:normal;margin:0;padding:.4rem;color:#a9a9b3}.dark-theme .home .home-profile .home-disclaimer{color:#5d5d5f}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #dcdcdc}.dark-theme .home .summary{color:#a9a9b3;border-bottom:1px dashed #4a4b50}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.home .summary .single-title{font-size:1.4rem;line-height:140%;margin:0.4rem 0}.home .summary .content{display:-moz-box;display:-webkit-box;-moz-box-orient:vertical;-webkit-box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}.dark-theme .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6{line-height:2}.home .summary .content h2::before,.home .summary .content h3::before,.home .summary .content h4::before,.home .summary .content h5::before,.home .summary .content h6::before{content:"|";margin-right:.3125rem;color:#161209}.dark-theme .home .summary .content h2::before,.dark-theme .home .summary .content h3::before,.dark-theme .home .summary .content h4::before,.dark-theme .home .summary .content h5::before,.dark-theme .home .summary .content h6::before{color:#a9a9b3}.home .summary .content h2{font-size:1.2rem}.home .summary .content h2::before{content:"#"}.home .summary .content a{color:#161209}.dark-theme .home .summary .content a{color:#a9a9b3}.home .summary .content a:active,.home .summary .content a:hover{color:#2d96bd}.dark-theme .home .summary .content a:active,.dark-theme .home .summary .content a:hover{color:#fff}.dark-theme .home .summary .content b,.dark-theme .home .summary .content strong{color:#5d5d5f}.home .summary .post-footer{margin-top:.4rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.home .summary .post-footer a{color:#2d96bd}.dark-theme .home .summary .post-footer a{color:#55bde2}.home .summary .post-footer a:active,.home .summary .post-footer a:hover{color:#ef3982}.dark-theme .home .summary .post-footer a:active,.dark-theme .home .summary .post-footer a:hover{color:#bdebfc}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a{color:#161209}.dark-theme .home .summary .post-footer .post-tags a{color:#a9a9b3}.home .summary .post-footer .post-tags a:active,.home .summary .post-footer .post-tags a:hover{color:#2d96bd}.dark-theme .home .summary .post-footer .post-tags a:active,.dark-theme .home .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;transform:translateY(30vh);text-align:center}header{width:100%;z-index:100;background-color:#f8f8f8}.dark-theme header{background-color:#252627}header .header-title{font-family:"Nunito",system,-apple-system,BlinkMacSystemFont,"PingFang SC","Segoe UI","Microsoft YaHei","wenquanyi micro hei","Hiragino Sans GB","Hiragino Sans GB W3","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}header .menu .menu-item{position:relative}header .language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}header .language-select:hover{cursor:pointer}header .theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{width:auto;text-align:center;padding:0 3%;display:flex;justify-content:space-between}#header-desktop .header-wrapper .header-title{font-size:1.5rem;max-width:30%}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-item{margin:0 .5rem}#header-desktop .header-wrapper .menu .menu-item.theme-switch{margin:0 .3rem}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}.dark-theme #header-desktop .header-wrapper .menu a.active{color:#fff}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-wrapper{padding:0;margin:0;transition:all 0.3s ease 0s}#header-mobile .header-wrapper .header-container{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:1.125rem;padding-right:1rem;padding-left:1rem;box-sizing:border-box}#header-mobile .header-wrapper .header-container .header-title{max-width:80%;font-size:1.5rem}#header-mobile .header-wrapper .header-container .menu-toggle{cursor:pointer;line-height:4rem}#header-mobile .header-wrapper .header-container .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:.1s margin .1s, .1s transform;-moz-transition:.1s margin .1s, .1s transform;-o-transition:.1s margin .1s, .1s transform;transition:.1s margin .1s, .1s transform}.dark-theme #header-mobile .header-wrapper .header-container .menu-toggle span{background:#a9a9b3}#header-mobile .header-wrapper .header-container .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-wrapper .header-container .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-wrapper .header-container .menu-toggle.active span{-webkit-transition:.1s margin, .1s transform .1s;-moz-transition:.1s margin, .1s transform .1s;-o-transition:.1s margin, .1s transform .1s;transition:.1s margin, .1s transform .1s}#header-mobile .header-wrapper .header-container .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-wrapper .header-container .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-wrapper .header-container .menu-toggle.active span:nth-child(3){-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-wrapper .menu{text-align:center;background:#fff;border-top:2px solid #161209;display:none;box-shadow:0px 2px 4px rgba(0,0,0,0.1),0px 4px 8px rgba(0,0,0,0.1)}#header-mobile .header-wrapper .menu a{display:block;line-height:2.5rem}#header-mobile .header-wrapper .menu.active{display:block}.dark-theme #header-mobile .header-wrapper .menu{background:#292a2d;border-top:2px solid #a9a9b3}.copyright{font-size:.875rem}.copyright .copyright-line{width:100%}.copyright .copyright-line .icp-br{display:none}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{-webkit-font-smoothing:antialiased;font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}.dark-theme .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;transition:0.3s;bottom:0px}.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: 1440px){.page{max-width:56%}}@media only screen and (max-width: 1200px){.page{max-width:52%}}@media only screen and (max-width: 960px){.page{max-width:80%}.page #toc-auto{display:none}.page #toc-static{display:block}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}.page{max-width:100%;padding-top:3.5rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}}
/*# sourceMappingURL=style.min.css.map */ \ No newline at end of file