diff --git a/assets/css/_page/_single.scss b/assets/css/_page/_single.scss index 72990bf..aaa6e22 100644 --- a/assets/css/_page/_single.scss +++ b/assets/css/_page/_single.scss @@ -54,7 +54,6 @@ @import "../_partial/_single/toc"; .content { - h1, h2, h3, h4, @@ -66,22 +65,7 @@ .dark-theme & { font-weight: bolder; } - } - h2 > a:first-child::before { - content: "#"; - margin-right: .3125rem; - color: $single-link-color; - - .dark-theme & { - color: $single-link-color-dark; - } - } - - h3, - h4, - h5, - h6 { & > a:first-child::before { content: "|"; margin-right: .3125rem; @@ -93,6 +77,10 @@ } } + h2 > a:first-child::before { + content: "#"; + } + p { font-size: 1rem; margin: .5rem 0; diff --git a/assets/css/_partial/_home/_summary.scss b/assets/css/_partial/_home/_summary.scss index 06f5d2a..c96a019 100644 --- a/assets/css/_partial/_home/_summary.scss +++ b/assets/css/_partial/_home/_summary.scss @@ -59,31 +59,47 @@ overflow: hidden; text-overflow: ellipsis; overflow-wrap: break-word; - } - h1, - h2, - h3, - h4, - h5, - h6, - p { - font-size: 1rem; - display: inline; + h2, + h3, + h4, + h5, + h6, + p { + font-size: 1rem; + display: inline; - &::after { - content: "\A"; - white-space: pre; + &::after { + content: "\A"; + white-space: pre; + } } - } - h1, - h2, - h3, - h4, - h5, - h6 { - line-height: 2; + h2, + h3, + h4, + h5, + h6 { + line-height: 2; + + &::before { + content: "|"; + margin-right: .3125rem; + color: $single-link-color; + + .dark-theme & { + color: $single-link-color-dark; + } + } + } + + h2 { + font-size: 1.2rem; + + &::before { + content: "#"; + } + } } .post-footer { diff --git a/assets/css/_partial/_single/_admonition.scss b/assets/css/_partial/_single/_admonition.scss index 7d44a96..96d28fa 100644 --- a/assets/css/_partial/_single/_admonition.scss +++ b/assets/css/_partial/_single/_admonition.scss @@ -14,6 +14,10 @@ font-weight: 700; } + .admonition-content { + margin: .5rem 0; + } + i.icon { font-size: 16px; color: map-get($admonition-color-map, 'note'); diff --git a/exampleSite/content/posts/test.zh.md b/exampleSite/content/posts/test.zh.md index f6abb40..e3bab93 100644 --- a/exampleSite/content/posts/test.zh.md +++ b/exampleSite/content/posts/test.zh.md @@ -22,7 +22,7 @@ comment: false dev: true --- -## This is a test page +## :(fas fa-rocket): This is a test page [https://www.aol.com/article/entertainment/2020/02/10/oscars-viewership-hits-new-low-with-236-million-viewers/23923047/](https://www.aol.com/article/entertainment/2020/02/10/oscars-viewership-hits-new-low-with-236-million-viewers/23923047/) diff --git a/i18n/en.toml b/i18n/en.toml index 7e0eed4..c11e531 100644 --- a/i18n/en.toml +++ b/i18n/en.toml @@ -46,10 +46,10 @@ other = "Powered by %s" other = "Theme - " # === partials/footer.html === -# === partials/post/share.html === +# === partials/plugin/share.html === [share] other = "Share on" -# === partials/post/share.html === +# === partials/plugin/share.html === # === posts/single.html === [toc] diff --git a/i18n/zh.toml b/i18n/zh.toml index 7062231..60a5792 100644 --- a/i18n/zh.toml +++ b/i18n/zh.toml @@ -46,10 +46,10 @@ other = "由 %s 强力驱动" other = "主题 - " # === partials/footer.html === -# === partials/post/share.html === +# === partials/plugin/share.html === [share] other = "分享到" -# === partials/post/share.html === +# === partials/plugin/share.html === # === posts/single.html === [toc] diff --git a/layouts/_default/_markup/render-image.html b/layouts/_default/_markup/render-image.html index b448d20..5f27a8c 100644 --- a/layouts/_default/_markup/render-image.html +++ b/layouts/_default/_markup/render-image.html @@ -1,5 +1,5 @@
- {{- partial "function/image.html" (dict "src" .Destination "alt" .Text "title" .Title ) -}} + {{- partial "plugin/image.html" (dict "src" .Destination "alt" .Text "title" .Title ) -}} {{- with .Title | default .Text -}}
{{- . | safeHTML -}} diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html index c7382c0..35e77e8 100644 --- a/layouts/_default/_markup/render-link.html +++ b/layouts/_default/_markup/render-link.html @@ -1,3 +1,2 @@ - - {{- .Text | safeHTML -}} - +{{- $options := dict "href" .Destination "title" .Title "content" .Text -}} +{{- partial "plugin/link.html" $options -}} diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 187f4ec..13e3e21 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -9,7 +9,7 @@ {{- /* Content */ -}}
- {{- partial "function/content.html" .Content -}} + {{- partial "single/content.html" .Content -}}
{{- end -}} diff --git a/layouts/_default/summary.html b/layouts/_default/summary.html index 852756b..d13273e 100644 --- a/layouts/_default/summary.html +++ b/layouts/_default/summary.html @@ -3,7 +3,7 @@ {{- with .Params.featuredImage -}} {{- end -}} @@ -44,7 +44,7 @@ {{- /* Summary content */ -}}
- {{- partial "function/content.html" .Summary -}} + {{- partial "single/content.html" .Summary -}}
{{- /* Footer */ -}} diff --git a/layouts/partials/function/icon-link.html b/layouts/partials/function/icon-link.html deleted file mode 100644 index 0593855..0000000 --- a/layouts/partials/function/icon-link.html +++ /dev/null @@ -1,3 +0,0 @@ - - {{- partial "function/icon.html" . -}} - diff --git a/layouts/partials/home/profile.html b/layouts/partials/home/profile.html index 4b5d839..4f15817 100644 --- a/layouts/partials/home/profile.html +++ b/layouts/partials/home/profile.html @@ -32,7 +32,7 @@ diff --git a/layouts/partials/home/social.html b/layouts/partials/home/social.html deleted file mode 100644 index 90b42d2..0000000 --- a/layouts/partials/home/social.html +++ /dev/null @@ -1,432 +0,0 @@ -{{- /* 001: Github */ -}} -{{- with .Site.Params.Social.Github -}} - {{- $options := dict "href" (printf "https://github.com/%s" .) "title" "GitHub" -}} - {{- $options = dict "class" "fab fa-github-alt fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 002: LinkedIn */ -}} -{{- with .Site.Params.Social.LinkedIn -}} - {{- $options := dict "href" (printf "https://linkedin.com/in/%s" .) "title" "LinkedIn" -}} - {{- $options = dict "class" "fab fa-linkedin fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 003: Twitter */ -}} -{{- with .Site.Params.Social.Twitter -}} - {{- $options := dict "href" (printf "https://twitter.com/%s" .) "title" "Twitter" -}} - {{- $options = dict "class" "fab fa-twitter fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 004: Instagram */ -}} -{{- with .Site.Params.Social.Instagram -}} - {{- $options := dict "href" (printf "https://www.instagram.com/%s" .) "title" "Instagram" -}} - {{- $options = dict "class" "fab fa-instagram fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 005: Facebook */ -}} -{{- with .Site.Params.Social.Facebook -}} - {{- $options := dict "href" (printf "https://facebook.com/%s" .) "title" "Facebook" -}} - {{- $options = dict "class" "fab fa-facebook fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 006: Telegram */ -}} -{{- with .Site.Params.Social.Telegram -}} - {{- $options := dict "href" (printf "https://t.me/%s" .) "title" "Telegram" -}} - {{- $options = dict "class" "fab fa-telegram-plane fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 007: Medium */ -}} -{{- with .Site.Params.Social.Medium -}} - {{- $options := dict "href" (printf "https://medium.com/%s" .) "title" "Medium" -}} - {{- $options = dict "class" "fab fa-medium fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 008: Medium */ -}} -{{- with .Site.Params.Social.Gitlab -}} - {{- $options := dict "href" (printf "https://gitlab.com/%s" .) "title" "GitLab" -}} - {{- $options = dict "class" "fab fa-gitlab fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 009: YouTube Legacy */ -}} -{{- with .Site.Params.Social.Youtubelegacy -}} - {{- $options := dict "href" (printf "https://www.youtube.com/user/%s" .) "title" "YouTube" -}} - {{- $options = dict "class" "fab fa-youtube fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 010: YouTube Custom */ -}} -{{- with .Site.Params.Social.Youtubecustom -}} - {{- $options := dict "href" (printf "https://www.youtube.com/c/%s" .) "title" "YouTube" -}} - {{- $options = dict "class" "fab fa-youtube fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 011: Youtube Channel */ -}} -{{- with .Site.Params.Social.Youtubechannel -}} - {{- $options := dict "href" (printf "https://www.youtube.com/channel/%s" .) "title" "YouTube" -}} - {{- $options = dict "class" "fab fa-youtube fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 012: Tumblr */ -}} -{{- with .Site.Params.Social.Tumblr -}} - {{- $options := dict "href" (printf "https://%s.tumblr.com" .) "title" "Tumblr" -}} - {{- $options = dict "class" "fab fa-tumblr fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 013: Quora */ -}} -{{- with .Site.Params.Social.Quora -}} - {{- $options := dict "href" (printf "https://www.quora.com/profile/%s" .) "title" "Quora" -}} - {{- $options = dict "class" "fab fa-quora fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 014: Keybase */ -}} -{{- with .Site.Params.Social.Keybase -}} - {{- $options := dict "href" (printf "https://keybase.io/%s" .) "title" "Keybase" -}} - {{- $options = dict "class" "fab fa-keybase fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 015: Pinterest */ -}} -{{- with .Site.Params.Social.Pinterest -}} - {{- $options := dict "href" (printf "https://www.pinterest.com/%s" .) "title" "Pinterest" -}} - {{- $options = dict "class" "fab fa-pinterest fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 016: Reddit */ -}} -{{- with .Site.Params.Social.Reddit -}} - {{- $options := dict "href" (printf "https://www.reddit.com/user/%s" .) "title" "Reddit" -}} - {{- $options = dict "class" "fab fa-reddit fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 017: CodePen */ -}} -{{- with .Site.Params.Social.Codepen -}} - {{- $options := dict "href" (printf "https://codepen.io/%s" .) "title" "CodePen" -}} - {{- $options = dict "class" "fab fa-codepen fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 018: freeCodeCamp */ -}} -{{- with .Site.Params.Social.FreeCodeCamp -}} - {{- $options := dict "href" (printf "https://freecodecamp.org/%s" .) "title" "freeCodeCamp" -}} - {{- $options = dict "class" "fab fa-free-code-camp fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 019: Bitbucket */ -}} -{{- with .Site.Params.Social.Bitbucket -}} - {{- $options := dict "href" (printf "https://bitbucket.org/%s" .) "title" "Bitbucket" -}} - {{- $options = dict "class" "fab fa-bitbucket fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 020: Stack Overflow */ -}} -{{- with .Site.Params.Social.Stackoverflow -}} - {{- $options := dict "href" (printf "https://stackoverflow.com/users/%s" .) "title" "Stack Overflow" -}} - {{- $options = dict "class" "fab fa-stack-overflow fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 021: 微博 */ -}} -{{- with .Site.Params.Social.Weibo -}} - {{- $options := dict "href" (printf "https://weibo.com/%s" .) "title" "微博" -}} - {{- $options = dict "class" "fab fa-weibo fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 022: OK.RU */ -}} -{{- with .Site.Params.Social.Odnoklassniki -}} - {{- $options := dict "href" (printf "https://ok.ru/%s" .) "title" "OK.RU" -}} - {{- $options = dict "class" "fab fa-odnoklassniki fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 023: VK */ -}} -{{- with .Site.Params.Social.VK -}} - {{- $options := dict "href" (printf "https://vk.com/%s" .) "title" "VK" -}} - {{- $options = dict "class" "fab fa-vk fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 024: Flickr */ -}} -{{- with .Site.Params.Social.Flickr -}} - {{- $options := dict "href" (printf "https://www.flickr.com/photos/%s" .) "title" "Flickr" -}} - {{- $options = dict "class" "fab fa-flickr fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 025: Xing */ -}} -{{- with .Site.Params.Social.Xing -}} - {{- $options := dict "href" (printf "https://www.xing.com/profile/%s" .) "title" "Xing" -}} - {{- $options = dict "class" "fab fa-xing fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 026: Snapchat */ -}} -{{- with .Site.Params.Social.Snapchat -}} - {{- $options := dict "href" (printf "https://www.snapchat.com/add/%s" .) "title" "Snapchat" -}} - {{- $options = dict "class" "fab fa-snapchat fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 027: SoundCloud */ -}} -{{- with .Site.Params.Social.Soundcloud -}} - {{- $options := dict "href" (printf "https://soundcloud.com/%s" .) "title" "SoundCloud" -}} - {{- $options = dict "class" "fab fa-soundcloud fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 028: Spotify */ -}} -{{- with .Site.Params.Social.Spotify -}} - {{- $options := dict "href" (printf "https://open.spotify.com/user/%s" .) "title" "Spotify" -}} - {{- $options = dict "class" "fab fa-spotify fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 029: Bandcamp */ -}} -{{- with .Site.Params.Social.Bandcamp -}} - {{- $options := dict "href" (printf "https://%s.bandcamp.com/" .) "title" "Bandcamp" -}} - {{- $options = dict "class" "fab fa-bandcamp fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 030: PayPal */ -}} -{{- with .Site.Params.Social.Paypal -}} - {{- $options := dict "href" (printf "https://paypal.me/%s" .) "title" "PayPal" -}} - {{- $options = dict "class" "fab fa-paypal fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 031: 500px */ -}} -{{- with .Site.Params.Social.Fivehundredpx -}} - {{- $options := dict "href" (printf "https://500px.com/%s" .) "title" "500px" -}} - {{- $options = dict "class" "fab fa-500px fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 032: Mix */ -}} -{{- with .Site.Params.Social.Mix -}} - {{- $options := dict "href" (printf "https://mix.com/%s" .) "title" "Mix" -}} - {{- $options = dict "class" "fab fa-mix fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 033: Goodreads */ -}} -{{- with .Site.Params.Social.Goodreads -}} - {{- $options := dict "href" (printf "https://www.goodreads.com/user/show/%s" .) "title" "Goodreads" -}} - {{- $options = dict "class" "fab fa-goodreads fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 034: Last.fm */ -}} -{{- with .Site.Params.Social.Lastfm -}} - {{- $options := dict "href" (printf "https://www.last.fm/user/%s" .) "title" "Last.fm" -}} - {{- $options = dict "class" "fab fa-lastfm fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 035: Foursquare */ -}} -{{- with .Site.Params.Social.Foursquare -}} - {{- $options := dict "href" (printf "https://foursquare.com/%s" .) "title" "Foursquare" -}} - {{- $options = dict "class" "fab fa-foursquare fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 036: Hacker News */ -}} -{{- with .Site.Params.Social.Hackernews -}} - {{- $options := dict "href" (printf "https://news.ycombinator.com/user?id=%s" .) "title" "Hacker News" -}} - {{- $options = dict "class" "fab fa-hacker-news fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 037: Kickstarter */ -}} -{{- with .Site.Params.Social.Kickstarter -}} - {{- $options := dict "href" (printf "https://kickstarter.com/profile/%s" .) "title" "Kickstarter" -}} - {{- $options = dict "class" "fab fa-kickstarter fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 038: Patreon */ -}} -{{- with .Site.Params.Social.Patreon -}} - {{- $options := dict "href" (printf "https://patreon.com/%s" .) "title" "Patreon" -}} - {{- $options = dict "class" "fab fa-patreon fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 039: Steam */ -}} -{{- with .Site.Params.Social.Steam -}} - {{- $options := dict "href" (printf "https://steamcommunity.com/id/%s" .) "title" "Steam" -}} - {{- $options = dict "class" "fab fa-steam fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 040: Twitch */ -}} -{{- with .Site.Params.Social.Twitch -}} - {{- $options := dict "href" (printf "https://www.twitch.tv/%s" .) "title" "Twitch" -}} - {{- $options = dict "class" "fab fa-twitch fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 041: Strava */ -}} -{{- with .Site.Params.Social.Strava -}} - {{- $options := dict "href" (printf "https://www.strava.com/athletes/%s" .) "title" "Strava" -}} - {{- $options = dict "class" "fab fa-strava fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 042: Skype */ -}} -{{- with .Site.Params.Social.Skype -}} - {{- $options := dict "href" (printf "skype:%s" .) "title" "Skype" -}} - {{- $options = dict "class" "fab fa-skype fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 043: WhatsApp */ -}} -{{- with .Site.Params.Social.Whatsapp -}} - {{- $options := dict "href" (printf "https://wa.me/%s" .) "title" "WhatsApp" -}} - {{- $options = dict "class" "fab fa-whatsapp fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 044: 知乎 */ -}} -{{- with .Site.Params.Social.Zhihu -}} - {{- $options := dict "href" (printf "https://www.zhihu.com/people/%s" .) "title" "知乎" -}} - {{- $options = dict "class" "loveit it-zhihu-line" "type" "other" "scratch" $.Scratch | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 045: Angellist */ -}} -{{- with .Site.Params.Social.Angellist -}} - {{- $options := dict "href" (printf "https://angel.co/%s" .) "title" "Angellist" -}} - {{- $options = dict "class" "fab fa-angellist fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 046: SlideShare */ -}} -{{- with .Site.Params.Social.Slideshare -}} - {{- $options := dict "href" (printf "https://slideshare.com/%s" .) "title" "SlideShare" -}} - {{- $options = dict "class" "fab fa-slideshare fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 047: JSFiddle */ -}} -{{- with .Site.Params.Social.Jsfiddle -}} - {{- $options := dict "href" (printf "https://jsfiddle.com/%s" .) "title" "JSFiddle" -}} - {{- $options = dict "class" "fab fa-jsfiddle fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 048: DeviantArt */ -}} -{{- with .Site.Params.Social.Deviantart -}} - {{- $options := dict "href" (printf "https://%s.deviantart.com/" .) "title" "DeviantArt" -}} - {{- $options = dict "class" "fab fa-deviantart fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 049: Behance */ -}} -{{- with .Site.Params.Social.Behance -}} - {{- $options := dict "href" (printf "https://behance.net/%s" .) "title" "Behance" -}} - {{- $options = dict "class" "fab fa-behance fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 050: Dribbble */ -}} -{{- with .Site.Params.Social.Dribble -}} - {{- $options := dict "href" (printf "https://dribbble.com/%s" .) "title" "Dribbble" -}} - {{- $options = dict "class" "fab fa-dribbble fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 051: WordPress */ -}} -{{- with .Site.Params.Social.Wordpress -}} - {{- $options := dict "href" (printf "https://%s.wordpress.com/" .) "title" "WordPress" -}} - {{- $options = dict "class" "fab fa-wordpress fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 052: Vine */ -}} -{{- with .Site.Params.Social.Vine -}} - {{- $options := dict "href" (printf "https://vine.co/%s" .) "title" "Vine" -}} - {{- $options = dict "class" "fab fa-vine fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 053: Google Scholar */ -}} -{{- with .Site.Params.Social.Googlescholar -}} - {{- $options := dict "href" (printf "https://scholar.google.com/citations?%s" .) "title" "Google Scholar" -}} - {{- $options = dict "class" "fab fa-google fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 054: ResearchGate */ -}} -{{- with .Site.Params.Social.Researchgate -}} - {{- $options := dict "href" (printf "https://www.researchgate.net/profile/%s" .) "title" "ResearchGate" -}} - {{- $options = dict "class" "fab fa-researchgate fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 055: Mastodon */ -}} -{{- with .Site.Params.Social.Mastodon -}} - {{- $MastodonPrefix := $.Site.Params.Social.MastodonPrefix | default "https://mastodon.social" -}} - {{- $options := dict "href" (printf "%s/%s" $MastodonPrefix .) "title" "Mastodon" -}} - {{- $options = dict "class" "fab fa-mastodon fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 054: Dev.To */ -}} -{{- with .Site.Params.Social.Devto -}} - {{- $options := dict "href" (printf "https://dev.to/%s" .) "title" "Dev.To" -}} - {{- $options = dict "class" "fab fa-dev fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 055: Gitea */ -}} -{{- with .Site.Params.Social.Gitea -}} - {{- $options := dict "href" . "title" "Gitea" -}} - {{- $options = dict "class" "fa fa-gitea fa-fw" "type" "fo" "scratch" $.Scratch | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 056: XMPP */ -}} -{{- with .Site.Params.Social.XMPP -}} - {{- $options := dict "href" (printf "xmpp:%s" .) "title" "XMPP" -}} - {{- $options = dict "class" "fa fa-xmpp fa-fw" "type" "fo" "scratch" $.Scratch | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 057: Matrix */ -}} -{{- with .Site.Params.Social.Matrix -}} - {{- $options := dict "href" (printf "https://matrix.to/#/%s" .) "title" "Matrix" -}} - {{- $options = dict "class" "fa fa-matrix-org fa-fw" "type" "fo" "scratch" $.Scratch | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 058: bilibili */ -}} -{{- with .Site.Params.Social.Bilibili -}} - {{- $options := dict "href" (printf "https://space.bilibili.com/%s" .) "title" "bilibili" -}} - {{- $options = dict "class" "loveit it-bilibili-fill" "type" "other" "scratch" $.Scratch | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* 059: Email */ -}} -{{- with .Site.Params.Social.Email -}} - {{- $options := dict "href" (printf "mailto:%s" .) "title" "Email" -}} - {{- $options = dict "class" "far fa-envelope fa-fw" | merge $options -}} - {{- partial "function/icon-link.html" $options -}} -{{- end -}} - -{{- /* Custom */ -}} -{{- with .Site.Params.Social.Custom -}} - {{- . | safeHTML -}} -{{- end -}} diff --git a/layouts/partials/function/icon.html b/layouts/partials/plugin/icon.html similarity index 70% rename from layouts/partials/function/icon.html rename to layouts/partials/plugin/icon.html index a6d7314..b65f1fa 100644 --- a/layouts/partials/function/icon.html +++ b/layouts/partials/plugin/icon.html @@ -1,11 +1,8 @@ {{- $type := index . "type" | default "fa" -}} {{- $classList := split (index . "class") " " -}} {{- $scratch := index . "scratch" -}} -{{- /* Font Awesome */ -}} -{{- if eq $type "fa" -}} - {{- /* Fork Awesome */ -}} -{{- else if eq $type "fo" -}} +{{- if eq $type "fo" -}} {{- $newClassList := slice -}} {{- range $classList -}} {{- if eq . "fa" -}} @@ -14,10 +11,12 @@ {{- $newClassList = $newClassList | append (replaceRE `^fa\-(.+)$` `fo-$1` .) -}} {{- end -}} {{- end -}} - + {{- $classList = $newClassList -}} {{- $scratch.Set "forkawesome" true -}} + +{{- /* default is Font Awesome */ -}} {{- /* Others */ -}} -{{- else -}} - +{{- else if ne $type "fa" -}} {{- $scratch.Set "iconfont" true -}} {{- end -}} + diff --git a/layouts/partials/function/image.html b/layouts/partials/plugin/image.html similarity index 100% rename from layouts/partials/function/image.html rename to layouts/partials/plugin/image.html diff --git a/layouts/partials/plugin/link.html b/layouts/partials/plugin/link.html new file mode 100644 index 0000000..8a8f4ea --- /dev/null +++ b/layouts/partials/plugin/link.html @@ -0,0 +1,9 @@ +{{- $href := index . "href" -}} + + {{- with index . "icon" -}} + {{- partial "plugin/icon.html" . -}} + {{- end -}} + {{- with index . "content" -}} + {{- . | safeHTML -}} + {{- end -}} + diff --git a/layouts/partials/post/share.html b/layouts/partials/plugin/share.html similarity index 77% rename from layouts/partials/post/share.html rename to layouts/partials/plugin/share.html index 0ee087e..d75b6fb 100644 --- a/layouts/partials/post/share.html +++ b/layouts/partials/plugin/share.html @@ -4,196 +4,196 @@ {{- /* 001: Twitter */ -}} {{- if .Params.Share.Twitter | default .Site.Params.Share.Twitter | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-twitter fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-twitter fa-fw") -}} {{- end -}} {{- /* 002: Facebook */ -}} {{- if .Params.Share.Facebook | default .Site.Params.Share.Facebook | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-facebook-square fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-facebook-square fa-fw") -}} {{- end -}} {{- /* 003: Linkedin */ -}} {{- if .Params.Share.Linkedin | default .Site.Params.Share.Linkedin | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-linkedin fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-linkedin fa-fw") -}} {{- end -}} {{- /* 004: WhatsApp */ -}} {{- if .Params.Share.Whatsapp | default .Site.Params.Share.Whatsapp | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-whatsapp fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-whatsapp fa-fw") -}} {{- end -}} {{- /* 005: Viber */ -}} {{- if .Params.Share.Viber | default .Site.Params.Share.Viber | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-viber fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-viber fa-fw") -}} {{- end -}} {{- /* 006: Pinterest */ -}} {{- if .Params.Share.Pinterest | default .Site.Params.Share.Pinterest | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-pinterest fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-pinterest fa-fw") -}} {{- end -}} {{- /* 007: Tumblr */ -}} {{- if .Params.Share.Tumblr | default .Site.Params.Share.Tumblr | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-tumblr fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-tumblr fa-fw") -}} {{- end -}} {{- /* 008: Hacker News */ -}} {{- if .Params.Share.Hackernews | default .Site.Params.Share.Hackernews | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-hacker-news fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-hacker-news fa-fw") -}} {{- end -}} {{- /* 009: Reddit */ -}} {{- if .Params.Share.Reddit | default .Site.Params.Share.Reddit | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-reddit fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-reddit fa-fw") -}} {{- end -}} {{- /* 010: VK */ -}} {{- if .Params.Share.VK | default .Site.Params.Share.VK | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-vk fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-vk fa-fw") -}} {{- end -}} {{- /* 011: Buffer */ -}} {{- if .Params.Share.Buffer | default .Site.Params.Share.Buffer | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-buffer fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-buffer fa-fw") -}} {{- end -}} {{- /* 012: Xing */ -}} {{- if .Params.Share.Xing | default .Site.Params.Share.Xing | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-xing fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-xing fa-fw") -}} {{- end -}} {{- /* 013: Line */ -}} {{- if .Params.Share.Line | default .Site.Params.Share.Line | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-line fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-line fa-fw") -}} {{- end -}} {{- /* 014: Instapaper */ -}} {{- if .Params.Share.Instapaper | default .Site.Params.Share.Instapaper | eq true -}} - {{- partial "function/icon.html" (dict "class" "loveit it-instapaper-fill" "type" "other" "scratch" .Scratch) -}} + {{- partial "plugin/icon.html" (dict "class" "loveit it-instapaper-fill" "type" "other" "scratch" .Scratch) -}} {{- end -}} {{- /* 015: Pocket */ -}} {{- if .Params.Share.Pocket | default .Site.Params.Share.Pocket | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-get-pocket fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-get-pocket fa-fw") -}} {{- end -}} {{- /* 016: Digg */ -}} {{- if .Params.Share.Digg | default .Site.Params.Share.Digg | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-digg fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-digg fa-fw") -}} {{- end -}} {{- /* 017: StumbleUpon */ -}} {{- if .Params.Share.Stumbleupon | default .Site.Params.Share.Stumbleupon | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-stumbleupon fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-stumbleupon fa-fw") -}} {{- end -}} {{- /* 018: Flipboard */ -}} {{- if .Params.Share.Flipboard | default .Site.Params.Share.Flipboard | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-flipboard fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-flipboard fa-fw") -}} {{- end -}} {{- /* 019: 微博 */ -}} {{- if .Params.Share.Weibo | default .Site.Params.Share.Weibo | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-weibo fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-weibo fa-fw") -}} {{- end -}} {{- /* 020: 人人 */ -}} {{- if .Params.Share.Renren | default .Site.Params.Share.Renren | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-renren fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-renren fa-fw") -}} {{- end -}} {{- /* 021: Myspace */ -}} {{- if .Params.Share.Myspace | default .Site.Params.Share.Myspace | eq true -}} - {{- partial "function/icon.html" (dict "class" "loveit it-myspace-fill" "type" "other" "scratch" .Scratch) -}} + {{- partial "plugin/icon.html" (dict "class" "loveit it-myspace-fill" "type" "other" "scratch" .Scratch) -}} {{- end -}} {{- /* 022: Blogger */ -}} {{- if .Params.Share.Blogger | default .Site.Params.Share.Blogger | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-blogger fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-blogger fa-fw") -}} {{- end -}} {{- /* 023: 百度 */ -}} {{- if .Params.Share.Baidu | default .Site.Params.Share.Baidu | eq true -}} - {{- partial "function/icon.html" (dict "class" "loveit it-baidu-fill" "type" "other" "scratch" .Scratch) -}} + {{- partial "plugin/icon.html" (dict "class" "loveit it-baidu-fill" "type" "other" "scratch" .Scratch) -}} {{- end -}} {{- /* 024: OK.RU */ -}} {{- if .Params.Share.Odnoklassniki | default .Site.Params.Share.Odnoklassniki | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-odnoklassniki fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-odnoklassniki fa-fw") -}} {{- end -}} {{- /* 025: Evernote */ -}} {{- if .Params.Share.Evernote | default .Site.Params.Share.Evernote | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-evernote fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-evernote fa-fw") -}} {{- end -}} {{- /* 026: Skype */ -}} {{- if .Params.Share.Skype | default .Site.Params.Share.Skype | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-skype fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-skype fa-fw") -}} {{- end -}} {{- /* 027: Trello */ -}} {{- if .Params.Share.Trello | default .Site.Params.Share.Trello | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-trello fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-trello fa-fw") -}} {{- end -}} {{- /* 028: Mix */ -}} {{- if .Params.Share.Mix | default .Site.Params.Share.Mix | eq true -}} - {{- partial "function/icon.html" (dict "class" "fab fa-mix fa-fw") -}} + {{- partial "plugin/icon.html" (dict "class" "fab fa-mix fa-fw") -}} {{- end -}} {{- end -}} diff --git a/layouts/partials/plugin/social.html b/layouts/partials/plugin/social.html new file mode 100644 index 0000000..b74cd5c --- /dev/null +++ b/layouts/partials/plugin/social.html @@ -0,0 +1,432 @@ +{{- /* 001: Github */ -}} +{{- with .Site.Params.Social.Github -}} + {{- $options := dict "href" (printf "https://github.com/%s" .) "title" "GitHub" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-github-alt fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 002: LinkedIn */ -}} +{{- with .Site.Params.Social.LinkedIn -}} + {{- $options := dict "href" (printf "https://linkedin.com/in/%s" .) "title" "LinkedIn" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-linkedin fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 003: Twitter */ -}} +{{- with .Site.Params.Social.Twitter -}} + {{- $options := dict "href" (printf "https://twitter.com/%s" .) "title" "Twitter" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-twitter fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 004: Instagram */ -}} +{{- with .Site.Params.Social.Instagram -}} + {{- $options := dict "href" (printf "https://www.instagram.com/%s" .) "title" "Instagram" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-instagram fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 005: Facebook */ -}} +{{- with .Site.Params.Social.Facebook -}} + {{- $options := dict "href" (printf "https://facebook.com/%s" .) "title" "Facebook" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-facebook fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 006: Telegram */ -}} +{{- with .Site.Params.Social.Telegram -}} + {{- $options := dict "href" (printf "https://t.me/%s" .) "title" "Telegram" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-telegram-plane fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 007: Medium */ -}} +{{- with .Site.Params.Social.Medium -}} + {{- $options := dict "href" (printf "https://medium.com/%s" .) "title" "Medium" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-medium fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 008: Medium */ -}} +{{- with .Site.Params.Social.Gitlab -}} + {{- $options := dict "href" (printf "https://gitlab.com/%s" .) "title" "GitLab" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-gitlab fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 009: YouTube Legacy */ -}} +{{- with .Site.Params.Social.Youtubelegacy -}} + {{- $options := dict "href" (printf "https://www.youtube.com/user/%s" .) "title" "YouTube" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-youtube fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 010: YouTube Custom */ -}} +{{- with .Site.Params.Social.Youtubecustom -}} + {{- $options := dict "href" (printf "https://www.youtube.com/c/%s" .) "title" "YouTube" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-youtube fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 011: Youtube Channel */ -}} +{{- with .Site.Params.Social.Youtubechannel -}} + {{- $options := dict "href" (printf "https://www.youtube.com/channel/%s" .) "title" "YouTube" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-youtube fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 012: Tumblr */ -}} +{{- with .Site.Params.Social.Tumblr -}} + {{- $options := dict "href" (printf "https://%s.tumblr.com" .) "title" "Tumblr" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-tumblr fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 013: Quora */ -}} +{{- with .Site.Params.Social.Quora -}} + {{- $options := dict "href" (printf "https://www.quora.com/profile/%s" .) "title" "Quora" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-quora fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 014: Keybase */ -}} +{{- with .Site.Params.Social.Keybase -}} + {{- $options := dict "href" (printf "https://keybase.io/%s" .) "title" "Keybase" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-keybase fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 015: Pinterest */ -}} +{{- with .Site.Params.Social.Pinterest -}} + {{- $options := dict "href" (printf "https://www.pinterest.com/%s" .) "title" "Pinterest" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-pinterest fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 016: Reddit */ -}} +{{- with .Site.Params.Social.Reddit -}} + {{- $options := dict "href" (printf "https://www.reddit.com/user/%s" .) "title" "Reddit" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-reddit fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 017: CodePen */ -}} +{{- with .Site.Params.Social.Codepen -}} + {{- $options := dict "href" (printf "https://codepen.io/%s" .) "title" "CodePen" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-codepen fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 018: freeCodeCamp */ -}} +{{- with .Site.Params.Social.FreeCodeCamp -}} + {{- $options := dict "href" (printf "https://freecodecamp.org/%s" .) "title" "freeCodeCamp" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-free-code-camp fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 019: Bitbucket */ -}} +{{- with .Site.Params.Social.Bitbucket -}} + {{- $options := dict "href" (printf "https://bitbucket.org/%s" .) "title" "Bitbucket" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-bitbucket fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 020: Stack Overflow */ -}} +{{- with .Site.Params.Social.Stackoverflow -}} + {{- $options := dict "href" (printf "https://stackoverflow.com/users/%s" .) "title" "Stack Overflow" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-stack-overflow fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 021: 微博 */ -}} +{{- with .Site.Params.Social.Weibo -}} + {{- $options := dict "href" (printf "https://weibo.com/%s" .) "title" "微博" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-weibo fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 022: OK.RU */ -}} +{{- with .Site.Params.Social.Odnoklassniki -}} + {{- $options := dict "href" (printf "https://ok.ru/%s" .) "title" "OK.RU" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-odnoklassniki fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 023: VK */ -}} +{{- with .Site.Params.Social.VK -}} + {{- $options := dict "href" (printf "https://vk.com/%s" .) "title" "VK" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-vk fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 024: Flickr */ -}} +{{- with .Site.Params.Social.Flickr -}} + {{- $options := dict "href" (printf "https://www.flickr.com/photos/%s" .) "title" "Flickr" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-flickr fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 025: Xing */ -}} +{{- with .Site.Params.Social.Xing -}} + {{- $options := dict "href" (printf "https://www.xing.com/profile/%s" .) "title" "Xing" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-xing fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 026: Snapchat */ -}} +{{- with .Site.Params.Social.Snapchat -}} + {{- $options := dict "href" (printf "https://www.snapchat.com/add/%s" .) "title" "Snapchat" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-snapchat fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 027: SoundCloud */ -}} +{{- with .Site.Params.Social.Soundcloud -}} + {{- $options := dict "href" (printf "https://soundcloud.com/%s" .) "title" "SoundCloud" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-soundcloud fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 028: Spotify */ -}} +{{- with .Site.Params.Social.Spotify -}} + {{- $options := dict "href" (printf "https://open.spotify.com/user/%s" .) "title" "Spotify" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-spotify fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 029: Bandcamp */ -}} +{{- with .Site.Params.Social.Bandcamp -}} + {{- $options := dict "href" (printf "https://%s.bandcamp.com/" .) "title" "Bandcamp" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-bandcamp fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 030: PayPal */ -}} +{{- with .Site.Params.Social.Paypal -}} + {{- $options := dict "href" (printf "https://paypal.me/%s" .) "title" "PayPal" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-paypal fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 031: 500px */ -}} +{{- with .Site.Params.Social.Fivehundredpx -}} + {{- $options := dict "href" (printf "https://500px.com/%s" .) "title" "500px" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-500px fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 032: Mix */ -}} +{{- with .Site.Params.Social.Mix -}} + {{- $options := dict "href" (printf "https://mix.com/%s" .) "title" "Mix" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-mix fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 033: Goodreads */ -}} +{{- with .Site.Params.Social.Goodreads -}} + {{- $options := dict "href" (printf "https://www.goodreads.com/user/show/%s" .) "title" "Goodreads" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-goodreads fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 034: Last.fm */ -}} +{{- with .Site.Params.Social.Lastfm -}} + {{- $options := dict "href" (printf "https://www.last.fm/user/%s" .) "title" "Last.fm" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-lastfm fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 035: Foursquare */ -}} +{{- with .Site.Params.Social.Foursquare -}} + {{- $options := dict "href" (printf "https://foursquare.com/%s" .) "title" "Foursquare" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-foursquare fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 036: Hacker News */ -}} +{{- with .Site.Params.Social.Hackernews -}} + {{- $options := dict "href" (printf "https://news.ycombinator.com/user?id=%s" .) "title" "Hacker News" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-hacker-news fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 037: Kickstarter */ -}} +{{- with .Site.Params.Social.Kickstarter -}} + {{- $options := dict "href" (printf "https://kickstarter.com/profile/%s" .) "title" "Kickstarter" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-kickstarter fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 038: Patreon */ -}} +{{- with .Site.Params.Social.Patreon -}} + {{- $options := dict "href" (printf "https://patreon.com/%s" .) "title" "Patreon" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-patreon fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 039: Steam */ -}} +{{- with .Site.Params.Social.Steam -}} + {{- $options := dict "href" (printf "https://steamcommunity.com/id/%s" .) "title" "Steam" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-steam fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 040: Twitch */ -}} +{{- with .Site.Params.Social.Twitch -}} + {{- $options := dict "href" (printf "https://www.twitch.tv/%s" .) "title" "Twitch" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-twitch fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 041: Strava */ -}} +{{- with .Site.Params.Social.Strava -}} + {{- $options := dict "href" (printf "https://www.strava.com/athletes/%s" .) "title" "Strava" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-strava fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 042: Skype */ -}} +{{- with .Site.Params.Social.Skype -}} + {{- $options := dict "href" (printf "skype:%s" .) "title" "Skype" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-skype fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 043: WhatsApp */ -}} +{{- with .Site.Params.Social.Whatsapp -}} + {{- $options := dict "href" (printf "https://wa.me/%s" .) "title" "WhatsApp" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-whatsapp fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 044: 知乎 */ -}} +{{- with .Site.Params.Social.Zhihu -}} + {{- $options := dict "href" (printf "https://www.zhihu.com/people/%s" .) "title" "知乎" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "loveit it-zhihu-line" "type" "other" "scratch" $.Scratch) | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 045: Angellist */ -}} +{{- with .Site.Params.Social.Angellist -}} + {{- $options := dict "href" (printf "https://angel.co/%s" .) "title" "Angellist" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-angellist fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 046: SlideShare */ -}} +{{- with .Site.Params.Social.Slideshare -}} + {{- $options := dict "href" (printf "https://slideshare.com/%s" .) "title" "SlideShare" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-slideshare fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 047: JSFiddle */ -}} +{{- with .Site.Params.Social.Jsfiddle -}} + {{- $options := dict "href" (printf "https://jsfiddle.com/%s" .) "title" "JSFiddle" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-jsfiddle fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 048: DeviantArt */ -}} +{{- with .Site.Params.Social.Deviantart -}} + {{- $options := dict "href" (printf "https://%s.deviantart.com/" .) "title" "DeviantArt" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-deviantart fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 049: Behance */ -}} +{{- with .Site.Params.Social.Behance -}} + {{- $options := dict "href" (printf "https://behance.net/%s" .) "title" "Behance" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-behance fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 050: Dribbble */ -}} +{{- with .Site.Params.Social.Dribble -}} + {{- $options := dict "href" (printf "https://dribbble.com/%s" .) "title" "Dribbble" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-dribbble fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 051: WordPress */ -}} +{{- with .Site.Params.Social.Wordpress -}} + {{- $options := dict "href" (printf "https://%s.wordpress.com/" .) "title" "WordPress" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-wordpress fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 052: Vine */ -}} +{{- with .Site.Params.Social.Vine -}} + {{- $options := dict "href" (printf "https://vine.co/%s" .) "title" "Vine" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-vine fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 053: Google Scholar */ -}} +{{- with .Site.Params.Social.Googlescholar -}} + {{- $options := dict "href" (printf "https://scholar.google.com/citations?%s" .) "title" "Google Scholar" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-google fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 054: ResearchGate */ -}} +{{- with .Site.Params.Social.Researchgate -}} + {{- $options := dict "href" (printf "https://www.researchgate.net/profile/%s" .) "title" "ResearchGate" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-researchgate fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 055: Mastodon */ -}} +{{- with .Site.Params.Social.Mastodon -}} + {{- $MastodonPrefix := $.Site.Params.Social.MastodonPrefix | default "https://mastodon.social" -}} + {{- $options := dict "href" (printf "%s/%s" $MastodonPrefix .) "title" "Mastodon" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-mastodon fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 054: Dev.To */ -}} +{{- with .Site.Params.Social.Devto -}} + {{- $options := dict "href" (printf "https://dev.to/%s" .) "title" "Dev.To" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-dev fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 055: Gitea */ -}} +{{- with .Site.Params.Social.Gitea -}} + {{- $options := dict "href" . "title" "Gitea" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fa fa-gitea fa-fw" "type" "fo" "scratch" $.Scratch) | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 056: XMPP */ -}} +{{- with .Site.Params.Social.XMPP -}} + {{- $options := dict "href" (printf "xmpp:%s" .) "title" "XMPP" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fa fa-xmpp fa-fw" "type" "fo" "scratch" $.Scratch) | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 057: Matrix */ -}} +{{- with .Site.Params.Social.Matrix -}} + {{- $options := dict "href" (printf "https://matrix.to/#/%s" .) "title" "Matrix" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fa fa-matrix-org fa-fw" "type" "fo" "scratch" $.Scratch) | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 058: bilibili */ -}} +{{- with .Site.Params.Social.Bilibili -}} + {{- $options := dict "href" (printf "https://space.bilibili.com/%s" .) "title" "bilibili" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "loveit it-bilibili-fill" "type" "other" "scratch" $.Scratch) | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 059: Email */ -}} +{{- with .Site.Params.Social.Email -}} + {{- $options := dict "href" (printf "mailto:%s" .) "title" "Email" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "far fa-envelope fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* Custom */ -}} +{{- with .Site.Params.Social.Custom -}} + {{- . | safeHTML -}} +{{- end -}} diff --git a/layouts/partials/function/content.html b/layouts/partials/single/content.html similarity index 100% rename from layouts/partials/function/content.html rename to layouts/partials/single/content.html diff --git a/layouts/partials/post/footer.html b/layouts/partials/single/footer.html similarity index 97% rename from layouts/partials/post/footer.html rename to layouts/partials/single/footer.html index 8bce99b..93b4081 100644 --- a/layouts/partials/post/footer.html +++ b/layouts/partials/single/footer.html @@ -30,7 +30,7 @@ diff --git a/layouts/posts/single.html b/layouts/posts/single.html index ddec275..3abd031 100644 --- a/layouts/posts/single.html +++ b/layouts/posts/single.html @@ -46,7 +46,7 @@ {{- /* Featured image */ -}} {{- with .Params.featuredImage -}} {{- end -}} @@ -66,7 +66,7 @@
- {{- .TableOfContents -}} + {{- partial "single/content.html" .TableOfContents -}}
@@ -74,11 +74,11 @@ {{- /* Content */ -}}
- {{- partial "function/content.html" .Content -}} + {{- partial "single/content.html" .Content -}}
{{- /* Footer */ -}} - {{- partial "post/footer.html" . -}} + {{- partial "single/footer.html" . -}} {{- /* Comment */ -}}
diff --git a/layouts/shortcodes/admonition.html b/layouts/shortcodes/admonition.html index 613a7c9..334a505 100644 --- a/layouts/shortcodes/admonition.html +++ b/layouts/shortcodes/admonition.html @@ -23,14 +23,18 @@ {{ . }} {{- end -}} - {{- $inner -}} +
+ {{- $inner -}} +
{{- else -}}
{{- with .Get "title" -}}

{{ . }}

{{- end -}} - {{- $inner -}} +
+ {{- $inner -}} +
{{- end -}} {{- else -}} @@ -42,14 +46,18 @@ {{ . }} {{- end -}} - {{- $inner -}} +
+ {{- $inner -}} +
{{- else -}}
{{- with .Get 1 -}}

{{ . }}

{{- end -}} - {{- $inner -}} +
+ {{- $inner -}} +
{{- end -}} {{- end -}} diff --git a/resources/_gen/assets/scss/css/mermaid.scss_4fddb88d50abca04f2e7ef77f0bb1c3b.content b/resources/_gen/assets/scss/css/mermaid.scss_4fddb88d50abca04f2e7ef77f0bb1c3b.content index f36bc30..030b020 100644 --- a/resources/_gen/assets/scss/css/mermaid.scss_4fddb88d50abca04f2e7ef77f0bb1c3b.content +++ b/resources/_gen/assets/scss/css/mermaid.scss_4fddb88d50abca04f2e7ef77f0bb1c3b.content @@ -1,3 +1,3 @@ -.mermaid{width:100%;margin:3% auto;text-align:center}.mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.mermaid .label text{fill:#333}.mermaid .node rect,.mermaid .node circle,.mermaid .node ellipse,.mermaid .node polygon{fill:#eee;stroke:#999;stroke-width:1px}.mermaid .node .label{text-align:center}.mermaid .node.clickable{cursor:pointer}.mermaid .arrowheadPath{fill:#333}.mermaid .edgePath .path{stroke:#666;stroke-width:1.5px}.mermaid .edgeLabel{background-color:#fff;text-align:center}.mermaid .cluster rect{fill:#eaf2fb;stroke:#26a;stroke-width:1px}.mermaid .cluster text{fill:#333}.mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.mermaid .actor{stroke:#999;fill:#eee}.mermaid text.actor{fill:#333;stroke:none}.mermaid .actor-line{stroke:#666}.mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.mermaid #arrowhead{fill:#333}.mermaid .sequenceNumber{fill:#fff}.mermaid #sequencenumber{fill:#333}.mermaid #crosshead path{fill:#333 !important;stroke:#333 !important}.mermaid .messageText{fill:#333;stroke:none}.mermaid .labelBox{stroke:#999;fill:#eee}.mermaid .labelText{fill:#333;stroke:none}.mermaid .loopText{fill:#333;stroke:none}.mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.mermaid .note{stroke:#770;fill:#ffa}.mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.mermaid .activation0{fill:#f4f4f4;stroke:#666}.mermaid .activation1{fill:#f4f4f4;stroke:#666}.mermaid .activation2{fill:#f4f4f4;stroke:#666}.mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .section{stroke:none;opacity:0.2}.mermaid .section0{fill:#80b3e6}.mermaid .section2{fill:#80b3e6}.mermaid .section1,.mermaid .section3{fill:#fff;opacity:0.2}.mermaid .sectionTitle0{fill:#333}.mermaid .sectionTitle1{fill:#333}.mermaid .sectionTitle2{fill:#333}.mermaid .sectionTitle3{fill:#333}.mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .grid .tick{stroke:#e6e5e5;opacity:0.3;shape-rendering:crispEdges}.mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .grid path{stroke-width:0}.mermaid .today{fill:none;stroke:#d42;stroke-width:2px}.mermaid .task{stroke-width:2}.mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .taskText:not([font-size]){font-size:11px}.mermaid .taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.mermaid .task.clickable{cursor:pointer}.mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.mermaid .taskText0,.mermaid .taskText1,.mermaid .taskText2,.mermaid .taskText3{fill:#fff}.mermaid .task0,.mermaid .task1,.mermaid .task2,.mermaid .task3{fill:#26a;stroke:#1a4d80}.mermaid .taskTextOutside0,.mermaid .taskTextOutside2{fill:#333}.mermaid .taskTextOutside1,.mermaid .taskTextOutside3{fill:#333}.mermaid .active0,.mermaid .active1,.mermaid .active2,.mermaid .active3{fill:#eee;stroke:#1a4d80}.mermaid .activeText0,.mermaid .activeText1,.mermaid .activeText2,.mermaid .activeText3{fill:#333 !important}.mermaid .done0,.mermaid .done1,.mermaid .done2,.mermaid .done3{stroke:#666;fill:#bbb;stroke-width:2}.mermaid .doneText0,.mermaid .doneText1,.mermaid .doneText2,.mermaid .doneText3{fill:#333 !important}.mermaid .crit0,.mermaid .crit1,.mermaid .crit2,.mermaid .crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.mermaid .activeCrit0,.mermaid .activeCrit1,.mermaid .activeCrit2,.mermaid .activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.mermaid .doneCrit0,.mermaid .doneCrit1,.mermaid .doneCrit2,.mermaid .doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}.mermaid .milestoneText{font-style:italic}.mermaid .doneCritText0,.mermaid .doneCritText1,.mermaid .doneCritText2,.mermaid .doneCritText3{fill:#333 !important}.mermaid .activeCritText0,.mermaid .activeCritText1,.mermaid .activeCritText2,.mermaid .activeCritText3{fill:#333 !important}.mermaid .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid g.classGroup text{fill:#999;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}.mermaid g.classGroup text .title{font-weight:bolder}.mermaid g.classGroup rect{fill:#eee;stroke:#999}.mermaid g.classGroup line{stroke:#999;stroke-width:1}.mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.mermaid .classLabel .label{fill:#999;font-size:10px}.mermaid .relation{stroke:#999;stroke-width:1;fill:none}.mermaid #compositionStart{fill:#999;stroke:#999;stroke-width:1}.mermaid #compositionEnd{fill:#999;stroke:#999;stroke-width:1}.mermaid #aggregationStart{fill:#eee;stroke:#999;stroke-width:1}.mermaid #aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}.mermaid #dependencyStart{fill:#999;stroke:#999;stroke-width:1}.mermaid #dependencyEnd{fill:#999;stroke:#999;stroke-width:1}.mermaid #extensionStart{fill:#999;stroke:#999;stroke-width:1}.mermaid #extensionEnd{fill:#999;stroke:#999;stroke-width:1}.mermaid .commit-id,.mermaid .commit-msg,.mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px}.mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.mermaid g.stateGroup rect{fill:#eee;stroke:#999}.mermaid g.stateGroup line{stroke:#999;stroke-width:1}.mermaid .transition{stroke:#999;stroke-width:1;fill:none}.mermaid .stateGroup .composit{fill:white;border-bottom:1px}.mermaid .state-note{stroke:#770;fill:#ffa}.mermaid .state-note text{fill:black;stroke:none;font-size:10px}.mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.dark-theme .mermaid .label text{fill:#333}.dark-theme .mermaid .node rect,.dark-theme .mermaid .node circle,.dark-theme .mermaid .node ellipse,.dark-theme .mermaid .node polygon{fill:#BDD5EA;stroke:purple;stroke-width:1px}.dark-theme .mermaid .node .label{text-align:center}.dark-theme .mermaid .node.clickable{cursor:pointer}.dark-theme .mermaid .arrowheadPath{fill:#d3d3d3}.dark-theme .mermaid .edgePath .path{stroke:#d3d3d3;stroke-width:1.5px}.dark-theme .mermaid .edgeLabel{background-color:#e8e8e8;text-align:center}.dark-theme .mermaid .cluster rect{fill:#6D6D65;stroke:rgba(255,255,255,0.25);stroke-width:1px}.dark-theme .mermaid .cluster text{fill:#F9FFFE}.dark-theme .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#6D6D65;border:1px solid rgba(255,255,255,0.25);border-radius:2px;pointer-events:none;z-index:100}.dark-theme .mermaid .actor{stroke:#81B1DB;fill:#BDD5EA}.dark-theme .mermaid text.actor{fill:#000;stroke:none}.dark-theme .mermaid .actor-line{stroke:#d3d3d3}.dark-theme .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.dark-theme .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.dark-theme .mermaid #arrowhead{fill:#d3d3d3}.dark-theme .mermaid .sequenceNumber{fill:#fff}.dark-theme .mermaid #sequencenumber{fill:#d3d3d3}.dark-theme .mermaid #crosshead path{fill:#d3d3d3 !important;stroke:#d3d3d3 !important}.dark-theme .mermaid .messageText{fill:#d3d3d3;stroke:none}.dark-theme .mermaid .labelBox{stroke:#81B1DB;fill:#BDD5EA}.dark-theme .mermaid .labelText{fill:#323D47;stroke:none}.dark-theme .mermaid .loopText{fill:#d3d3d3;stroke:none}.dark-theme .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81B1DB}.dark-theme .mermaid .note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.dark-theme .mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.dark-theme .mermaid .activation0{fill:#f4f4f4;stroke:#666}.dark-theme .mermaid .activation1{fill:#f4f4f4;stroke:#666}.dark-theme .mermaid .activation2{fill:#f4f4f4;stroke:#666}.dark-theme .mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .section{stroke:none;opacity:0.2}.dark-theme .mermaid .section0{fill:rgba(255,255,255,0.3)}.dark-theme .mermaid .section2{fill:#EAE8B9}.dark-theme .mermaid .section1,.dark-theme .mermaid .section3{fill:#fff;opacity:0.2}.dark-theme .mermaid .sectionTitle0{fill:#F9FFFE}.dark-theme .mermaid .sectionTitle1{fill:#F9FFFE}.dark-theme .mermaid .sectionTitle2{fill:#F9FFFE}.dark-theme .mermaid .sectionTitle3{fill:#F9FFFE}.dark-theme .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .grid .tick{stroke:#d3d3d3;opacity:0.3;shape-rendering:crispEdges}.dark-theme .mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .grid path{stroke-width:0}.dark-theme .mermaid .today{fill:none;stroke:#DB5757;stroke-width:2px}.dark-theme .mermaid .task{stroke-width:2}.dark-theme .mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .taskText:not([font-size]){font-size:11px}.dark-theme .mermaid .taskTextOutsideRight{fill:#323D47;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .taskTextOutsideLeft{fill:#323D47;text-anchor:end;font-size:11px}.dark-theme .mermaid .task.clickable{cursor:pointer}.dark-theme .mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .mermaid .taskText0,.dark-theme .mermaid .taskText1,.dark-theme .mermaid .taskText2,.dark-theme .mermaid .taskText3{fill:#323D47}.dark-theme .mermaid .task0,.dark-theme .mermaid .task1,.dark-theme .mermaid .task2,.dark-theme .mermaid .task3{fill:#BDD5EA;stroke:rgba(255,255,255,0.5)}.dark-theme .mermaid .taskTextOutside0,.dark-theme .mermaid .taskTextOutside2{fill:#d3d3d3}.dark-theme .mermaid .taskTextOutside1,.dark-theme .mermaid .taskTextOutside3{fill:#d3d3d3}.dark-theme .mermaid .active0,.dark-theme .mermaid .active1,.dark-theme .mermaid .active2,.dark-theme .mermaid .active3{fill:#81B1DB;stroke:rgba(255,255,255,0.5)}.dark-theme .mermaid .activeText0,.dark-theme .mermaid .activeText1,.dark-theme .mermaid .activeText2,.dark-theme .mermaid .activeText3{fill:#323D47 !important}.dark-theme .mermaid .done0,.dark-theme .mermaid .done1,.dark-theme .mermaid .done2,.dark-theme .mermaid .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.dark-theme .mermaid .doneText0,.dark-theme .mermaid .doneText1,.dark-theme .mermaid .doneText2,.dark-theme .mermaid .doneText3{fill:#323D47 !important}.dark-theme .mermaid .crit0,.dark-theme .mermaid .crit1,.dark-theme .mermaid .crit2,.dark-theme .mermaid .crit3{stroke:#E83737;fill:#E83737;stroke-width:2}.dark-theme .mermaid .activeCrit0,.dark-theme .mermaid .activeCrit1,.dark-theme .mermaid .activeCrit2,.dark-theme .mermaid .activeCrit3{stroke:#E83737;fill:#81B1DB;stroke-width:2}.dark-theme .mermaid .doneCrit0,.dark-theme .mermaid .doneCrit1,.dark-theme .mermaid .doneCrit2,.dark-theme .mermaid .doneCrit3{stroke:#E83737;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.dark-theme .mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}.dark-theme .mermaid .milestoneText{font-style:italic}.dark-theme .mermaid .doneCritText0,.dark-theme .mermaid .doneCritText1,.dark-theme .mermaid .doneCritText2,.dark-theme .mermaid .doneCritText3{fill:#323D47 !important}.dark-theme .mermaid .activeCritText0,.dark-theme .mermaid .activeCritText1,.dark-theme .mermaid .activeCritText2,.dark-theme .mermaid .activeCritText3{fill:#323D47 !important}.dark-theme .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid g.classGroup text{fill:purple;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}.dark-theme .mermaid g.classGroup text .title{font-weight:bolder}.dark-theme .mermaid g.classGroup rect{fill:#BDD5EA;stroke:purple}.dark-theme .mermaid g.classGroup line{stroke:purple;stroke-width:1}.dark-theme .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.dark-theme .mermaid .classLabel .label{fill:purple;font-size:10px}.dark-theme .mermaid .relation{stroke:purple;stroke-width:1;fill:none}.dark-theme .mermaid #compositionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .mermaid #compositionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .mermaid #aggregationStart{fill:#BDD5EA;stroke:purple;stroke-width:1}.dark-theme .mermaid #aggregationEnd{fill:#BDD5EA;stroke:purple;stroke-width:1}.dark-theme .mermaid #dependencyStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .mermaid #dependencyEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .mermaid #extensionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .mermaid #extensionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .mermaid .commit-id,.dark-theme .mermaid .commit-msg,.dark-theme .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px}.dark-theme .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.dark-theme .mermaid g.stateGroup rect{fill:#BDD5EA;stroke:purple}.dark-theme .mermaid g.stateGroup line{stroke:purple;stroke-width:1}.dark-theme .mermaid .transition{stroke:purple;stroke-width:1;fill:none}.dark-theme .mermaid .stateGroup .composit{fill:white;border-bottom:1px}.dark-theme .mermaid .state-note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.dark-theme .mermaid .state-note text{fill:black;stroke:none;font-size:10px}.dark-theme .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.dark-theme .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive} +.mermaid{width:100%;margin:3% auto;text-align:center}.mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.mermaid .label text{fill:#333}.mermaid .node rect,.mermaid .node circle,.mermaid .node ellipse,.mermaid .node polygon{fill:#eee;stroke:#999;stroke-width:1px}.mermaid .node .label{text-align:center}.mermaid .node.clickable{cursor:pointer}.mermaid .arrowheadPath{fill:#333}.mermaid .edgePath .path{stroke:#666;stroke-width:1.5px}.mermaid .edgeLabel{background-color:#fff;text-align:center}.mermaid .cluster rect{fill:#eaf2fb;stroke:#26a;stroke-width:1px}.mermaid .cluster text{fill:#333}.mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.mermaid .actor{stroke:#999;fill:#eee}.mermaid text.actor{fill:#333;stroke:none}.mermaid .actor-line{stroke:#666}.mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.mermaid #arrowhead{fill:#333}.mermaid .sequenceNumber{fill:#fff}.mermaid #sequencenumber{fill:#333}.mermaid #crosshead path{fill:#333 !important;stroke:#333 !important}.mermaid .messageText{fill:#333;stroke:none}.mermaid .labelBox{stroke:#999;fill:#eee}.mermaid .labelText{fill:#333;stroke:none}.mermaid .loopText{fill:#333;stroke:none}.mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.mermaid .note{stroke:#770;fill:#ffa}.mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.mermaid .activation0{fill:#f4f4f4;stroke:#666}.mermaid .activation1{fill:#f4f4f4;stroke:#666}.mermaid .activation2{fill:#f4f4f4;stroke:#666}.mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .section{stroke:none;opacity:0.2}.mermaid .section0{fill:#80b3e6}.mermaid .section2{fill:#80b3e6}.mermaid .section1,.mermaid .section3{fill:#fff;opacity:0.2}.mermaid .sectionTitle0{fill:#333}.mermaid .sectionTitle1{fill:#333}.mermaid .sectionTitle2{fill:#333}.mermaid .sectionTitle3{fill:#333}.mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .grid .tick{stroke:#e6e6e6;opacity:0.3;shape-rendering:crispEdges}.mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .grid path{stroke-width:0}.mermaid .today{fill:none;stroke:#d42;stroke-width:2px}.mermaid .task{stroke-width:2}.mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .taskText:not([font-size]){font-size:11px}.mermaid .taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.mermaid .task.clickable{cursor:pointer}.mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.mermaid .taskText0,.mermaid .taskText1,.mermaid .taskText2,.mermaid .taskText3{fill:#fff}.mermaid .task0,.mermaid .task1,.mermaid .task2,.mermaid .task3{fill:#26a;stroke:#1a4d80}.mermaid .taskTextOutside0,.mermaid .taskTextOutside2{fill:#333}.mermaid .taskTextOutside1,.mermaid .taskTextOutside3{fill:#333}.mermaid .active0,.mermaid .active1,.mermaid .active2,.mermaid .active3{fill:#eee;stroke:#1a4d80}.mermaid .activeText0,.mermaid .activeText1,.mermaid .activeText2,.mermaid .activeText3{fill:#333 !important}.mermaid .done0,.mermaid .done1,.mermaid .done2,.mermaid .done3{stroke:#666;fill:#bbb;stroke-width:2}.mermaid .doneText0,.mermaid .doneText1,.mermaid .doneText2,.mermaid .doneText3{fill:#333 !important}.mermaid .crit0,.mermaid .crit1,.mermaid .crit2,.mermaid .crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.mermaid .activeCrit0,.mermaid .activeCrit1,.mermaid .activeCrit2,.mermaid .activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.mermaid .doneCrit0,.mermaid .doneCrit1,.mermaid .doneCrit2,.mermaid .doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}.mermaid .milestoneText{font-style:italic}.mermaid .doneCritText0,.mermaid .doneCritText1,.mermaid .doneCritText2,.mermaid .doneCritText3{fill:#333 !important}.mermaid .activeCritText0,.mermaid .activeCritText1,.mermaid .activeCritText2,.mermaid .activeCritText3{fill:#333 !important}.mermaid .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid g.classGroup text{fill:#999;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}.mermaid g.classGroup text .title{font-weight:bolder}.mermaid g.classGroup rect{fill:#eee;stroke:#999}.mermaid g.classGroup line{stroke:#999;stroke-width:1}.mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.mermaid .classLabel .label{fill:#999;font-size:10px}.mermaid .relation{stroke:#999;stroke-width:1;fill:none}.mermaid #compositionStart{fill:#999;stroke:#999;stroke-width:1}.mermaid #compositionEnd{fill:#999;stroke:#999;stroke-width:1}.mermaid #aggregationStart{fill:#eee;stroke:#999;stroke-width:1}.mermaid #aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}.mermaid #dependencyStart{fill:#999;stroke:#999;stroke-width:1}.mermaid #dependencyEnd{fill:#999;stroke:#999;stroke-width:1}.mermaid #extensionStart{fill:#999;stroke:#999;stroke-width:1}.mermaid #extensionEnd{fill:#999;stroke:#999;stroke-width:1}.mermaid .commit-id,.mermaid .commit-msg,.mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px}.mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.mermaid g.stateGroup rect{fill:#eee;stroke:#999}.mermaid g.stateGroup line{stroke:#999;stroke-width:1}.mermaid .transition{stroke:#999;stroke-width:1;fill:none}.mermaid .stateGroup .composit{fill:white;border-bottom:1px}.mermaid .state-note{stroke:#770;fill:#ffa}.mermaid .state-note text{fill:black;stroke:none;font-size:10px}.mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.dark-theme .mermaid .label text{fill:#333}.dark-theme .mermaid .node rect,.dark-theme .mermaid .node circle,.dark-theme .mermaid .node ellipse,.dark-theme .mermaid .node polygon{fill:#BDD5EA;stroke:purple;stroke-width:1px}.dark-theme .mermaid .node .label{text-align:center}.dark-theme .mermaid .node.clickable{cursor:pointer}.dark-theme .mermaid .arrowheadPath{fill:#d3d3d3}.dark-theme .mermaid .edgePath .path{stroke:#d3d3d3;stroke-width:1.5px}.dark-theme .mermaid .edgeLabel{background-color:#e8e8e8;text-align:center}.dark-theme .mermaid .cluster rect{fill:#6D6D65;stroke:rgba(255,255,255,0.25);stroke-width:1px}.dark-theme .mermaid .cluster text{fill:#F9FFFE}.dark-theme .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#6D6D65;border:1px solid rgba(255,255,255,0.25);border-radius:2px;pointer-events:none;z-index:100}.dark-theme .mermaid .actor{stroke:#81B1DB;fill:#BDD5EA}.dark-theme .mermaid text.actor{fill:#000;stroke:none}.dark-theme .mermaid .actor-line{stroke:#d3d3d3}.dark-theme .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.dark-theme .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.dark-theme .mermaid #arrowhead{fill:#d3d3d3}.dark-theme .mermaid .sequenceNumber{fill:#fff}.dark-theme .mermaid #sequencenumber{fill:#d3d3d3}.dark-theme .mermaid #crosshead path{fill:#d3d3d3 !important;stroke:#d3d3d3 !important}.dark-theme .mermaid .messageText{fill:#d3d3d3;stroke:none}.dark-theme .mermaid .labelBox{stroke:#81B1DB;fill:#BDD5EA}.dark-theme .mermaid .labelText{fill:#323D47;stroke:none}.dark-theme .mermaid .loopText{fill:#d3d3d3;stroke:none}.dark-theme .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81B1DB}.dark-theme .mermaid .note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.dark-theme .mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.dark-theme .mermaid .activation0{fill:#f4f4f4;stroke:#666}.dark-theme .mermaid .activation1{fill:#f4f4f4;stroke:#666}.dark-theme .mermaid .activation2{fill:#f4f4f4;stroke:#666}.dark-theme .mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .section{stroke:none;opacity:0.2}.dark-theme .mermaid .section0{fill:rgba(255,255,255,0.3)}.dark-theme .mermaid .section2{fill:#EAE8B9}.dark-theme .mermaid .section1,.dark-theme .mermaid .section3{fill:#fff;opacity:0.2}.dark-theme .mermaid .sectionTitle0{fill:#F9FFFE}.dark-theme .mermaid .sectionTitle1{fill:#F9FFFE}.dark-theme .mermaid .sectionTitle2{fill:#F9FFFE}.dark-theme .mermaid .sectionTitle3{fill:#F9FFFE}.dark-theme .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .grid .tick{stroke:#d3d3d3;opacity:0.3;shape-rendering:crispEdges}.dark-theme .mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .grid path{stroke-width:0}.dark-theme .mermaid .today{fill:none;stroke:#DB5757;stroke-width:2px}.dark-theme .mermaid .task{stroke-width:2}.dark-theme .mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .taskText:not([font-size]){font-size:11px}.dark-theme .mermaid .taskTextOutsideRight{fill:#323D47;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .taskTextOutsideLeft{fill:#323D47;text-anchor:end;font-size:11px}.dark-theme .mermaid .task.clickable{cursor:pointer}.dark-theme .mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .mermaid .taskText0,.dark-theme .mermaid .taskText1,.dark-theme .mermaid .taskText2,.dark-theme .mermaid .taskText3{fill:#323D47}.dark-theme .mermaid .task0,.dark-theme .mermaid .task1,.dark-theme .mermaid .task2,.dark-theme .mermaid .task3{fill:#BDD5EA;stroke:rgba(255,255,255,0.5)}.dark-theme .mermaid .taskTextOutside0,.dark-theme .mermaid .taskTextOutside2{fill:#d3d3d3}.dark-theme .mermaid .taskTextOutside1,.dark-theme .mermaid .taskTextOutside3{fill:#d3d3d3}.dark-theme .mermaid .active0,.dark-theme .mermaid .active1,.dark-theme .mermaid .active2,.dark-theme .mermaid .active3{fill:#81B1DB;stroke:rgba(255,255,255,0.5)}.dark-theme .mermaid .activeText0,.dark-theme .mermaid .activeText1,.dark-theme .mermaid .activeText2,.dark-theme .mermaid .activeText3{fill:#323D47 !important}.dark-theme .mermaid .done0,.dark-theme .mermaid .done1,.dark-theme .mermaid .done2,.dark-theme .mermaid .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.dark-theme .mermaid .doneText0,.dark-theme .mermaid .doneText1,.dark-theme .mermaid .doneText2,.dark-theme .mermaid .doneText3{fill:#323D47 !important}.dark-theme .mermaid .crit0,.dark-theme .mermaid .crit1,.dark-theme .mermaid .crit2,.dark-theme .mermaid .crit3{stroke:#E83737;fill:#E83737;stroke-width:2}.dark-theme .mermaid .activeCrit0,.dark-theme .mermaid .activeCrit1,.dark-theme .mermaid .activeCrit2,.dark-theme .mermaid .activeCrit3{stroke:#E83737;fill:#81B1DB;stroke-width:2}.dark-theme .mermaid .doneCrit0,.dark-theme .mermaid .doneCrit1,.dark-theme .mermaid .doneCrit2,.dark-theme .mermaid .doneCrit3{stroke:#E83737;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.dark-theme .mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}.dark-theme .mermaid .milestoneText{font-style:italic}.dark-theme .mermaid .doneCritText0,.dark-theme .mermaid .doneCritText1,.dark-theme .mermaid .doneCritText2,.dark-theme .mermaid .doneCritText3{fill:#323D47 !important}.dark-theme .mermaid .activeCritText0,.dark-theme .mermaid .activeCritText1,.dark-theme .mermaid .activeCritText2,.dark-theme .mermaid .activeCritText3{fill:#323D47 !important}.dark-theme .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid g.classGroup text{fill:purple;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}.dark-theme .mermaid g.classGroup text .title{font-weight:bolder}.dark-theme .mermaid g.classGroup rect{fill:#BDD5EA;stroke:purple}.dark-theme .mermaid g.classGroup line{stroke:purple;stroke-width:1}.dark-theme .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.dark-theme .mermaid .classLabel .label{fill:purple;font-size:10px}.dark-theme .mermaid .relation{stroke:purple;stroke-width:1;fill:none}.dark-theme .mermaid #compositionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .mermaid #compositionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .mermaid #aggregationStart{fill:#BDD5EA;stroke:purple;stroke-width:1}.dark-theme .mermaid #aggregationEnd{fill:#BDD5EA;stroke:purple;stroke-width:1}.dark-theme .mermaid #dependencyStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .mermaid #dependencyEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .mermaid #extensionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .mermaid #extensionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .mermaid .commit-id,.dark-theme .mermaid .commit-msg,.dark-theme .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px}.dark-theme .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.dark-theme .mermaid g.stateGroup rect{fill:#BDD5EA;stroke:purple}.dark-theme .mermaid g.stateGroup line{stroke:purple;stroke-width:1}.dark-theme .mermaid .transition{stroke:purple;stroke-width:1;fill:none}.dark-theme .mermaid .stateGroup .composit{fill:white;border-bottom:1px}.dark-theme .mermaid .state-note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.dark-theme .mermaid .state-note text{fill:black;stroke:none;font-size:10px}.dark-theme .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.dark-theme .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive} /*# sourceMappingURL=mermaid.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/scss/css/style.template.scss_b8ba9a60a151126bfcde1421dc0b972d.content b/resources/_gen/assets/scss/css/style.template.scss_b8ba9a60a151126bfcde1421dc0b972d.content index 63d4a16..12454b0 100644 --- a/resources/_gen/assets/scss/css/style.template.scss_b8ba9a60a151126bfcde1421dc0b972d.content +++ b/resources/_gen/assets/scss/css/style.template.scss_b8ba9a60a151126bfcde1421dc0b972d.content @@ -1,3 +1,3 @@ -@import url(https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900);@import url("https://fonts.googleapis.com/css?family=Fira+Mono:400,700&display=swap&subset=latin-ext");/*! 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:Lato,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft Yahei,Segoe UI,Helvetica,Arial,sans-serif,Segoe UI Emoji;font-size:16px;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{font-weight:400;line-height:1.5rem;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;transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}a:hover{color:#2d96bd}.dark-theme a{color:#a9a9b3}.dark-theme a:hover{color:#fff}.wrapper{display:flex;flex-direction:column;min-height: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:980px;margin:0 auto;padding-top:6rem}.single .single-title{margin:0;font-size:1.8rem;line-height:3rem}.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:#eee}.single .post-meta a:hover{color:#ef3982}.dark-theme .single .post-meta a:hover{color:#2d96bd}.single .post-meta .author{font-size:1.05rem}.single .featured-image{padding-top:.6rem}.single .featured-image img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.single #toc-auto{display:block;position:absolute;width:100%;margin-left:1000px;padding:0 .8rem;border-left:1px solid #dcdcdc;overflow-wrap:break-word;box-sizing:border-box;top:12rem}.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:#eee}.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:#eee}.single #toc-auto .toc-content a.active::before{color:#ef3982}.dark-theme .single #toc-auto .toc-content a.active::before{color:#2d96bd}.single #toc-static{display:none;padding-top:.8rem}.single #toc-static details summary .toc-title{display:block;display:flex;justify-content:space-between;font-size:1.2em;font-weight:bold;line-height:2em;padding:0 .625rem;background:#f5f5f5}.single #toc-static details summary .toc-title i.details{line-height:2em}.dark-theme .single #toc-static details summary .toc-title{background:#272C34}.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{border:2px solid #f5f5f5}.single #toc-static .toc-content>nav>ul{margin:.625rem 0}.single #toc-static .toc-content ul{padding-left:.625rem;list-style:none}.single #toc-static .toc-content ul ul{padding-left:1.25rem}.dark-theme .single #toc-static .toc-content{border:2px solid #272C34}.single .content h1,.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 h1,.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>a:first-child::before{content:"#";margin-right:.3125rem;color:#2d96bd}.dark-theme .single .content h2>a:first-child::before{color:#eee}.single .content h3>a:first-child::before,.single .content h4>a:first-child::before,.single .content h5>a:first-child::before,.single .content h6>a:first-child::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark-theme .single .content h3>a:first-child::before,.dark-theme .single .content h4>a:first-child::before,.dark-theme .single .content h5>a:first-child::before,.dark-theme .single .content h6>a:first-child::before{color:#eee}.single .content p{font-size:1rem;margin:.5rem 0}.single .content a{word-break:break-all;color:#2d96bd}.dark-theme .single .content a{color:#eee}.single .content a:hover{color:#ef3982}.dark-theme .single .content a:hover:hover{color:#2d96bd;font-weight:bold}.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}.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 figure{text-align:center}.single .content .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.625rem;margin:0 auto;border-bottom:1px solid #d9d9d9;font-size:.875rem;color:#969696;line-height:1.7}.single .content img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.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:#eee}.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:#eee}.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:Fira Mono,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;line-height:18px}.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:Lato,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft Yahei,Segoe UI,Helvetica,Arial,sans-serif,Segoe UI Emoji;font-size:13px;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 table,.single .content .highlight>.chroma tr,.single .content .highlight>.chroma td{margin:0;border:none !important}.single .content .highlight>.chroma td{padding:.2rem .4rem}.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:Fira Mono,Source Code Pro,Menlo,Consolas,Monaco,monospace}.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 .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:.5rem .75rem .5rem 2.5rem;border-bottom:0.1rem solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1);font-weight:700}.single .content .admonition i.icon{font-size:16px;color:#448aff;cursor:auto;position:absolute;left:.75rem;top:.75rem}.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:.75rem;right:.75rem;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:Fira Mono,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:Fira Mono,Source Code Pro,Menlo,Consolas,Monaco,monospace;font-weight:bold;word-break:break-all}.single .content .align-left{text-align:left}.single .content .align-center{text-align:center}.single .content .align-right{text-align:right}.single .content .float-left{float:left}.single .content .float-right{float:right}.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-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{width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a{font-size:0.8rem;color:#2d96bd}.dark-theme .single .post-footer .post-info .post-info-line .post-info-md a{color:#eee}.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:#2d96bd}.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-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;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title{text-align:right;padding-bottom:2rem}.archive .single-title{text-align:right;padding-bottom:2rem}.archive .archive-item{margin-left:2rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;padding:0 2.5rem;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .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;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{color:#2d96bd;transform:scale(1.1)}.dark-theme .archive .tag-cloud-tags a:active,.dark-theme .archive .tag-cloud-tags a:focus,.dark-theme .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a small{color:#a9a9b3}.dark-theme .archive .tag-cloud-tags a small{color:#fff}.home .home-profile{transform:translateY(0);padding:2rem 0;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-description{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .home-social-links{padding-top:.6rem}.home .home-profile .home-social-links i{font-size:1.45rem}.home .home-profile .home-social-links img{width:1.5rem;height:1.5rem}.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.6rem}.home .summary .post-meta a{color:#a9a9b3 !important}.dark-theme .home .summary .post-meta a{color:#5d5d5f !important}.home .summary .post-meta a:hover{color:#2d96bd !important}.dark-theme .home .summary .post-meta a:hover{color:#fff !important}.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}.home .summary h1,.home .summary h2,.home .summary h3,.home .summary h4,.home .summary h5,.home .summary h6,.home .summary p{font-size:1rem;display:inline}.home .summary h1::after,.home .summary h2::after,.home .summary h3::after,.home .summary h4::after,.home .summary h5::after,.home .summary h6::after,.home .summary p::after{content:"\A";white-space:pre}.home .summary h1,.home .summary h2,.home .summary h3,.home .summary h4,.home .summary h5,.home .summary h6{line-height:2}.home .summary .post-footer{margin-top:.5rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem !important}.home .summary .post-footer a{color:#2d96bd !important}.dark-theme .home .summary .post-footer a{color:#eee !important}.home .summary .post-footer a:hover{color:#ef3982 !important}.dark-theme .home .summary .post-footer a:hover{color:#2d96bd !important}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a{color:#161209 !important}.dark-theme .home .summary .post-footer .post-tags a{color:#a9a9b3 !important}.home .summary .post-footer .post-tags a:hover{color:#2d96bd !important}.dark-theme .home .summary .post-footer .post-tags a:hover{color:#fff !important}#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-desktop{display:block;position:fixed;height:4rem;line-height:4rem}#header-desktop .header-wrapper{width:auto;text-align:center;margin:0 4rem;display:flex;justify-content:space-between}#header-desktop .header-wrapper .header-title a{padding:0 8px;font-size:1.25rem}#header-desktop .header-wrapper .header-title a i{line-height:2rem}#header-desktop .header-wrapper .menu a{padding:0 8px}#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:4rem;line-height:4rem}#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{font-size:1.25rem}#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;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;transition:.1s margin, .1s transform .1s}#header-mobile .header-wrapper .header-container .menu-toggle.active span:nth-child(1){-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);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);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}.dynamic-to-top{display:none;overflow:hidden;width:auto;z-index:90;position:fixed;bottom:2rem;right:2rem;top:auto;left:auto;font-family:sans-serif;font-size:1rem;color:#fff;text-decoration:none;text-shadow:0 1px 0 #333;font-weight:bold;padding:1rem 1rem;border:1px solid #dcdcdc;background:#222;outline:none}.dynamic-to-top:hover{background:#000;cursor:pointer}.dynamic-to-top:active{background:#000;outline:none}.dynamic-to-top:focus,.dynamic-to-top:hover{outline:none}.dynamic-to-top span{display:block;overflow:hidden;width:.875rem;height:.75rem;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAYAAACE2W/HAAAACXBIWXMAAArwAAAK8AFCrDSYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAKVJREFUeNqUz7ENgzAURdErUSXQMgdTZJFIqeg8DFI2YQeEvAEbUJja3y9NEiwCUXIlN/62jww7Saok3Z+r4pckXSRNWpskXb5deClHfeo7ylGrLqnbTmOMs/e+9d63McZ554GOlFLId0IIvXOuAUqgdM41IYQ+P5NSCpjZkitADRTZTwqgznUzWzCzZaMc9dbNbGEYhuuOclQB1OM43gBO/N/5MQAeMwpyB1MtLQAAAABJRU5ErkJggg==") no-repeat center center}.dark-theme .dynamic-to-top{border:1px solid #4a4b50}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding: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: 1800px){.page{max-width:780px}.page #toc-auto{margin-left:800px}}@media only screen and (max-width: 1440px){.page{max-width:680px}.page #toc-auto{margin-left:700px}}@media only screen and (max-width: 1200px){.page{max-width:560px}.page #toc-auto{margin-left:580px}}@media only screen and (max-width: 960px){#header-desktop .header-wrapper{margin:0 1rem}.page{max-width:80%}.page #toc-auto{display:none}.page #toc-static{display:block}}@media only screen and (max-width: 560px){#header-desktop{display:none}#header-mobile{display:block}.page{max-width:100%;padding-top:6rem}.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/css?family=Lato:100,300,400,700,900);@import url("https://fonts.googleapis.com/css?family=Fira+Mono:400,700&display=swap&subset=latin-ext");/*! 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:Lato,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft Yahei,Segoe UI,Helvetica,Arial,sans-serif,Segoe UI Emoji;font-size:16px;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{font-weight:400;line-height:1.5rem;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;transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}a:hover{color:#2d96bd}.dark-theme a{color:#a9a9b3}.dark-theme a:hover{color:#fff}.wrapper{display:flex;flex-direction:column;min-height: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:980px;margin:0 auto;padding-top:6rem}.single .single-title{margin:0;font-size:1.8rem;line-height:3rem}.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:#eee}.single .post-meta a:hover{color:#ef3982}.dark-theme .single .post-meta a:hover{color:#2d96bd}.single .post-meta .author{font-size:1.05rem}.single .featured-image{padding-top:.6rem}.single .featured-image img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.single #toc-auto{display:block;position:absolute;width:100%;margin-left:1000px;padding:0 .8rem;border-left:1px solid #dcdcdc;overflow-wrap:break-word;box-sizing:border-box;top:12rem}.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:#eee}.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:#eee}.single #toc-auto .toc-content a.active::before{color:#ef3982}.dark-theme .single #toc-auto .toc-content a.active::before{color:#2d96bd}.single #toc-static{display:none;padding-top:.8rem}.single #toc-static details summary .toc-title{display:block;display:flex;justify-content:space-between;font-size:1.2em;font-weight:bold;line-height:2em;padding:0 .625rem;background:#f5f5f5}.single #toc-static details summary .toc-title i.details{line-height:2em}.dark-theme .single #toc-static details summary .toc-title{background:#272C34}.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{border:2px solid #f5f5f5}.single #toc-static .toc-content>nav>ul{margin:.625rem 0}.single #toc-static .toc-content ul{padding-left:.625rem;list-style:none}.single #toc-static .toc-content ul ul{padding-left:1.25rem}.dark-theme .single #toc-static .toc-content{border:2px solid #272C34}.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>a:first-child::before,.single .content h3>a:first-child::before,.single .content h4>a:first-child::before,.single .content h5>a:first-child::before,.single .content h6>a:first-child::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark-theme .single .content h2>a:first-child::before,.dark-theme .single .content h3>a:first-child::before,.dark-theme .single .content h4>a:first-child::before,.dark-theme .single .content h5>a:first-child::before,.dark-theme .single .content h6>a:first-child::before{color:#eee}.single .content h2>a:first-child::before{content:"#"}.single .content p{font-size:1rem;margin:.5rem 0}.single .content a{word-break:break-all;color:#2d96bd}.dark-theme .single .content a{color:#eee}.single .content a:hover{color:#ef3982}.dark-theme .single .content a:hover:hover{color:#2d96bd;font-weight:bold}.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}.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 figure{text-align:center}.single .content .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.625rem;margin:0 auto;border-bottom:1px solid #d9d9d9;font-size:.875rem;color:#969696;line-height:1.7}.single .content img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.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:#eee}.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:#eee}.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:Fira Mono,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;line-height:18px}.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:Lato,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft Yahei,Segoe UI,Helvetica,Arial,sans-serif,Segoe UI Emoji;font-size:13px;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 table,.single .content .highlight>.chroma tr,.single .content .highlight>.chroma td{margin:0;border:none !important}.single .content .highlight>.chroma td{padding:.2rem .4rem}.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:Fira Mono,Source Code Pro,Menlo,Consolas,Monaco,monospace}.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 .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:.5rem .75rem .5rem 2.5rem;border-bottom:0.1rem solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1);font-weight:700}.single .content .admonition .admonition-content{margin:.5rem 0}.single .content .admonition i.icon{font-size:16px;color:#448aff;cursor:auto;position:absolute;left:.75rem;top:.75rem}.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:.75rem;right:.75rem;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:Fira Mono,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:Fira Mono,Source Code Pro,Menlo,Consolas,Monaco,monospace;font-weight:bold;word-break:break-all}.single .content .align-left{text-align:left}.single .content .align-center{text-align:center}.single .content .align-right{text-align:right}.single .content .float-left{float:left}.single .content .float-right{float:right}.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-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{width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a{font-size:0.8rem;color:#2d96bd}.dark-theme .single .post-footer .post-info .post-info-line .post-info-md a{color:#eee}.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:#2d96bd}.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-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;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title{text-align:right;padding-bottom:2rem}.archive .single-title{text-align:right;padding-bottom:2rem}.archive .archive-item{margin-left:2rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;padding:0 2.5rem;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .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;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{color:#2d96bd;transform:scale(1.1)}.dark-theme .archive .tag-cloud-tags a:active,.dark-theme .archive .tag-cloud-tags a:focus,.dark-theme .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a small{color:#a9a9b3}.dark-theme .archive .tag-cloud-tags a small{color:#fff}.home .home-profile{transform:translateY(0);padding:2rem 0;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-description{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .home-social-links{padding-top:.6rem}.home .home-profile .home-social-links i{font-size:1.45rem}.home .home-profile .home-social-links img{width:1.5rem;height:1.5rem}.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.6rem}.home .summary .post-meta a{color:#a9a9b3 !important}.dark-theme .home .summary .post-meta a{color:#5d5d5f !important}.home .summary .post-meta a:hover{color:#2d96bd !important}.dark-theme .home .summary .post-meta a:hover{color:#fff !important}.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}.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:#2d96bd}.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:#eee}.home .summary .content h2{font-size:1.2rem}.home .summary .content h2::before{content:"#"}.home .summary .post-footer{margin-top:.5rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem !important}.home .summary .post-footer a{color:#2d96bd !important}.dark-theme .home .summary .post-footer a{color:#eee !important}.home .summary .post-footer a:hover{color:#ef3982 !important}.dark-theme .home .summary .post-footer a:hover{color:#2d96bd !important}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a{color:#161209 !important}.dark-theme .home .summary .post-footer .post-tags a{color:#a9a9b3 !important}.home .summary .post-footer .post-tags a:hover{color:#2d96bd !important}.dark-theme .home .summary .post-footer .post-tags a:hover{color:#fff !important}#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-desktop{display:block;position:fixed;height:4rem;line-height:4rem}#header-desktop .header-wrapper{width:auto;text-align:center;margin:0 4rem;display:flex;justify-content:space-between}#header-desktop .header-wrapper .header-title a{padding:0 8px;font-size:1.25rem}#header-desktop .header-wrapper .header-title a i{line-height:2rem}#header-desktop .header-wrapper .menu a{padding:0 8px}#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:4rem;line-height:4rem}#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{font-size:1.25rem}#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;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;transition:.1s margin, .1s transform .1s}#header-mobile .header-wrapper .header-container .menu-toggle.active span:nth-child(1){-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);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);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}.dynamic-to-top{display:none;overflow:hidden;width:auto;z-index:90;position:fixed;bottom:2rem;right:2rem;top:auto;left:auto;font-family:sans-serif;font-size:1rem;color:#fff;text-decoration:none;text-shadow:0 1px 0 #333;font-weight:bold;padding:1rem 1rem;border:1px solid #dcdcdc;background:#222;outline:none}.dynamic-to-top:hover{background:#000;cursor:pointer}.dynamic-to-top:active{background:#000;outline:none}.dynamic-to-top:focus,.dynamic-to-top:hover{outline:none}.dynamic-to-top span{display:block;overflow:hidden;width:.875rem;height:.75rem;background:url("data:image/png;base64,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") no-repeat center center}.dark-theme .dynamic-to-top{border:1px solid #4a4b50}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding: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: 1800px){.page{max-width:780px}.page #toc-auto{margin-left:800px}}@media only screen and (max-width: 1440px){.page{max-width:680px}.page #toc-auto{margin-left:700px}}@media only screen and (max-width: 1200px){.page{max-width:560px}.page #toc-auto{margin-left:580px}}@media only screen and (max-width: 960px){#header-desktop .header-wrapper{margin:0 1rem}.page{max-width:80%}.page #toc-auto{display:none}.page #toc-static{display:block}}@media only screen and (max-width: 560px){#header-desktop{display:none}#header-mobile{display:block}.page{max-width:100%;padding-top:6rem}.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 diff --git a/src/js/theme.js b/src/js/theme.js index f6e1460..68087b8 100644 --- a/src/js/theme.js +++ b/src/js/theme.js @@ -94,7 +94,7 @@ initHeaderLink() { for (let num = 1; num <= 6; num++) { - this.util.forEach(document.querySelectorAll('.content > h' + num), (header) => { + this.util.forEach(document.querySelectorAll('.page.single .content > h' + num), (header) => { header.classList.add('headerLink'); header.innerHTML = `${header.innerHTML}`; }); diff --git a/static/js/theme.min.js b/static/js/theme.min.js index e214762..2feef34 100644 --- a/static/js/theme.min.js +++ b/static/js/theme.min.js @@ -1,3 +1,3 @@ -"use strict";function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d .chroma"),function(a){var b=a.querySelectorAll("pre.chroma > code"),c=b[b.length-1],d=c?c.className.toLowerCase():"";a.className+=" "+d}),this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function(a){var b=document.createElement("div");b.className=a.className;var c=document.createElement("table");b.appendChild(c);var d=document.createElement("tbody");c.appendChild(d);var e=document.createElement("tr");d.appendChild(e);var f=document.createElement("td");e.appendChild(f),a.parentElement.replaceChild(b,a),f.appendChild(a)})}},{key:"initTable",value:function initTable(){this.util.forEach(document.querySelectorAll(".content table"),function(a){var b=document.createElement("div");b.className="table-wrapper",a.parentElement.replaceChild(b,a),b.appendChild(a)})}},{key:"initHeaderLink",value:function initHeaderLink(){for(var a=1;6>=a;a++)this.util.forEach(document.querySelectorAll(".content > h"+a),function(a){a.classList.add("headerLink"),a.innerHTML="").concat(a.innerHTML)})}},{key:"initToc",value:function initToc(){var a=this,b=document.getElementById("TableOfContents");if(null!==b)if(this.util.isTocStatic()){var k=document.getElementById("toc-content-static");b.parentElement!==k&&(b.parentElement.removeChild(b),k.appendChild(b)),this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var l=document.getElementById("toc-content-auto");b.parentElement!==l&&(b.parentElement.removeChild(b),l.appendChild(b));var c=document.getElementById("toc-auto"),d=document.getElementsByClassName("page")[0];c.style.maxWidth="".concat(d.getBoundingClientRect().left-40,"px"),this._tocLinks=this._tocLinks||b.getElementsByTagName("a"),this._tocLis=this._tocLis||b.getElementsByTagName("li"),this._headerLinks=this._headerLinks||document.getElementsByClassName("headerLink")||[];var e="normal"!==window.desktopHeaderMode,f=document.getElementById("header-desktop").offsetHeight,g=20+(e?f:0),h=c.offsetTop,j=h-g+(e?0:f);this._tocOnScroll=this._tocOnScroll||function(){var d=document.getElementById("post-footer").offsetTop,k=d-c.getBoundingClientRect().height,l=k-g+(e?0:f);a.newScrollTopl?(c.style.position="absolute",c.style.top="".concat(k,"px")):(c.style.position="fixed",c.style.top="".concat(g,"px")),a.util.forEach(a._tocLinks,function(a){a.classList.remove("active")}),a.util.forEach(a._tocLis,function(a){a.classList.remove("has-active")});for(var m=20+(e?f:0),n=a._headerLinks.length-1,o=0;om||p<=m&&q>m){n=o;break}}if(-1!==n){a._tocLinks[n].classList.add("active");for(var r=a._tocLinks[n].parentElement;r!==b;)r.classList.add("has-active"),r=r.parentElement.parentElement}},this._tocOnScroll(),this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initMermaid",value:function initMermaid(){window.mermaidMap&&(mermaid.initialize({startOnLoad:!1,theme:null}),Object.keys(window.mermaidMap).forEach(function(a){var b=document.getElementById(a);mermaid.mermaidAPI.render("d"+a,window.mermaidMap[a],function(a){b.innerHTML=a;var c=b.firstChild;c.style.width="100%"},b)}))}},{key:"initEcharts",value:function initEcharts(){var a=this;if(window.echartsMap){this._echartsArr=this._echartsArr||[];for(var b=0;bd?(a.classList.remove("fadeInDown"),a.classList.add("fadeOutUp")):e<-d&&(a.classList.remove("fadeOutUp"),a.classList.add("fadeInDown"))}),400d?(c.classList.remove("fadeIn"),c.classList.add("fadeOut")):e<-d&&(c.style.display="block",c.classList.remove("fadeOut"),c.classList.add("fadeIn")):c.style.display="none",a._scrollTimeout||(a._scrollTimeout=window.setTimeout(function(){a._scrollTimeout=null;var b=!0,c=!1,d=void 0;try{for(var e,f,g=a.scrollEventSet[Symbol.iterator]();!(b=(e=g.next()).done);b=!0)f=e.value,f()}catch(a){c=!0,d=a}finally{try{b||null==g.return||g.return()}finally{if(c)throw d}}},10)),a.oldScrollTop=a.newScrollTop},!1)}},{key:"onResize",value:function onResize(){var a=this;window.addEventListener("resize",function(){a._resizeTimeout||(a._resizeTimeout=window.setTimeout(function(){a._resizeTimeout=null;var b=!0,c=!1,d=void 0;try{for(var e,f,g=a.resizeEventSet[Symbol.iterator]();!(b=(e=g.next()).done);b=!0)f=e.value,f()}catch(a){c=!0,d=a}finally{try{b||null==g.return||g.return()}finally{if(c)throw d}}a.initMenuMobile(),a.initToc(),a.initSmoothScroll()},100))},!1)}},{key:"init",value:function init(){this.initMenuMobile(),this.initSwitchTheme(),this.initHighlight(),this.initTable(),this.initHeaderLink(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initToc(),this.initSmoothScroll(),this.onScroll(),this.onResize()}}]),b}(),c=function(){var a=new b;a.init()};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",c,!1):c()})(); +"use strict";function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d .chroma"),function(a){var b=a.querySelectorAll("pre.chroma > code"),c=b[b.length-1],d=c?c.className.toLowerCase():"";a.className+=" "+d}),this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function(a){var b=document.createElement("div");b.className=a.className;var c=document.createElement("table");b.appendChild(c);var d=document.createElement("tbody");c.appendChild(d);var e=document.createElement("tr");d.appendChild(e);var f=document.createElement("td");e.appendChild(f),a.parentElement.replaceChild(b,a),f.appendChild(a)})}},{key:"initTable",value:function initTable(){this.util.forEach(document.querySelectorAll(".content table"),function(a){var b=document.createElement("div");b.className="table-wrapper",a.parentElement.replaceChild(b,a),b.appendChild(a)})}},{key:"initHeaderLink",value:function initHeaderLink(){for(var a=1;6>=a;a++)this.util.forEach(document.querySelectorAll(".page.single .content > h"+a),function(a){a.classList.add("headerLink"),a.innerHTML="").concat(a.innerHTML)})}},{key:"initToc",value:function initToc(){var a=this,b=document.getElementById("TableOfContents");if(null!==b)if(this.util.isTocStatic()){var k=document.getElementById("toc-content-static");b.parentElement!==k&&(b.parentElement.removeChild(b),k.appendChild(b)),this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var l=document.getElementById("toc-content-auto");b.parentElement!==l&&(b.parentElement.removeChild(b),l.appendChild(b));var c=document.getElementById("toc-auto"),d=document.getElementsByClassName("page")[0];c.style.maxWidth="".concat(d.getBoundingClientRect().left-40,"px"),this._tocLinks=this._tocLinks||b.getElementsByTagName("a"),this._tocLis=this._tocLis||b.getElementsByTagName("li"),this._headerLinks=this._headerLinks||document.getElementsByClassName("headerLink")||[];var e="normal"!==window.desktopHeaderMode,f=document.getElementById("header-desktop").offsetHeight,g=20+(e?f:0),h=c.offsetTop,j=h-g+(e?0:f);this._tocOnScroll=this._tocOnScroll||function(){var d=document.getElementById("post-footer").offsetTop,k=d-c.getBoundingClientRect().height,l=k-g+(e?0:f);a.newScrollTopl?(c.style.position="absolute",c.style.top="".concat(k,"px")):(c.style.position="fixed",c.style.top="".concat(g,"px")),a.util.forEach(a._tocLinks,function(a){a.classList.remove("active")}),a.util.forEach(a._tocLis,function(a){a.classList.remove("has-active")});for(var m=20+(e?f:0),n=a._headerLinks.length-1,o=0;om||p<=m&&q>m){n=o;break}}if(-1!==n){a._tocLinks[n].classList.add("active");for(var r=a._tocLinks[n].parentElement;r!==b;)r.classList.add("has-active"),r=r.parentElement.parentElement}},this._tocOnScroll(),this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initMermaid",value:function initMermaid(){window.mermaidMap&&(mermaid.initialize({startOnLoad:!1,theme:null}),Object.keys(window.mermaidMap).forEach(function(a){var b=document.getElementById(a);mermaid.mermaidAPI.render("d"+a,window.mermaidMap[a],function(a){b.innerHTML=a;var c=b.firstChild;c.style.width="100%"},b)}))}},{key:"initEcharts",value:function initEcharts(){var a=this;if(window.echartsMap){this._echartsArr=this._echartsArr||[];for(var b=0;bd?(a.classList.remove("fadeInDown"),a.classList.add("fadeOutUp")):e<-d&&(a.classList.remove("fadeOutUp"),a.classList.add("fadeInDown"))}),400d?(c.classList.remove("fadeIn"),c.classList.add("fadeOut")):e<-d&&(c.style.display="block",c.classList.remove("fadeOut"),c.classList.add("fadeIn")):c.style.display="none",a._scrollTimeout||(a._scrollTimeout=window.setTimeout(function(){a._scrollTimeout=null;var b=!0,c=!1,d=void 0;try{for(var e,f,g=a.scrollEventSet[Symbol.iterator]();!(b=(e=g.next()).done);b=!0)f=e.value,f()}catch(a){c=!0,d=a}finally{try{b||null==g.return||g.return()}finally{if(c)throw d}}},10)),a.oldScrollTop=a.newScrollTop},!1)}},{key:"onResize",value:function onResize(){var a=this;window.addEventListener("resize",function(){a._resizeTimeout||(a._resizeTimeout=window.setTimeout(function(){a._resizeTimeout=null;var b=!0,c=!1,d=void 0;try{for(var e,f,g=a.resizeEventSet[Symbol.iterator]();!(b=(e=g.next()).done);b=!0)f=e.value,f()}catch(a){c=!0,d=a}finally{try{b||null==g.return||g.return()}finally{if(c)throw d}}a.initMenuMobile(),a.initToc(),a.initSmoothScroll()},100))},!1)}},{key:"init",value:function init(){this.initMenuMobile(),this.initSwitchTheme(),this.initHighlight(),this.initTable(),this.initHeaderLink(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initToc(),this.initSmoothScroll(),this.onScroll(),this.onResize()}}]),b}(),c=function(){var a=new b;a.init()};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",c,!1):c()})(); //# sourceMappingURL=theme.min.js.map \ No newline at end of file diff --git a/static/js/theme.min.js.map b/static/js/theme.min.js.map index 8662249..5734fa6 100644 --- a/static/js/theme.min.js.map +++ b/static/js/theme.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/js/theme.js"],"names":[],"mappings":"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","file":"theme.min.js","sourcesContent":["(() => {\n 'use strict';\n\n class Util {\n forEach(elements, handler) {\n elements = elements || [];\n for (let i = 0; i < elements.length; i++) {\n handler(elements[i]);\n }\n }\n\n getScrollTop() {\n return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n }\n\n isMobile() {\n return window.matchMedia('only screen and (max-width: 560px)').matches;\n }\n\n isTocStatic() {\n return window.matchMedia('only screen and (max-width: 960px)').matches;\n }\n }\n\n class Theme {\n constructor() {\n this.util = new Util();\n this.newScrollTop = this.util.getScrollTop();\n this.oldScrollTop = this.newScrollTop;\n this.scrollEventSet = new Set();\n this.resizeEventSet = new Set();\n }\n\n initMenuMobile() {\n const menuToggleMobile = document.getElementById('menu-toggle-mobile');\n const menuMobile = document.getElementById('menu-mobile');\n this._menuMobileOnScroll = this._menuMobileOnScroll || (() => {\n menuToggleMobile.classList.remove('active');\n menuMobile.classList.remove('active');\n });\n if (this.util.isMobile()) {\n menuToggleMobile.onclick = () => {\n menuToggleMobile.classList.toggle('active');\n menuMobile.classList.toggle('active');\n };\n this.scrollEventSet.add(this._menuMobileOnScroll);\n } else {\n this.scrollEventSet.delete(this._menuMobileOnScroll);\n }\n }\n\n initSwitchTheme() {\n this.util.forEach(document.getElementsByClassName('theme-switch'), (button) => {\n button.onclick = () => {\n document.body.classList.toggle('dark-theme');\n window.isDark = !window.isDark;\n window.localStorage && window.localStorage.setItem('theme', window.isDark ? 'dark' : 'light');\n this.initEcharts();\n };\n });\n }\n\n initHighlight() {\n this.util.forEach(document.querySelectorAll('.highlight > .chroma'), (block) => {\n const codes = block.querySelectorAll('pre.chroma > code');\n const code = codes[codes.length - 1];\n const lang = code ? code.className.toLowerCase() : '';\n block.className += ' ' + lang;\n });\n this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), (block) => {\n const chroma = document.createElement('div');\n chroma.className = block.className;\n const table = document.createElement('table');\n chroma.appendChild(table);\n const tbody = document.createElement('tbody');\n table.appendChild(tbody);\n const tr = document.createElement('tr');\n tbody.appendChild(tr);\n const td = document.createElement('td');\n tr.appendChild(td);\n block.parentElement.replaceChild(chroma, block);\n td.appendChild(block);\n });\n }\n\n initTable() {\n this.util.forEach(document.querySelectorAll('.content table'), (table) => {\n const wrapper = document.createElement('div');\n wrapper.className = 'table-wrapper';\n table.parentElement.replaceChild(wrapper, table);\n wrapper.appendChild(table);\n });\n }\n\n initHeaderLink() {\n for (let num = 1; num <= 6; num++) {\n this.util.forEach(document.querySelectorAll('.content > h' + num), (header) => {\n header.classList.add('headerLink');\n header.innerHTML = `${header.innerHTML}`;\n });\n }\n }\n\n initToc() {\n const tocCore = document.getElementById('TableOfContents');\n if (tocCore === null) return;\n if (this.util.isTocStatic()) {\n const tocContentStatic = document.getElementById('toc-content-static');\n if (tocCore.parentElement !== tocContentStatic) {\n tocCore.parentElement.removeChild(tocCore);\n tocContentStatic.appendChild(tocCore);\n }\n if (this._tocOnScroll) this.scrollEventSet.delete(this._tocOnScroll);\n } else {\n const tocContentAuto = document.getElementById('toc-content-auto');\n if (tocCore.parentElement !== tocContentAuto) {\n tocCore.parentElement.removeChild(tocCore);\n tocContentAuto.appendChild(tocCore);\n }\n const toc = document.getElementById('toc-auto');\n const page = document.getElementsByClassName('page')[0];\n toc.style.maxWidth = `${page.getBoundingClientRect().left - 40}px`;\n this._tocLinks = this._tocLinks || tocCore.getElementsByTagName('a');\n this._tocLis = this._tocLis || tocCore.getElementsByTagName('li');\n this._headerLinks = this._headerLinks || document.getElementsByClassName('headerLink') || [];\n const headerIsFixed = window.desktopHeaderMode !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n const TOP_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n const minTocTop = toc.offsetTop;\n const minScrollTop = minTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n this._tocOnScroll = this._tocOnScroll || (() => {\n const footerTop = document.getElementById('post-footer').offsetTop;\n const maxTocTop = footerTop - toc.getBoundingClientRect().height;\n const maxScrollTop = maxTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n if (this.newScrollTop < minScrollTop) {\n toc.style.position = 'absolute';\n toc.style.top = `${minTocTop}px`;\n } else if (this.newScrollTop > maxScrollTop) {\n toc.style.position = 'absolute';\n toc.style.top = `${maxTocTop}px`;\n } else {\n toc.style.position = 'fixed';\n toc.style.top = `${TOP_SPACING}px`;\n }\n\n this.util.forEach(this._tocLinks, (link) => { link.classList.remove('active'); });\n this.util.forEach(this._tocLis, (link) => { link.classList.remove('has-active'); });\n const INDEX_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n let activeTocIndex = this._headerLinks.length - 1;\n for (let i = 0; i < this._headerLinks.length - 1; i++) {\n const thisTop = this._headerLinks[i].getBoundingClientRect().top;\n const nextTop = this._headerLinks[i + 1].getBoundingClientRect().top;\n if ((i == 0 && thisTop > INDEX_SPACING)\n || (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) {\n activeTocIndex = i;\n break;\n }\n }\n if (activeTocIndex !== -1) {\n this._tocLinks[activeTocIndex].classList.add('active');\n let parent = this._tocLinks[activeTocIndex].parentElement;\n while (parent !== tocCore) {\n parent.classList.add('has-active');\n parent = parent.parentElement.parentElement;\n }\n }\n });\n this._tocOnScroll();\n this.scrollEventSet.add(this._tocOnScroll);\n }\n }\n\n initMermaid() {\n if (window.mermaidMap) {\n mermaid.initialize({startOnLoad: false, theme: null});\n Object.keys(window.mermaidMap).forEach((id) => {\n const element = document.getElementById(id);\n mermaid.mermaidAPI.render(\"d\" + id, window.mermaidMap[id], (svgCode) => {\n element.innerHTML = svgCode;\n const svg = element.firstChild;\n svg.style.width = \"100%\"\n }, element);\n });\n }\n }\n\n initEcharts() {\n if (window.echartsMap) {\n this._echartsArr = this._echartsArr || [];\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].dispose();\n }\n this._echartsArr = [];\n Object.keys(window.echartsMap).forEach((id) => {\n const chart = echarts.init(document.getElementById(id), window.isDark ? 'dark' : 'macarons', {renderer: 'svg'});\n chart.setOption(window.echartsMap[id]);\n this._echartsArr.push(chart);\n });\n this._echartsOnResize = this._echartsOnResize || (() => {\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].resize();\n }\n });\n this.resizeEventSet.add(this._echartsOnResize);\n }\n }\n\n initTypeit() {\n if (window.typeitArr) {\n for (let i = 0; i < window.typeitArr.length; i++) {\n const group = window.typeitArr[i];\n (function typeone(i) {\n const content = document.getElementById(`r${group[i]}`).innerHTML;\n if (i === group.length - 1) {\n new TypeIt(`#${group[i]}`, {\n strings: content,\n }).go();\n return;\n }\n let instance = new TypeIt(`#${group[i]}`, {\n strings: content,\n afterComplete: () => {\n instance.destroy();\n typeone(i + 1);\n },\n }).go();\n })(0);\n }\n }\n }\n\n initSmoothScroll() {\n if ((!this.util.isMobile() && window.desktopHeaderMode === 'normal')\n || (this.util.isMobile() && window.mobileHeaderMode === 'normal')) {\n new SmoothScroll('[href^=\"#\"]', {speed: 300, speedAsDuration: true});\n } else {\n new SmoothScroll('[href^=\"#\"]', {speed: 300, speedAsDuration: true, header: '#header-desktop'});\n }\n }\n\n onScroll() {\n const headers = [];\n if (window.desktopHeaderMode === 'auto') headers.push(document.getElementById('header-desktop'));\n if (window.mobileHeaderMode === 'auto') headers.push(document.getElementById('header-mobile'));\n this.util.forEach(headers, (header) => {\n header.classList.add('animated');\n header.classList.add('faster');\n });\n const toTopButton = document.getElementById('dynamic-to-top');\n const MIN_SCROLL = 20;\n window.addEventListener('scroll', () => {\n this.newScrollTop = this.util.getScrollTop();\n const scroll = this.newScrollTop - this.oldScrollTop;\n this.util.forEach(headers, (header) => {\n if (scroll > MIN_SCROLL) {\n header.classList.remove('fadeInDown');\n header.classList.add('fadeOutUp');\n } else if (scroll < - MIN_SCROLL) {\n header.classList.remove('fadeOutUp');\n header.classList.add('fadeInDown');\n }\n });\n if (this.newScrollTop > 400) {\n if (scroll > MIN_SCROLL) {\n toTopButton.classList.remove('fadeIn');\n toTopButton.classList.add('fadeOut');\n } else if (scroll < - MIN_SCROLL) {\n toTopButton.style.display = 'block';\n toTopButton.classList.remove('fadeOut');\n toTopButton.classList.add('fadeIn');\n }\n } else {\n toTopButton.style.display = 'none';\n }\n if (!this._scrollTimeout) {\n this._scrollTimeout = window.setTimeout(() => {\n this._scrollTimeout = null;\n for (let event of this.scrollEventSet) event();\n }, 10);\n }\n this.oldScrollTop = this.newScrollTop;\n }, false);\n }\n\n onResize() {\n window.addEventListener('resize', () => {\n if (!this._resizeTimeout) {\n this._resizeTimeout = window.setTimeout(() => {\n this._resizeTimeout = null;\n for (let event of this.resizeEventSet) event();\n this.initMenuMobile();\n this.initToc();\n this.initSmoothScroll();\n }, 100);\n }\n }, false);\n }\n\n init() {\n this.initMenuMobile();\n this.initSwitchTheme();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initToc();\n this.initSmoothScroll();\n\n this.onScroll();\n this.onResize();\n }\n }\n\n const themeInit = () => {\n const theme = new Theme();\n theme.init();\n };\n\n if (document.readyState !== 'loading') {\n themeInit();\n } else {\n document.addEventListener('DOMContentLoaded', themeInit, false);\n }\n})();\n"]} \ No newline at end of file +{"version":3,"sources":["../../src/js/theme.js"],"names":[],"mappings":"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","file":"theme.min.js","sourcesContent":["(() => {\n 'use strict';\n\n class Util {\n forEach(elements, handler) {\n elements = elements || [];\n for (let i = 0; i < elements.length; i++) {\n handler(elements[i]);\n }\n }\n\n getScrollTop() {\n return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n }\n\n isMobile() {\n return window.matchMedia('only screen and (max-width: 560px)').matches;\n }\n\n isTocStatic() {\n return window.matchMedia('only screen and (max-width: 960px)').matches;\n }\n }\n\n class Theme {\n constructor() {\n this.util = new Util();\n this.newScrollTop = this.util.getScrollTop();\n this.oldScrollTop = this.newScrollTop;\n this.scrollEventSet = new Set();\n this.resizeEventSet = new Set();\n }\n\n initMenuMobile() {\n const menuToggleMobile = document.getElementById('menu-toggle-mobile');\n const menuMobile = document.getElementById('menu-mobile');\n this._menuMobileOnScroll = this._menuMobileOnScroll || (() => {\n menuToggleMobile.classList.remove('active');\n menuMobile.classList.remove('active');\n });\n if (this.util.isMobile()) {\n menuToggleMobile.onclick = () => {\n menuToggleMobile.classList.toggle('active');\n menuMobile.classList.toggle('active');\n };\n this.scrollEventSet.add(this._menuMobileOnScroll);\n } else {\n this.scrollEventSet.delete(this._menuMobileOnScroll);\n }\n }\n\n initSwitchTheme() {\n this.util.forEach(document.getElementsByClassName('theme-switch'), (button) => {\n button.onclick = () => {\n document.body.classList.toggle('dark-theme');\n window.isDark = !window.isDark;\n window.localStorage && window.localStorage.setItem('theme', window.isDark ? 'dark' : 'light');\n this.initEcharts();\n };\n });\n }\n\n initHighlight() {\n this.util.forEach(document.querySelectorAll('.highlight > .chroma'), (block) => {\n const codes = block.querySelectorAll('pre.chroma > code');\n const code = codes[codes.length - 1];\n const lang = code ? code.className.toLowerCase() : '';\n block.className += ' ' + lang;\n });\n this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), (block) => {\n const chroma = document.createElement('div');\n chroma.className = block.className;\n const table = document.createElement('table');\n chroma.appendChild(table);\n const tbody = document.createElement('tbody');\n table.appendChild(tbody);\n const tr = document.createElement('tr');\n tbody.appendChild(tr);\n const td = document.createElement('td');\n tr.appendChild(td);\n block.parentElement.replaceChild(chroma, block);\n td.appendChild(block);\n });\n }\n\n initTable() {\n this.util.forEach(document.querySelectorAll('.content table'), (table) => {\n const wrapper = document.createElement('div');\n wrapper.className = 'table-wrapper';\n table.parentElement.replaceChild(wrapper, table);\n wrapper.appendChild(table);\n });\n }\n\n initHeaderLink() {\n for (let num = 1; num <= 6; num++) {\n this.util.forEach(document.querySelectorAll('.page.single .content > h' + num), (header) => {\n header.classList.add('headerLink');\n header.innerHTML = `${header.innerHTML}`;\n });\n }\n }\n\n initToc() {\n const tocCore = document.getElementById('TableOfContents');\n if (tocCore === null) return;\n if (this.util.isTocStatic()) {\n const tocContentStatic = document.getElementById('toc-content-static');\n if (tocCore.parentElement !== tocContentStatic) {\n tocCore.parentElement.removeChild(tocCore);\n tocContentStatic.appendChild(tocCore);\n }\n if (this._tocOnScroll) this.scrollEventSet.delete(this._tocOnScroll);\n } else {\n const tocContentAuto = document.getElementById('toc-content-auto');\n if (tocCore.parentElement !== tocContentAuto) {\n tocCore.parentElement.removeChild(tocCore);\n tocContentAuto.appendChild(tocCore);\n }\n const toc = document.getElementById('toc-auto');\n const page = document.getElementsByClassName('page')[0];\n toc.style.maxWidth = `${page.getBoundingClientRect().left - 40}px`;\n this._tocLinks = this._tocLinks || tocCore.getElementsByTagName('a');\n this._tocLis = this._tocLis || tocCore.getElementsByTagName('li');\n this._headerLinks = this._headerLinks || document.getElementsByClassName('headerLink') || [];\n const headerIsFixed = window.desktopHeaderMode !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n const TOP_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n const minTocTop = toc.offsetTop;\n const minScrollTop = minTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n this._tocOnScroll = this._tocOnScroll || (() => {\n const footerTop = document.getElementById('post-footer').offsetTop;\n const maxTocTop = footerTop - toc.getBoundingClientRect().height;\n const maxScrollTop = maxTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n if (this.newScrollTop < minScrollTop) {\n toc.style.position = 'absolute';\n toc.style.top = `${minTocTop}px`;\n } else if (this.newScrollTop > maxScrollTop) {\n toc.style.position = 'absolute';\n toc.style.top = `${maxTocTop}px`;\n } else {\n toc.style.position = 'fixed';\n toc.style.top = `${TOP_SPACING}px`;\n }\n\n this.util.forEach(this._tocLinks, (link) => { link.classList.remove('active'); });\n this.util.forEach(this._tocLis, (link) => { link.classList.remove('has-active'); });\n const INDEX_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n let activeTocIndex = this._headerLinks.length - 1;\n for (let i = 0; i < this._headerLinks.length - 1; i++) {\n const thisTop = this._headerLinks[i].getBoundingClientRect().top;\n const nextTop = this._headerLinks[i + 1].getBoundingClientRect().top;\n if ((i == 0 && thisTop > INDEX_SPACING)\n || (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) {\n activeTocIndex = i;\n break;\n }\n }\n if (activeTocIndex !== -1) {\n this._tocLinks[activeTocIndex].classList.add('active');\n let parent = this._tocLinks[activeTocIndex].parentElement;\n while (parent !== tocCore) {\n parent.classList.add('has-active');\n parent = parent.parentElement.parentElement;\n }\n }\n });\n this._tocOnScroll();\n this.scrollEventSet.add(this._tocOnScroll);\n }\n }\n\n initMermaid() {\n if (window.mermaidMap) {\n mermaid.initialize({startOnLoad: false, theme: null});\n Object.keys(window.mermaidMap).forEach((id) => {\n const element = document.getElementById(id);\n mermaid.mermaidAPI.render(\"d\" + id, window.mermaidMap[id], (svgCode) => {\n element.innerHTML = svgCode;\n const svg = element.firstChild;\n svg.style.width = \"100%\"\n }, element);\n });\n }\n }\n\n initEcharts() {\n if (window.echartsMap) {\n this._echartsArr = this._echartsArr || [];\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].dispose();\n }\n this._echartsArr = [];\n Object.keys(window.echartsMap).forEach((id) => {\n const chart = echarts.init(document.getElementById(id), window.isDark ? 'dark' : 'macarons', {renderer: 'svg'});\n chart.setOption(window.echartsMap[id]);\n this._echartsArr.push(chart);\n });\n this._echartsOnResize = this._echartsOnResize || (() => {\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].resize();\n }\n });\n this.resizeEventSet.add(this._echartsOnResize);\n }\n }\n\n initTypeit() {\n if (window.typeitArr) {\n for (let i = 0; i < window.typeitArr.length; i++) {\n const group = window.typeitArr[i];\n (function typeone(i) {\n const content = document.getElementById(`r${group[i]}`).innerHTML;\n if (i === group.length - 1) {\n new TypeIt(`#${group[i]}`, {\n strings: content,\n }).go();\n return;\n }\n let instance = new TypeIt(`#${group[i]}`, {\n strings: content,\n afterComplete: () => {\n instance.destroy();\n typeone(i + 1);\n },\n }).go();\n })(0);\n }\n }\n }\n\n initSmoothScroll() {\n if ((!this.util.isMobile() && window.desktopHeaderMode === 'normal')\n || (this.util.isMobile() && window.mobileHeaderMode === 'normal')) {\n new SmoothScroll('[href^=\"#\"]', {speed: 300, speedAsDuration: true});\n } else {\n new SmoothScroll('[href^=\"#\"]', {speed: 300, speedAsDuration: true, header: '#header-desktop'});\n }\n }\n\n onScroll() {\n const headers = [];\n if (window.desktopHeaderMode === 'auto') headers.push(document.getElementById('header-desktop'));\n if (window.mobileHeaderMode === 'auto') headers.push(document.getElementById('header-mobile'));\n this.util.forEach(headers, (header) => {\n header.classList.add('animated');\n header.classList.add('faster');\n });\n const toTopButton = document.getElementById('dynamic-to-top');\n const MIN_SCROLL = 20;\n window.addEventListener('scroll', () => {\n this.newScrollTop = this.util.getScrollTop();\n const scroll = this.newScrollTop - this.oldScrollTop;\n this.util.forEach(headers, (header) => {\n if (scroll > MIN_SCROLL) {\n header.classList.remove('fadeInDown');\n header.classList.add('fadeOutUp');\n } else if (scroll < - MIN_SCROLL) {\n header.classList.remove('fadeOutUp');\n header.classList.add('fadeInDown');\n }\n });\n if (this.newScrollTop > 400) {\n if (scroll > MIN_SCROLL) {\n toTopButton.classList.remove('fadeIn');\n toTopButton.classList.add('fadeOut');\n } else if (scroll < - MIN_SCROLL) {\n toTopButton.style.display = 'block';\n toTopButton.classList.remove('fadeOut');\n toTopButton.classList.add('fadeIn');\n }\n } else {\n toTopButton.style.display = 'none';\n }\n if (!this._scrollTimeout) {\n this._scrollTimeout = window.setTimeout(() => {\n this._scrollTimeout = null;\n for (let event of this.scrollEventSet) event();\n }, 10);\n }\n this.oldScrollTop = this.newScrollTop;\n }, false);\n }\n\n onResize() {\n window.addEventListener('resize', () => {\n if (!this._resizeTimeout) {\n this._resizeTimeout = window.setTimeout(() => {\n this._resizeTimeout = null;\n for (let event of this.resizeEventSet) event();\n this.initMenuMobile();\n this.initToc();\n this.initSmoothScroll();\n }, 100);\n }\n }, false);\n }\n\n init() {\n this.initMenuMobile();\n this.initSwitchTheme();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initToc();\n this.initSmoothScroll();\n\n this.onScroll();\n this.onResize();\n }\n }\n\n const themeInit = () => {\n const theme = new Theme();\n theme.init();\n };\n\n if (document.readyState !== 'loading') {\n themeInit();\n } else {\n document.addEventListener('DOMContentLoaded', themeInit, false);\n }\n})();\n"]} \ No newline at end of file