diff options
author | DSRKafuU | 2020-06-19 00:40:29 +0800 |
---|---|---|
committer | GitHub | 2020-06-19 00:40:29 +0800 |
commit | ec4b32aa7ab6b71d0b9f756bc8d1c1b1e3cf8353 (patch) | |
tree | 65938a770dbb2c02f7028204d3cf77ca52990b97 | |
parent | 1a9b75fa6216334d0a9a1c379dba212888ce6f76 (diff) | |
parent | edbbfabae66d75217a95e3e0a054548502ebf2d9 (diff) | |
download | hugo-theme-fuji-ec4b32aa7ab6b71d0b9f756bc8d1c1b1e3cf8353.tar.gz hugo-theme-fuji-ec4b32aa7ab6b71d0b9f756bc8d1c1b1e3cf8353.tar.bz2 hugo-theme-fuji-ec4b32aa7ab6b71d0b9f756bc8d1c1b1e3cf8353.zip |
Merge pull request #34 from amzrk2/dev
Pre-release v2.1.0
36 files changed, 441 insertions, 154 deletions
diff --git a/.github/stale.yml b/.github/stale.yml index c21b773..fbc7b42 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,5 +1,5 @@ # Number of days of inactivity before an issue becomes stale -daysUntilStale: 30 +daysUntilStale: 14 # Number of days of inactivity before a stale issue is closed daysUntilClose: 5 # Issues with these labels will never be considered stale @@ -6,7 +6,7 @@ Fuji is a minimal Hugo theme with full dark mode support and GitHub Primer markd [English](https://github.com/amzrk2/hugo-theme-fuji#readme) | [简体中文](https://github.com/amzrk2/hugo-theme-fuji/blob/master/README_CN.md) -After the release of v2, **there may be major changes in the image lazyload shortcode** to make it easier to use.If you want to change the color scheme, please check [🔧 Advanced configuration](#-advanced-configuration). +After the release of v2, **there may be major changes in the image lazyload shortcode** to make it easier to use. If you want to change the color scheme, please check [🔧 Advanced configuration](#-advanced-configuration). Now supported i18n langs: en, zh-hans, zh-hant, ja, nl. Check the i18n folder to add more languages. @@ -16,9 +16,9 @@ Now supported i18n langs: en, zh-hans, zh-hant, ja, nl. Check the i18n folder to - [❗ Notice](#-notice) - [🐣 Getting started](#-getting-started) - [🆕 Update the theme](#-update-the-theme) -- [⚙️ Configration](#%EF%B8%8F-configration) +- [⚙️ Configuration](#%EF%B8%8F-configuration) - [🎨 Favicon](#-favicon) - - [❌ In-post license, comments und toc](#-in-post-license-comments-und-toc) + - [❌ License, toc und comments](#-license-toc-und-comments) - [🎵 APlayer](#-aplayer) - [📷 Image zoom and lazyload settings](#-image-zoom-and-lazyload-settings) - [⚓ Markdown render hook](#-markdown-render-hook) @@ -30,7 +30,7 @@ Now supported i18n langs: en, zh-hans, zh-hant, ja, nl. Check the i18n folder to ## 💻 Live demos -[**Live Demo by Vercel (en)**](https://hugo-theme-fuji-demo.now.sh/) | [My Blog by Coding (zh-Hans)](https://blog.amzrk2.cc/) +[**Live Demo (en)**](https://hugo-theme-fuji-demo.now.sh/) | [My Blog (zh-Hans)](https://blog.amzrk2.cc/)  @@ -68,7 +68,7 @@ Inside the folder of your Hugo site run: $ git submodule update --remote --merge ``` -## ⚙️ Configration +## ⚙️ Configuration ### 🎨 Favicon @@ -76,21 +76,26 @@ Create `[SITEROOT]/layouts/partials/favicon.html` to cover theme's favicon. You can generate your favicons in [realfavicongenerator.net](https://realfavicongenerator.net/). -### ❌ In-post license, comments und toc +### ❌ License, toc und comments -You can set variables below in post's front matter to disable them: +Globally in `config.toml`: ```toml -noLicense = true # Do not show license in this post -noComments = true # Do not show comments in this post -noToc = true # Do not show toc in this post +showLicense = true # Enable or disable license for all post +showToc = true # Enable or disable ToC for all post ``` -Or you can disable these globally, set these below to false or comment it in your `config.toml`: +Or in posts' front matter: ```toml -showLicense = false -showToc = false +showLicense = true # Enable or disable license for this specific post +showToc = true # Enable or disable ToC for this specific post +``` + +To disable comment area for specific post, add this in front matter: + +```toml +showComments = false # Do not show comments in this post ``` ### 🎵 APlayer @@ -98,10 +103,16 @@ showToc = false In-post APlayer supported, you can set these variables in post's front matter: ```toml -playerName = "..." # Audio title or name -playerArtist = "..." # Audio artist -playerURL = "..." # Audio URL, support aac, mp3, wav and ogg -playerCover = "..." # Audio cover +[[player]] + playerName = "..." # Audio title or name + playerArtist = "..." # Audio artist + playerURL = "..." # Audio URL, support aac, mp3, wav and ogg + playerCover = "..." # Audio cover +[[player]] + playerName = "..." + playerArtist = "..." + playerURL = "..." + playerCover = "..." ``` ### 📷 Image zoom and lazyload settings @@ -222,9 +233,11 @@ The theme is released under the ```Apache License 2.0```, for more information r - [Primer CSS - MIT](https://github.com/primer/css/blob/master/LICENSE) - [APlayer - MIT](https://github.com/MoePlayer/APlayer/blob/master/LICENSE) - [lazysizes - MIT](https://github.com/aFarkas/lazysizes/blob/gh-pages/LICENSE) -- [medium-zoom - MIT](https://github.com/francoischalifour/medium-zoom/blob/master/LICENSE) - [DisqusJS - MIT](https://github.com/SukkaW/DisqusJS/blob/master/LICENSE) - [ionicons - MIT](https://github.com/ionic-team/ionicons/blob/master/LICENSE) +- [Fuse.js - Apache-2.0](https://github.com/krisk/Fuse/blob/master/LICENSE) +- [cloudflare-workers-async-google-analytics - MIT](https://github.com/SukkaW/cloudflare-workers-async-google-analytics/blob/master/LICENSE) +- [art-template - MIT](https://github.com/aui/art-template/blob/master/LICENSE) > © 2020 DSRKafuU(amzrk2) [Twitter @amzrk2](https://twitter.com/amzrk2) [GitHub @amzrk2](https://github.com/amzrk2) diff --git a/README_CN.md b/README_CN.md index 6f2ed65..fbf34c5 100644 --- a/README_CN.md +++ b/README_CN.md @@ -18,7 +18,7 @@ - [🆕 更新主题](#-更新主题) - [⚙️ 自定义设置](#%EF%B8%8F-自定义设置) - [🎨 站点图标](#-站点图标) - - [❌ 关闭 License、评论区和目录](#-关闭-license评论区和目录) + - [❌ License、目录和评论区](#-license目录和评论区) - [🎵 文章音乐](#-文章音乐) - [📷 图片放大的设置和 lazyload](#-图片放大的设置和-lazyload) - [⚓ Markdown 钩子](#-markdown-钩子) @@ -30,7 +30,7 @@ ## 💻 在线 Demo -[**在线 Demo - Vercel (英文)**](https://hugo-theme-fuji-demo.now.sh/) | [我的博客 - Coding (中文)](https://blog.amzrk2.cc/) +[**在线 Demo (英文)**](https://hugo-theme-fuji-demo.now.sh/) | [我的博客 (中文)](https://blog.amzrk2.cc/)  @@ -66,21 +66,26 @@ $ git submodule update --remote --merge 可以在 [realfavicongenerator.net](https://realfavicongenerator.net/) 快速创建自己的图标。 -### ❌ 关闭 License、评论区和目录 +### ❌ License、目录和评论区 -在 front matter 里加上这些: +在全局的 `config.toml` 里设置: ```toml -noLicense = true # 憋显示 License -noComments = true # 憋显示评论区 -noToc = true # 憋显示目录 +showLicense = true # 对所有文章开关 License 显示 +showToc = true # 对所有文章开关目录显示 ``` -你也可以全局关闭这些内容的显示,在 `config.toml` 把下面这些设置为 false 或注释掉: +在特定文章的 front matter 里设置: ```toml -showLicense = false -showToc = false +showLicense = true # 对这篇文章开关 License 显示 +showToc = true # 对这篇文章开关目录显示 +``` + +除此之外你也可以关闭特定文章的评论: + +```toml +showComments = false # 对这篇文章关闭评论 ``` ### 🎵 文章音乐 @@ -88,10 +93,16 @@ showToc = false 支持给文章单独添加 APlayer,在 front matter 里加上这些: ```toml -playerName = "..." # 标题 -playerArtist = "..." # 作者 -playerURL = "..." # URL -playerCover = "..." # 封面 +[[player]] + playerName = "..." # 标题 + playerArtist = "..." # 作者 + playerURL = "..." # URL + playerCover = "..." # 封面 +[[player]] + playerName = "..." + playerArtist = "..." + playerURL = "..." + playerCover = "..." ``` ### 📷 图片放大的设置和 lazyload @@ -212,9 +223,11 @@ The theme is released under the ```Apache License 2.0```, for more information r - [Primer CSS - MIT](https://github.com/primer/css/blob/master/LICENSE) - [APlayer - MIT](https://github.com/MoePlayer/APlayer/blob/master/LICENSE) - [lazysizes - MIT](https://github.com/aFarkas/lazysizes/blob/gh-pages/LICENSE) -- [medium-zoom - MIT](https://github.com/francoischalifour/medium-zoom/blob/master/LICENSE) - [DisqusJS - MIT](https://github.com/SukkaW/DisqusJS/blob/master/LICENSE) - [ionicons - MIT](https://github.com/ionic-team/ionicons/blob/master/LICENSE) +- [Fuse.js - Apache-2.0](https://github.com/krisk/Fuse/blob/master/LICENSE) +- [cloudflare-workers-async-google-analytics - MIT](https://github.com/SukkaW/cloudflare-workers-async-google-analytics/blob/master/LICENSE) +- [art-template - MIT](https://github.com/aui/art-template/blob/master/LICENSE) > © 2020 DSRKafuU(amzrk2) [Twitter @amzrk2](https://twitter.com/amzrk2) [GitHub @amzrk2](https://github.com/amzrk2) diff --git a/assets/js/fuji.js b/assets/js/fuji.js index 4bc9d56..14d63bc 100644 --- a/assets/js/fuji.js +++ b/assets/js/fuji.js @@ -10,23 +10,6 @@ function getNowTheme() { } } -// update medium-zoom theme -function updateMeidumTheme(mediumInst) { - let targetTheme = getNowTheme(); - if (mediumInst) { - mediumInst.detach(); - if (targetTheme === 'dark') { - mediumInst = mediumZoom('.img-zoomable', { - background: '#2f3136', - }); - } else { - mediumInst = mediumZoom('.img-zoomable', { - background: '#fffffd', - }); - } - } -} - // update utterances theme function updateUtterancesTheme(utterancesFrame) { let targetTheme = getNowTheme(); @@ -61,18 +44,6 @@ document.querySelector('.btn .btn-scroll-top').addEventListener('click', () => { document.documentElement.scrollTop = 0; }); -// init medium-zoom -var mediumInst; // medium-zoom instance -if (getNowTheme() === 'dark') { - mediumInst = mediumZoom('.img-zoomable', { - background: '#2f3136', - }); -} else { - mediumInst = mediumZoom('.img-zoomable', { - background: '#fffffd', - }); -} - // theme switch button document.querySelector('.btn .btn-toggle-mode').addEventListener('click', () => { let nowTheme = getNowTheme(); @@ -95,8 +66,6 @@ document.querySelector('.btn .btn-toggle-mode').addEventListener('click', () => localStorage.setItem('fuji_data-theme', systemTheme === 'light' ? 'auto' : 'light'); } - // update medium background - updateMeidumTheme(mediumInst); // switch comment area theme // if this page has comment area let commentArea = document.querySelector('.post-comment'); @@ -114,3 +83,71 @@ document.querySelector('.btn .btn-toggle-mode').addEventListener('click', () => } } }); + +// search by fuse.js +function searchAll(key, index, counter) { + let fuse = new Fuse(index, { + shouldSort: true, + distance: 10000, + keys: [ + { + name: 'title', + weight: 2.0, + }, + { + name: 'tags', + weight: 1.5, + }, + { + name: 'content', + weight: 1.0, + }, + ], + }); + let result = fuse.search(key); + // console.log(result); + if (result.length > 0) { + document.getElementById('search-result').innerHTML = template('search-result-template', result); + return [new Date().getTime() - counter, result.length]; + } else { + return 'notFound'; + } +} + +let urlParams = new URLSearchParams(window.location.search); // get params from URL +if (urlParams.has('s')) { + let counter = new Date().getTime(); + let infoElements = document.querySelectorAll('.search-result-info'); + let key = urlParams.get('s'); // get search keyword, divided by space + document.querySelector('.search-input input').setAttribute('value', key); + // get search index from json + let xhr = new XMLHttpRequest(); + xhr.open('GET', '/index.json', true); + xhr.responseType = 'json'; + xhr.onerror = () => { + infoElements[2].removeAttribute('style'); + }; + xhr.ontimeout = () => { + infoElements[2].removeAttribute('style'); + }; + xhr.onreadystatechange = () => { + if (xhr.readyState === 4) { + if (xhr.status === 200) { + // use index json to search + // console.log(xhr.response); + counter = searchAll(key, xhr.response, counter); + // console.log(counter); + if (counter === 'notFound') { + infoElements[1].removeAttribute('style'); + } else { + infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[TIME]', counter[0]); + infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[NUM]', counter[1]); + infoElements[0].removeAttribute('style'); + } + } else { + infoElements[2].removeAttribute('style'); + } + } + }; + xhr.send(null); +} diff --git a/assets/scss/_fuji-style/_content.scss b/assets/scss/_fuji-style/_content.scss index 03add33..2cfd184 100644 --- a/assets/scss/_fuji-style/_content.scss +++ b/assets/scss/_fuji-style/_content.scss @@ -56,6 +56,11 @@ margin: 0.5rem 0.1rem 0 0.1rem; // little space flex-wrap: wrap; + span { + display: flex; + align-items: center; + } + span:not(:last-child) { padding-right: 1.5rem; } @@ -155,3 +160,40 @@ article { #disqus_thread { padding: 1.25rem 0; } + +// search page part + +#search-result .post:first-child { + padding: 1.5rem 0; +} + +.search-result-info { + padding: 1rem 0.1rem; +} + +.search-input { + display: flex; + height: 2.5rem; + align-items: center; + padding-left: 0.5rem; + width: 100%; + + input { + width: 100%; + min-width: 0; + flex: 1 1 auto; + height: 2rem; + } + + button { + flex: 0 1 auto; + padding: 0 0.5rem; + word-break: keep-all; + height: 2.5rem; + + ion-icon { + height: 100%; + font-size: 1.6rem; + } + } +} diff --git a/assets/scss/_fuji-style/_sidebar.scss b/assets/scss/_fuji-style/_sidebar.scss index 132a22f..b6621b9 100644 --- a/assets/scss/_fuji-style/_sidebar.scss +++ b/assets/scss/_fuji-style/_sidebar.scss @@ -4,11 +4,11 @@ .sidebar-item { &:not(:last-child) { - margin-bottom: 1rem; // space betreen sidebar items + margin-bottom: 1rem; // space between sidebar items } h3 { - margin-bottom: 0.25rem; // space betreen head3 & lists + margin-bottom: 0.25rem; // space between head3 & lists } ul { diff --git a/assets/scss/_fuji-theme/_dark-diff.scss b/assets/scss/_fuji-theme/_dark-diff.scss index 55f596f..1af08fb 100644 --- a/assets/scss/_fuji-theme/_dark-diff.scss +++ b/assets/scss/_fuji-theme/_dark-diff.scss @@ -1,7 +1,3 @@ -img { - filter: brightness(60%); -} - table { th, td { @@ -33,3 +29,24 @@ table { .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path { fill: var(--color-focus) !important; } + +.aplayer .aplayer-list ol li { + border-top: 1px solid var(--color-bg) !important; +} + +.aplayer.aplayer-withlist .aplayer-info { + border-bottom: 1px solid var(--color-bg) !important; +} + +.aplayer .aplayer-list ol li.aplayer-list-light { + background-color: var(--color-codebg) !important; +} + +.aplayer .aplayer-list ol li:hover { + background-color: var(--color-codebg) !important; +} + +.aplayer .aplayer-list ol li .aplayer-list-author, +.aplayer .aplayer-list ol li .aplayer-list-index { + color: var(--color-font) !important; +} diff --git a/assets/scss/_fuji-theme/_style.scss b/assets/scss/_fuji-theme/_style.scss index 893a26c..f731fa2 100644 --- a/assets/scss/_fuji-theme/_style.scss +++ b/assets/scss/_fuji-theme/_style.scss @@ -312,3 +312,46 @@ code { color: var(--color-mute) !important; } } + +.search-result-info { + border-bottom: $divider; +} + +.search-input { + border-top: 2px solid; + border-left: 2px solid; + border-bottom: 2px solid; + border-right: none; + border-radius: 0.25rem; + border-color: var(--color-divider); + background-color: var(--color-bg); + + &:hover, + &:focus-within { + color: var(--color-primary); + border-color: var(--color-primary); + } + + input { + outline: none; + border: none; + color: inherit; + background-color: inherit; + } + + button { + outline: none; + border-top: 2px solid; + border-left: none; + border-right: 2px solid; + border-bottom: 2px solid; + border-radius: 0 0.25rem 0.25rem 0; + border-color: inherit; + color: inherit; + background-color: inherit; + + &:hover { + color: var(--color-secondary); + } + } +} diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 72e22b7..3d03c3b 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -11,11 +11,14 @@ disableKinds = ["taxonomyTerm"] languageCode = "en" # For RSS, view https://www.rssboard.org/rss-language-codes defaultContentLanguage = "en" # For HTML page, now support: en, zh-hans, zh-hant, ja, nl -summaryLength = 100 # Custom cummary length, add <!--more--> in post file to custom split point +summaryLength = 100 # Custom summary length, add <!--more--> in post file to custom split point paginate = 10 # googleAnalytics = "UA-000000000-0" # Set your Google Analytics UA here +[outputs] + home = ["html", "rss", "json"] + [permalinks] post = "/:section/:filename/" # Custom post links, e.g. "/:year/:month/:title/" @@ -29,9 +32,14 @@ paginate = 10 # googleAnalyticsTid = "UA-000000000-0" # googleAnalyticsRoute = "https://*.*.workers.dev/" + # Google AdSense + # The AdSense code will be inserted between the head tags of your site. + # googleAdsense = "0000000000000000" + # Word counter and read time indicator in post metadata showWordCounter = true showReadTime = false + # License at the end of each post showLicense = true showToc = true @@ -74,6 +82,9 @@ paginate = 10 # Use Hugo Pipes in Hugo Extended Version to compile SCSS # useHugoPipes = true + # Let images display in full brightness under dark mode + # disableDarkImage = true + [markup] [markup.goldmark] [markup.goldmark.renderer] @@ -101,6 +112,14 @@ paginate = 10 name = "About" url = "/about/" weight = 3 + [[menu.nav]] + name = "Search" + url = "/search/" + weight = 4 + [[menu.nav]] + name = "RSS" + url = "/index.xml" + weight = 5 [[menu.link]] name = "GitHub" diff --git a/exampleSite/content/about.md b/exampleSite/content/about.md index a596d02..b6fc1ec 100644 --- a/exampleSite/content/about.md +++ b/exampleSite/content/about.md @@ -19,6 +19,6 @@ Hugo is ideal for blogs, corporate websites, creative portfolios, online magazin Hugo is for people who want to hand code their own website without worrying about setting up complicated runtimes, dependencies and databases. -Websites built with Hugo are extremelly fast, secure and can be deployed anywhere including, AWS, GitHub Pages, Heroku, Netlify and any other hosting provider. +Websites built with Hugo are extremely fast, secure and can be deployed anywhere including, AWS, GitHub Pages, Heroku, Netlify and any other hosting provider. Learn more and contribute on [GitHub](https://github.com/gohugoio). diff --git a/exampleSite/content/search/_index.md b/exampleSite/content/search/_index.md new file mode 100644 index 0000000..d07189d --- /dev/null +++ b/exampleSite/content/search/_index.md @@ -0,0 +1,8 @@ ++++ +title = "Search" +description = "" ++++ + +You can change search page details above. + +Keep this file saft to ensure Hugo generate the search page. diff --git a/gulpfile.js b/gulpfile.js index 7caec20..792deae 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,4 +1,5 @@ var pipeline = require('readable-stream').pipeline; +var del = require('del'); var gulp = require('gulp'); var sourcemaps = require('gulp-sourcemaps'); var babel = require('gulp-babel'); @@ -57,10 +58,16 @@ function css() { ); } -exports.build = gulp.parallel(js, css); +function clean() { + return del(['static/assets/css/fuji.min.css.map', 'static/assets/js/fuji.min.js.map']); +} + +exports.build = gulp.parallel(js, css, clean); exports.devJs = function () { + devJs(); return gulp.watch('assets/js/fuji.js', { delay: 500 }, devJs); }; exports.devCss = function () { + devJs(); return gulp.watch('assets/**/*.scss', { delay: 500 }, devCss); }; diff --git a/i18n/en.toml b/i18n/en.toml index f260aa9..84cbd94 100644 --- a/i18n/en.toml +++ b/i18n/en.toml @@ -42,3 +42,12 @@ [tagsCurrentTag] other = "Posts with the tag {{ .Title }}: " + +[searchSuccess] + other = "[NUM] results ([TIME] ms)" + +[searchNotFound] + other = "Results not found" + +[searchFailed] + other = "Failed to load index file" diff --git a/i18n/ja.toml b/i18n/ja.toml index b9d5133..5e1d863 100644 --- a/i18n/ja.toml +++ b/i18n/ja.toml @@ -42,3 +42,12 @@ [tagsCurrentTag] other = "タグ {{ .Title }} を持つ記事:" + +[searchSuccess] + other = "[NUM] 件 ([TIME] ミリ秒)" + +[searchNotFound] + other = "検索できませんでした" + +[searchFailed] + other = "インデックスを取得できません" diff --git a/i18n/nl.toml b/i18n/nl.toml index 6593ac6..ff8cacf 100644 --- a/i18n/nl.toml +++ b/i18n/nl.toml @@ -42,3 +42,12 @@ [tagsCurrentTag] other = "Alle posts met de tag {{ .Title }}: " + +[searchSuccess] + other = "[NUM] results ([TIME] ms) [Translation Help Needed]" + +[searchNotFound] + other = "Results not found [Translation Help Needed]" + +[searchFailed] + other = "Failed to load index file [Translation Help Needed]" diff --git a/i18n/zh-hans.toml b/i18n/zh-hans.toml index f4eec4e..37387a0 100644 --- a/i18n/zh-hans.toml +++ b/i18n/zh-hans.toml @@ -42,3 +42,12 @@ [tagsCurrentTag] other = "拥有标签 {{ .Title }} 的文章:" + +[searchSuccess] + other = "找到 [NUM] 条结果 (用时 [TIME] 毫秒)" + +[searchNotFound] + other = "未找到结果" + +[searchFailed] + other = "无法获取索引" diff --git a/i18n/zh-hant.toml b/i18n/zh-hant.toml index d6ba777..f629617 100644 --- a/i18n/zh-hant.toml +++ b/i18n/zh-hant.toml @@ -42,3 +42,12 @@ [tagsCurrentTag] other = "擁有標籤 {{ .Title }} 的文章:" + +[searchSuccess] + other = "[NUM] 項結果 (搜尋時間 [TIME] 毫秒)" + +[searchNotFound] + other = "未找到結果" + +[searchFailed] + other = "無法獲取索引" diff --git a/layouts/_default/_markup/render-image.html b/layouts/_default/_markup/render-image.html index b9020c7..1b20943 100644 --- a/layouts/_default/_markup/render-image.html +++ b/layouts/_default/_markup/render-image.html @@ -1 +1,3 @@ -<img class="img-zoomable" src="{{ .Destination | safeURL }}" alt="{{ .Text }}" />
\ No newline at end of file +<a href="{{ .Destination | safeURL }}" target="_blank"> + <img src="{{ .Destination | safeURL }}" alt="{{ .Text }}" /> +</a>
\ No newline at end of file diff --git a/layouts/_default/index.json b/layouts/_default/index.json new file mode 100644 index 0000000..e582dda --- /dev/null +++ b/layouts/_default/index.json @@ -0,0 +1,5 @@ +{{- $.Scratch.Add "search" slice -}} +{{- range (where .Site.RegularPages "Type" "in" .Site.Params.mainSections) -}} + {{- $.Scratch.Add "search" (dict "title" .Title "tags" .Params.tags "content" .Plain "permalink" .Permalink "date" (.Date.Format "2006-01-02")) -}} +{{- end -}} +{{- $.Scratch.Get "search" | jsonify -}}
\ No newline at end of file diff --git a/layouts/_default/search.html b/layouts/_default/search.html new file mode 100644 index 0000000..8948e45 --- /dev/null +++ b/layouts/_default/search.html @@ -0,0 +1,39 @@ +{{ define "main" }} +<!-- search form --> +<div class="page-info"> + <form class="search-form" method="GET"> + <div class="search-input"> + <input name="s" type="search" autocapitalize="off" autocomplete="off" autocorrect="off" + spellcheck="false" /> + <button type="submit"><ion-icon name="search-circle-outline"></ion-icon></button> + </div> + </form> +</div> +<!-- search result and template --> +<div class="search-result-info" style="display: none;"><span>{{ i18n "searchSuccess" }}</span></div> +<div class="search-result-info" style="display: none;"><span>{{ i18n "searchNotFound" }}</span></div> +<div class="search-result-info" style="display: none;"><span>{{ i18n "searchFailed" }}</span></div> +<div id="search-result"></div> +<script id="search-result-template" type="text/fuse-template"> + {{ "<% for(var i = 0; i < $data.length; i++){ %>" | safeHTML }} + <div class="post"> + <h3 class="post-item post-title-archive"> + <a href="<%= $data[i].item.permalink %>">{{ "<%= $data[i].item.title %>" | safeHTML }}</a> + </h3> + <div class="post-item post-meta-archive"> + <span><ion-icon name="today"></ion-icon> {{- "<%= $data[i].item.date %>" | safeHTML -}}</span> + <span> + <ion-icon name="pricetags"></ion-icon> + {{- "<% if ($data[i].item.tags && $data[i].item.tags.length > 0) { %>" | safeHTML -}} + {{- "<% for(var j = 0; j < $data[i].item.tags.length; j++){ %>" | safeHTML -}} + {{- "<%= $data[i].item.tags[j] %> " | safeHTML -}} + {{- "<% } %>" | safeHTML -}} + {{- "<% } else { %>" | safeHTML -}} + {{- i18n "postMetaNoTag" -}} + {{- "<% } %>" | safeHTML }} + </span> + </div> + </div> + {{ "<% } %>" | safeHTML }} +</script> +{{ end }}
\ No newline at end of file diff --git a/layouts/_default/single.html b/layouts/_default/single.html index db5e2f5..8f7eb35 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -7,7 +7,7 @@ <div class="post-item post-meta"> {{ partial "post-meta.html" . }} </div> - {{ with .Params.playerURL }} + {{ with .Params.player }} <div id="post-aplayer"></div> {{ end }} <!-- post main content --> @@ -16,7 +16,7 @@ </div> </article> <!-- post license --> -{{ if and (.Site.Params.showLicense) (ne .Params.noLicense true) }} +{{ if and (or .Site.Params.showLicense .Params.showLicense) (ne .Params.showLicense false) }} <div class="license markdown-body"> <blockquote> <p>{{ i18n "postCopyrightFront" }}<a rel="license" href="{{ .Site.Params.licenseLink }}" @@ -24,11 +24,11 @@ </blockquote> </div> {{ end }} -{{ if .Site.Params.disqusJSApi }} +{{ if and (.Site.Params.disqusJSApi) (ne .Params.showComments false) }} {{ partial "comment-disqusjs.html" . }} -{{ else if .Site.Params.disqusShortname }} +{{ else if and (.Site.Params.disqusShortname) (ne .Params.showComments false) }} {{ partial "comment-disqus.html" . }} -{{ else if .Site.Params.utterancesRepo }} +{{ else if and (.Site.Params.utterancesRepo) (ne .Params.showComments false) }} {{ partial "comment-utterances.html" . }} {{ else }}{{ end }} {{ end }}
\ No newline at end of file diff --git a/layouts/partials/analytic-cfga.html b/layouts/partials/analytic-cfga.html index 63db4d6..d1e52af 100644 --- a/layouts/partials/analytic-cfga.html +++ b/layouts/partials/analytic-cfga.html @@ -3,5 +3,5 @@ window.ga_tid = '{{ .Site.Params.googleAnalyticsTid }}'; window.ga_api = '{{ .Site.Params.googleAnalyticsRoute }}'; </script> -<script async src="https://cdn.jsdelivr.net/npm/cfga@1.0.1/cfga.min.js"></script> +<script async src="https://cdn.jsdelivr.net/npm/cfga@1.0.3/cfga.min.js"></script> {{ end }}
\ No newline at end of file diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 0603c4d..1bcdf85 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -9,7 +9,6 @@ <!-- favicon --> {{ partial "favicon.html" . }} - <!-- seo metadata --> {{ if and (.IsHome) (.Site.Params.subTitle) }} <title>{{ .Site.Title }} - {{ .Site.Params.subTitle }}</title> @@ -22,17 +21,15 @@ <meta name="author" content="{{ if .Params.author }}{{ .Params.author }}{{ else }}{{ .Site.Params.author }}{{ end }}" /> {{ end }} {{ if or (.Params.description) (.Site.Params.description) }} -<meta name="description" - content="{{ if .Params.description }}{{ .Params.description }}{{ else }}{{ .Site.Params.description }}{{ end }}" /> +<meta name="description" content="{{ if .Params.description }}{{ .Params.description }}{{ else }}{{ .Site.Params.description }}{{ end }}" /> {{ end }} {{ if .Params.tags }} <meta name="keywords" content="{{ delimit .Params.tags ", " }}" /> {{ end }} - {{ template "_internal/opengraph.html" . }} {{ template "_internal/twitter_cards.html" . }} - <!-- dep --> +{{ partial "styles.html" . }} {{ if .Site.Params.useHugoPipes }} {{ $options := (dict "targetPath" "assets/css/fuji-custom.min.css" "outputStyle" "compressed") }} {{ $style := resources.Get "scss/fuji.scss" | resources.ToCSS $options }} @@ -40,13 +37,14 @@ {{ else }} <link rel="stylesheet" href="{{ "/assets/css/fuji.min.css" | relURL }}" /> {{ end }} - -{{ if .Params.playerURL }} +{{ with .Site.Params.googleAdsense }} +<script async data-ad-client="ca-pub-{{ . }}" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> +{{ end}} +{{ if .Params.player }} <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.css" /> {{ end }} {{ if .Site.Params.useDisqusJS }} <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/disqusjs@1.3/dist/disqusjs.css" /> {{ end }} - {{ partial "analytic-gtag.html" . }} {{ partial "analytic-cfga.html" . }}
\ No newline at end of file diff --git a/layouts/partials/post-meta.html b/layouts/partials/post-meta.html index 5176053..3e366e7 100644 --- a/layouts/partials/post-meta.html +++ b/layouts/partials/post-meta.html @@ -1 +1 @@ -<span><ion-icon name="today"></ion-icon></ion-icon> {{ .Date.Format "2006-01-02" }}</span>{{ if .Site.Params.showWordCounter }}<span><ion-icon name="file-tray"></ion-icon> {{ .WordCount }}{{ i18n "postMetaWordCount" }}</span>{{ end }}{{ if .Site.Params.showReadTime }}<span><ion-icon name="stopwatch"></ion-icon> {{ .ReadingTime }}{{ i18n "postMetaReadingTime" }}</span>{{ end }}<span><ion-icon name="pricetags"></ion-icon> {{ if .Params.tags }}{{ range .Params.tags }}<a href="{{ "/tags/" | relURL }}{{ . | urlize}}">{{ . }}</a> {{ end }}{{ else }}{{ i18n "postMetaNoTag" }}{{ end }}</span>
\ No newline at end of file +<span><ion-icon name="today"></ion-icon> {{ .Date.Format "2006-01-02" }}</span>{{ if .Site.Params.showWordCounter }}<span><ion-icon name="file-tray"></ion-icon> {{ .WordCount }}{{ i18n "postMetaWordCount" }}</span>{{ end }}{{ if .Site.Params.showReadTime }}<span><ion-icon name="stopwatch"></ion-icon> {{ .ReadingTime }}{{ i18n "postMetaReadingTime" }}</span>{{ end }}<span><ion-icon name="pricetags"></ion-icon> {{ if .Params.tags }}{{ range .Params.tags }}<a href="{{ "/tags/" | relURL }}{{ . | urlize}}">{{ . }}</a> {{ end }}{{ else }}{{ i18n "postMetaNoTag" }}{{ end }}</span>
\ No newline at end of file diff --git a/layouts/partials/scripts-end.html b/layouts/partials/scripts-end.html index 862e0e2..37311b7 100644 --- a/layouts/partials/scripts-end.html +++ b/layouts/partials/scripts-end.html @@ -1,27 +1,35 @@ <script async type="module" src="https://cdn.jsdelivr.net/npm/ionicons@5.0.1/dist/ionicons/ionicons.esm.js"></script> <script async nomodule src="https://cdn.jsdelivr.net/npm/ionicons@5.0.1/dist/ionicons/ionicons.js"></script> +{{ if eq .Section "search" }} +<script defer src="https://cdn.jsdelivr.net/combine/npm/art-template@4.13.2/lib/template-web.min.js,npm/fuse.js@6.2.0"></script> +{{ else if eq .Section "archives" }} +{{ else }} <script defer src="https://cdn.jsdelivr.net/npm/prismjs@1.20.0/components/prism-core.min.js"></script> <script defer src="https://cdn.jsdelivr.net/npm/prismjs@1.20.0/plugins/autoloader/prism-autoloader.min.js"></script> - <script defer src="https://cdn.jsdelivr.net/npm/lazysizes@5.2.2/lazysizes.min.js"></script> -<script defer src="https://cdn.jsdelivr.net/npm/medium-zoom@1.0.5/dist/medium-zoom.min.js"></script> +{{ end }} <script defer src="{{ "/assets/js/fuji.min.js" | relURL }}"></script> - -{{ with .Params.playerURL }} +{{ with .Params.player }} <script src="https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.js"></script> +<!-- prettier-ignore --> <script> // in-post aplayer + /* beautify preserve:start */ var aPlayer = new APlayer({ container: document.getElementById('post-aplayer'), theme: '#8f82bc', volume: 0.1, - audio: [{ - name: '{{ $.Params.playerName }}', - artist: '{{ $.Params.playerArtist }}', - url: '{{ . }}', - cover: '{{ $.Params.playerCover }}' - }] + listFolded: true, + audio: [{{- range $.Params.player -}} + { + name: '{{ .playerName }}', + artist: '{{ .playerArtist }}', + url: '{{ .playerURL }}', + cover: '{{ .playerCover }}' + }, + {{- end -}}] }); + /* beautify preserve:end */ // aplayer toc anchors fix // see https://github.com/MoePlayer/APlayer/issues/242#issuecomment-602471423 document.addEventListener('DOMContentLoaded', function () { diff --git a/layouts/partials/sidebar.html b/layouts/partials/sidebar.html index 7ead0e2..af737ce 100644 --- a/layouts/partials/sidebar.html +++ b/layouts/partials/sidebar.html @@ -1,11 +1,13 @@ <aside class="col-12 col-md-3 float-left sidebar"> <!-- in-post toc --> - {{ if and (in .Site.Params.mainSections .Type) (and (.Site.Params.showToc) (ne .Params.noToc true)) }} + {{ if in .Site.Params.mainSections .Type }} + {{ if and (or .Site.Params.showToc .Params.showToc) (ne .Params.showToc false) }} <div class="sidebar-item sidebar-toc"> <h3>{{ i18n "sidebarToc" }}</h3> {{ .TableOfContents }} </div> {{ end }} + {{ end }} <!-- pages --> <div class="sidebar-item sidebar-pages"> <h3>{{ i18n "sidebarPages" }}</h3> @@ -15,9 +17,6 @@ <a href="{{ .URL }}">{{ .Name }}</a> </li> {{ end }} - <li> - <a href="{{ "/index.xml" | relURL }}" target="_blank">RSS</a> - </li> </ul> </div> <!-- tags --> @@ -46,8 +45,8 @@ <!-- bgm.tv image chart --> <div class="sidebar-item sidebar-bgm"> <h3>{{ i18n "sidebarBangumiChart" }}</h3> - <img class="lazyload" src="{{ $.Site.Params.lazyPlaceholder | relURL }}" data-src="https://bgm.tv/chart/img/{{ . }}" - alt="Bangumi 图像榜单" /> + <img class="lazyload" src="{{ $.Site.Params.lazyPlaceholder | relURL }}" + data-src="https://bgm.tv/chart/img/{{ . }}" alt="Bangumi 图像榜单" /> </div> {{ end }} </aside>
\ No newline at end of file diff --git a/layouts/partials/styles.html b/layouts/partials/styles.html new file mode 100644 index 0000000..cc6d930 --- /dev/null +++ b/layouts/partials/styles.html @@ -0,0 +1,13 @@ +{{ if ne .Site.Params.disableDarkImage true }} +<style> + @media (prefers-color-scheme: dark) { + body[data-theme='auto'] img { + filter: brightness(60%); + } + } + + body[data-theme='dark'] img { + filter: brightness(60%); + } +</style> +{{ end }}
\ No newline at end of file diff --git a/layouts/shortcodes/img-lazy.html b/layouts/shortcodes/img-lazy.html index fef9bd3..e57b8fb 100644 --- a/layouts/shortcodes/img-lazy.html +++ b/layouts/shortcodes/img-lazy.html @@ -1,10 +1,22 @@ -{{ if len .Params | eq 2 }} -<img class="lazyload img-zoomable" src="{{ .Site.Params.lazyPlaceholder | relURL }}" data-src="{{ index .Params 1 }}" - alt="{{ index .Params 0 }}" /> -{{ else if len .Params | eq 3 }}{{ if eq (index .Params 0) "row" }} -<img class="lazyload img-zoomable" src="{{ .Site.Params.lazyPlaceholderRow | relURL }}" data-src="{{ index .Params 2 }}" - alt="{{ index .Params 1 }}" /> -{{ else if eq (index .Params 0) "col" }} -<img class="lazyload img-zoomable" src="{{ .Site.Params.lazyPlaceholderCol | relURL }}" data-src="{{ index .Params 2 }}" - alt="{{ index .Params 1 }}" /> -{{ else }}{{ end }}{{ else }}{{ end }}
\ No newline at end of file +{{- if len .Params | eq 2 -}} +<p> + <a href="{{ index .Params 1 | safeURL }}" target="_blank"> + <img class="lazyload" src="{{ .Site.Params.lazyPlaceholder | relURL }}" + data-src="{{ index .Params 1 | safeURL }}" alt="{{ index .Params 0 }}" /> + </a> +</p> +{{- else if len .Params | eq 3 }}{{ if eq (index .Params 0) "row" -}} +<p> + <a href="{{ index .Params 2 | safeURL }}" target="_blank"> + <img class="lazyload" src="{{ .Site.Params.lazyPlaceholderRow | relURL }}" + data-src="{{ index .Params 2 | safeURL }}" alt="{{ index .Params 1 }}" /> + </a> +</p> +{{- else if eq (index .Params 0) "col" -}} +<p> + <a href="{{ index .Params 2 | safeURL }}" target="_blank"> + <img class="lazyload" src="{{ .Site.Params.lazyPlaceholderCol | relURL }}" + data-src="{{ index .Params 2 | safeURL }}" alt="{{ index .Params 1 }}" /> + </a> +</p> +{{- else -}}{{- end -}}{{- else -}}{{ end -}}
\ No newline at end of file diff --git a/layouts/shortcodes/img-nz-lazy.html b/layouts/shortcodes/img-nz-lazy.html deleted file mode 100644 index bfdb26a..0000000 --- a/layouts/shortcodes/img-nz-lazy.html +++ /dev/null @@ -1,25 +0,0 @@ -{{ if len .Params | eq 2 }} -<img class="lazyload" src="{{ .Site.Params.lazyPlaceholder | relURL }}" data-src="{{ index .Params 1 }}" - alt="{{ index .Params 0 }}" /> -{{ else if len .Params | eq 3 }}{{ if eq (index .Params 0) "row" }} -<img class="lazyload" src="{{ .Site.Params.lazyPlaceholderRow | relURL }}" data-src="{{ index .Params 2 }}" - alt="{{ index .Params 1 }}" /> -{{ else if eq (index .Params 0) "col" }} -<img class="lazyload" src="{{ .Site.Params.lazyPlaceholderCol | relURL }}" data-src="{{ index .Params 2 }}" - alt="{{ index .Params 1 }}" /> -{{ else }} -<a href="{{ index .Params 2 }}" target="_blank"> - <img class="lazyload" src="{{ .Site.Params.lazyPlaceholder | relURL }}" data-src="{{ index .Params 1 }}" - alt="{{ index .Params 0 }}" /> -</a> -{{ end }}{{ else if len .Params | eq 4 }}{{ if eq (index .Params 0) "row" }} -<a href="{{ index .Params 3 }}" target="_blank"> - <img class="lazyload" src="{{ .Site.Params.lazyPlaceholderRow | relURL }}" data-src="{{ index .Params 2 }}" - alt="{{ index .Params 1 }}" /> -</a> -{{ else if eq (index .Params 0) "col" }} -<a href="{{ index .Params 3 }}" target="_blank"> - <img class="lazyload" src="{{ .Site.Params.lazyPlaceholderCol | relURL }}" data-src="{{ index .Params 2 }}" - alt="{{ index .Params 1 }}" /> -</a> -{{ else }}{{ end }}{{ else }}{{ end }}
\ No newline at end of file diff --git a/layouts/shortcodes/img-nz.html b/layouts/shortcodes/img-nz.html deleted file mode 100644 index 1b4f791..0000000 --- a/layouts/shortcodes/img-nz.html +++ /dev/null @@ -1,7 +0,0 @@ -{{ if (index .Params 2) }} -<a href="{{ index .Params 2 }}" target="_blank"> - <img src="{{ index .Params 1 }}" alt="{{ index .Params 0 }}" /> -</a> -{{ else }} -<img src="{{ index .Params 1 }}" alt="{{ index .Params 0 }}" /> -{{ end }}
\ No newline at end of file diff --git a/package.json b/package.json index 252616c..d20dc77 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hugo-theme-fuji", - "version": "2.0.0", + "version": "2.1.0", "description": "A minimal Hugo theme with nice theme color. | 一个主题色极简 Hugo 主题。", "repository": { "type": "git", @@ -23,6 +23,7 @@ "@primer/css": "14.4.0", "autoprefixer": "^9.8.0", "cssnano": "^4.1.10", + "del": "^5.1.0", "gulp": "^4.0.2", "gulp-babel": "^8.0.0", "gulp-postcss": "^8.0.0", diff --git a/static/assets/css/fuji.min.css b/static/assets/css/fuji.min.css index d8b21af..2e0c591 100644 --- a/static/assets/css/fuji.min.css +++ b/static/assets/css/fuji.min.css @@ -1,3 +1,3 @@ @font-face{font-family:Product Sans;font-style:normal;font-weight:700;font-display:swap;src:local("Product Sans Bold"),local("ProductSans-Bold"),url(https://cdn.jsdelivr.net/gh/amzrk2/web-font-archive@1.4.5/product-sans/product-sans-bold.woff2) format("woff2");unicode-range:U+0-ff,U+131,U+152-153,U+2bb-2bc,U+2c6,U+2da,U+2dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-family:Cascadia Code;font-style:normal;font-weight:400;font-display:swap;src:local("Cascadia Code Regular"),url(https://cdn.jsdelivr.net/gh/amzrk2/web-font-archive@1.4.5/cascadia-code/cascadia.woff2) format("woff2")}body,html{height:100%;scroll-behavior:smooth}body{display:flex;flex-direction:column}main{flex:1 1 auto}a:hover{text-decoration:none!important} -/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}[hidden],template{display:none!important}a{background-color:transparent}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#1b1f23}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,select,textarea{font:inherit;margin:0}optgroup{font-weight:600}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}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-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}*{box-sizing:border-box}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Source Han Sans CN,Source Han Sans SC,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;font-size:16px;line-height:1.5;color:#24292e;background-color:#fff}a{color:#0366d6;text-decoration:none}a:hover{text-decoration:underline}b,strong{font-weight:600}.rule,hr{height:0;margin:15px 0;overflow:hidden;background:transparent;border:0;border-bottom:1px solid #dfe2e5}.rule:after,.rule:before,hr:after,hr:before{display:table;content:""}.rule:after,hr:after{clear:both}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}button{cursor:pointer;border-radius:0}[hidden][hidden]{display:none!important}details summary{cursor:pointer}details:not([open])>:not(summary){display:none!important}kbd{display:inline-block;padding:3px 5px;font:11px Cascadia Code,SF Mono,Fira Code,Consolas,-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Source Han Sans CN,Source Han Sans SC,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:1px solid #d1d5da;border-radius:3px;box-shadow:inset 0 -1px 0 #d1d5da}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:0}h1{font-size:32px}h1,h2{font-weight:600}h2{font-size:24px}h3{font-size:20px}h3,h4{font-weight:600}h4{font-size:16px}h5{font-size:14px}h5,h6{font-weight:600}h6{font-size:12px}p{margin-top:0;margin-bottom:10px}small{font-size:90%}blockquote{margin:0}ol,ul{padding-left:0;margin-top:0;margin-bottom:0}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}dd{margin-left:0}code,pre,tt{font-family:Cascadia Code,SF Mono,Fira Code,Consolas,-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Source Han Sans CN,Source Han Sans SC,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;font-size:12px}pre{margin-top:0;margin-bottom:0}.octicon{vertical-align:text-bottom}.container-sm{max-width:544px}.container-md,.container-sm{margin-right:auto;margin-left:auto}.container-md{max-width:768px}.container-lg{max-width:1012px}.container-lg,.container-xl{margin-right:auto;margin-left:auto}.container-xl{max-width:1280px}.col-1{width:8.33333%}.col-2{width:16.66667%}.col-3{width:25%}.col-4{width:33.33333%}.col-5{width:41.66667%}.col-6{width:50%}.col-7{width:58.33333%}.col-8{width:66.66667%}.col-9{width:75%}.col-10{width:83.33333%}.col-11{width:91.66667%}.col-12{width:100%}@media (min-width:544px){.col-sm-1{width:8.33333%}.col-sm-2{width:16.66667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333%}.col-sm-5{width:41.66667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333%}.col-sm-8{width:66.66667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333%}.col-sm-11{width:91.66667%}.col-sm-12{width:100%}}@media (min-width:768px){.col-md-1{width:8.33333%}.col-md-2{width:16.66667%}.col-md-3{width:25%}.col-md-4{width:33.33333%}.col-md-5{width:41.66667%}.col-md-6{width:50%}.col-md-7{width:58.33333%}.col-md-8{width:66.66667%}.col-md-9{width:75%}.col-md-10{width:83.33333%}.col-md-11{width:91.66667%}.col-md-12{width:100%}}@media (min-width:1012px){.col-lg-1{width:8.33333%}.col-lg-2{width:16.66667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333%}.col-lg-5{width:41.66667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333%}.col-lg-8{width:66.66667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333%}.col-lg-11{width:91.66667%}.col-lg-12{width:100%}}@media (min-width:1280px){.col-xl-1{width:8.33333%}.col-xl-2{width:16.66667%}.col-xl-3{width:25%}.col-xl-4{width:33.33333%}.col-xl-5{width:41.66667%}.col-xl-6{width:50%}.col-xl-7{width:58.33333%}.col-xl-8{width:66.66667%}.col-xl-9{width:75%}.col-xl-10{width:83.33333%}.col-xl-11{width:91.66667%}.col-xl-12{width:100%}}.gutter{margin-right:-16px;margin-left:-16px}.gutter>[class*=col-]{padding-right:16px!important;padding-left:16px!important}.gutter-condensed{margin-right:-8px;margin-left:-8px}.gutter-condensed>[class*=col-]{padding-right:8px!important;padding-left:8px!important}.gutter-spacious{margin-right:-24px;margin-left:-24px}.gutter-spacious>[class*=col-]{padding-right:24px!important;padding-left:24px!important}@media (min-width:544px){.gutter-sm{margin-right:-16px;margin-left:-16px}.gutter-sm>[class*=col-]{padding-right:16px!important;padding-left:16px!important}.gutter-sm-condensed{margin-right:-8px;margin-left:-8px}.gutter-sm-condensed>[class*=col-]{padding-right:8px!important;padding-left:8px!important}.gutter-sm-spacious{margin-right:-24px;margin-left:-24px}.gutter-sm-spacious>[class*=col-]{padding-right:24px!important;padding-left:24px!important}}@media (min-width:768px){.gutter-md{margin-right:-16px;margin-left:-16px}.gutter-md>[class*=col-]{padding-right:16px!important;padding-left:16px!important}.gutter-md-condensed{margin-right:-8px;margin-left:-8px}.gutter-md-condensed>[class*=col-]{padding-right:8px!important;padding-left:8px!important}.gutter-md-spacious{margin-right:-24px;margin-left:-24px}.gutter-md-spacious>[class*=col-]{padding-right:24px!important;padding-left:24px!important}}@media (min-width:1012px){.gutter-lg{margin-right:-16px;margin-left:-16px}.gutter-lg>[class*=col-]{padding-right:16px!important;padding-left:16px!important}.gutter-lg-condensed{margin-right:-8px;margin-left:-8px}.gutter-lg-condensed>[class*=col-]{padding-right:8px!important;padding-left:8px!important}.gutter-lg-spacious{margin-right:-24px;margin-left:-24px}.gutter-lg-spacious>[class*=col-]{padding-right:24px!important;padding-left:24px!important}}@media (min-width:1280px){.gutter-xl{margin-right:-16px;margin-left:-16px}.gutter-xl>[class*=col-]{padding-right:16px!important;padding-left:16px!important}.gutter-xl-condensed{margin-right:-8px;margin-left:-8px}.gutter-xl-condensed>[class*=col-]{padding-right:8px!important;padding-left:8px!important}.gutter-xl-spacious{margin-right:-24px;margin-left:-24px}.gutter-xl-spacious>[class*=col-]{padding-right:24px!important;padding-left:24px!important}}.markdown-body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Source Han Sans CN,Source Han Sans SC,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px Cascadia Code,SF Mono,Fira Code,Consolas,-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Source Han Sans CN,Source Han Sans SC,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:1px solid #d1d5da;border-radius:3px;box-shadow:inset 0 -1px 0 #d1d5da}.markdown-body:after,.markdown-body:before{display:table;content:""}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:#cb2431}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit}.markdown-body h1{font-size:2em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eaecef}.markdown-body h2{font-size:1.5em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol.no-list,.markdown-body ul.no-list{padding:0;list-style-type:none}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li{word-wrap:break-all}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body table img{background-color:transparent}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #dfe2e5}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:#24292e}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:600;background:#f6f8fa;border-top:0}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}@media (min-width:544px){.position-sm-static{position:static!important}.position-sm-relative{position:relative!important}.position-sm-absolute{position:absolute!important}.position-sm-fixed{position:fixed!important}.position-sm-sticky{position:-webkit-sticky!important;position:sticky!important}}@media (min-width:768px){.position-md-static{position:static!important}.position-md-relative{position:relative!important}.position-md-absolute{position:absolute!important}.position-md-fixed{position:fixed!important}.position-md-sticky{position:-webkit-sticky!important;position:sticky!important}}@media (min-width:1012px){.position-lg-static{position:static!important}.position-lg-relative{position:relative!important}.position-lg-absolute{position:absolute!important}.position-lg-fixed{position:fixed!important}.position-lg-sticky{position:-webkit-sticky!important;position:sticky!important}}@media (min-width:1280px){.position-xl-static{position:static!important}.position-xl-relative{position:relative!important}.position-xl-absolute{position:absolute!important}.position-xl-fixed{position:fixed!important}.position-xl-sticky{position:-webkit-sticky!important;position:sticky!important}}.top-0{top:0!important}.right-0{right:0!important}.bottom-0{bottom:0!important}.left-0{left:0!important}.v-align-middle{vertical-align:middle!important}.v-align-top{vertical-align:top!important}.v-align-bottom{vertical-align:bottom!important}.v-align-text-top{vertical-align:text-top!important}.v-align-text-bottom{vertical-align:text-bottom!important}.v-align-baseline{vertical-align:baseline!important}.overflow-visible{overflow:visible!important}.overflow-x-visible{overflow-x:visible!important}.overflow-y-visible{overflow-y:visible!important}.overflow-hidden{overflow:hidden!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-auto{overflow:auto!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.overflow-scroll{overflow:scroll!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-scroll{overflow-y:scroll!important}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:544px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:1012px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1280px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.width-fit{max-width:100%!important}.width-full{width:100%!important}.height-fit{max-height:100%!important}.height-full{height:100%!important}.min-width-0{min-width:0!important}.width-auto{width:auto!important}.direction-rtl{direction:rtl!important}.direction-ltr{direction:ltr!important}@media (min-width:544px){.width-sm-auto{width:auto!important}.direction-sm-rtl{direction:rtl!important}.direction-sm-ltr{direction:ltr!important}}@media (min-width:768px){.width-md-auto{width:auto!important}.direction-md-rtl{direction:rtl!important}.direction-md-ltr{direction:ltr!important}}@media (min-width:1012px){.width-lg-auto{width:auto!important}.direction-lg-rtl{direction:rtl!important}.direction-lg-ltr{direction:ltr!important}}@media (min-width:1280px){.width-xl-auto{width:auto!important}.direction-xl-rtl{direction:rtl!important}.direction-xl-ltr{direction:ltr!important}}header .header{padding:1.75rem 1.5rem 2rem}header .title-main{font-size:2.5rem;font-family:Product Sans,-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Source Han Sans CN,Source Han Sans SC,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;font-weight:700;white-space:nowrap}header .title-sub{margin:0 .1rem;display:block;white-space:nowrap;scrollbar-width:none;-ms-overflow-style:none}header .title-sub::-webkit-scrollbar{display:none}.content{padding:1.5rem 1.5rem 0}.post:not(:first-child){padding:1.5rem 0}.post:first-child{padding:0 0 1.5rem}.post-title{font-size:1.75rem}.post-meta{margin:.5rem .1rem 1rem;flex-wrap:wrap}.post-meta,.post-meta span{display:flex;align-items:center}.post-meta span:not(:last-child){padding-right:1.5rem}.post-summary{margin:0 .1rem}.post-summary p:last-child{margin-bottom:0}.post-summary h1,.post-summary h2,.post-summary h3,.post-summary h4,.post-summary h5,.post-summary h6{display:none}.post-meta-archive{display:flex;align-items:center;margin:.5rem .1rem 0;flex-wrap:wrap}.post-meta-archive span:not(:last-child){padding-right:1.5rem}.pagination{font-size:1.25rem;line-height:1.25rem;padding:1.25rem 0}.pagination,.pagination div{display:flex;align-items:center;justify-content:center}.pagination div{width:2rem;height:2rem}.pagination div a{display:flex;align-items:center}.page-info{padding:0 .1rem 1.5rem}article{padding-bottom:1.5rem}article .post-content{margin:1.25rem .1rem 0}.license{margin-bottom:1.5rem}.post-loading{margin:0 0 1.5rem;padding-top:1.5rem;text-align:center}.post-loading i{font-size:1.25rem}.post-loading p{margin:.5rem 0 0}.markdown-body h1{font-size:1.75rem;margin-top:1.5rem}.markdown-body h2{font-size:1.5rem;margin-top:1.375rem}.markdown-body h3{font-size:1.25rem}.markdown-body h3,.markdown-body h4{margin-top:1.25rem}.markdown-body ul{list-style-type:circle}.markdown-body img{max-width:98%;margin:0 .25rem .5rem}.post-comment span.post-comment-notloaded{display:flex;align-items:center;justify-content:center}#disqus_thread{padding:1.25rem 0}.sidebar{padding:1.5rem 1.5rem 1.5rem 0}.sidebar-item:not(:last-child){margin-bottom:1rem}.sidebar-item h3{margin-bottom:.25rem}.sidebar-item ul{list-style-type:none;margin:0 .1rem}.sidebar-item>div,.sidebar-item>nav{margin:0 .1rem}.sidebar-item>img{margin:.5rem .25rem 0;width:100%;border-radius:2px}@media screen and (max-width:768px){.sidebar{padding:1.5rem;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-around}.sidebar-item{width:40%}.sidebar-item .sidebar-pages,.sidebar-item .sidebar-tags{margin-bottom:1rem}.sidebar-item .sidebar-bgm,.sidebar-item .sidebar-links{margin-bottom:0}.sidebar-item>img{margin:.5rem .25rem 0;width:75%;border-radius:.25rem}}.sidebar-toc ul ul{font-size:.875rem;padding-left:.5rem;margin-bottom:.25rem}footer .footer{padding:2rem 1.5rem;text-align:center}footer .footer i{font-size:.875rem}.btn{position:fixed;right:1.5rem;bottom:1.5rem;height:5rem;justify-content:space-between;flex-direction:column}.btn,.btn div{width:2.5rem;display:flex}.btn div{flex:0 1 auto;height:2.5rem;align-items:center;justify-content:center;cursor:pointer}.btn div:first-child{border-radius:.25rem .25rem 0 0;font-size:1.25rem}.btn div:last-child{border-radius:0 0 .25rem .25rem;font-size:1.5rem}#post-aplayer{margin:0 .125rem 1.25rem;font-family:inherit}body[data-theme=auto]{--color-mode:"light";--color-primary:#8aa2d3;--color-secondary:#8f82bc;--color-focus:#3b469b;--color-mute:#9ea1a3;--color-font:#3f4551;--color-divider:#e5e2e4;--color-bg:#fffffd;--color-codebg:#f6f8fa}@media (prefers-color-scheme:dark){body[data-theme=auto]{--color-mode:"dark";--color-primary:#8aa2d3;--color-secondary:#bab1df;--color-focus:#e6e6e6;--color-mute:#9ea1a3;--color-font:silver;--color-divider:#4d5158;--color-bg:#2f3136;--color-codebg:#414449}body[data-theme=auto] img{-webkit-filter:brightness(60%);filter:brightness(60%)}body[data-theme=auto] table td,body[data-theme=auto] table th{border-color:var(--color-font)}body[data-theme=auto] table tr{background-color:var(--color-bg);border-color:var(--color-font)}body[data-theme=auto] #post-aplayer,body[data-theme=auto] table tr:nth-child(2n){background-color:var(--color-divider)}body[data-theme=auto] .aplayer .aplayer-info .aplayer-music .aplayer-author{color:var(--color-font)!important}body[data-theme=auto] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:var(--color-font)!important}body[data-theme=auto] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path{fill:var(--color-focus)!important}}body[data-theme=light]{--color-mode:"light";--color-primary:#8aa2d3;--color-secondary:#8f82bc;--color-focus:#3b469b;--color-mute:#9ea1a3;--color-font:#3f4551;--color-divider:#e5e2e4;--color-bg:#fffffd;--color-codebg:#f6f8fa}body[data-theme=dark]{--color-mode:"dark";--color-primary:#8aa2d3;--color-secondary:#bab1df;--color-focus:#e6e6e6;--color-mute:#9ea1a3;--color-font:silver;--color-divider:#4d5158;--color-bg:#2f3136;--color-codebg:#414449}body[data-theme=dark] img{-webkit-filter:brightness(60%);filter:brightness(60%)}body[data-theme=dark] table td,body[data-theme=dark] table th{border-color:var(--color-font)}body[data-theme=dark] table tr{background-color:var(--color-bg);border-color:var(--color-font)}body[data-theme=dark] #post-aplayer,body[data-theme=dark] table tr:nth-child(2n){background-color:var(--color-divider)}body[data-theme=dark] .aplayer .aplayer-info .aplayer-music .aplayer-author{color:var(--color-font)!important}body[data-theme=dark] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:var(--color-font)!important}body[data-theme=dark] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path{fill:var(--color-focus)!important}::-moz-selection{color:var(--color-bg);background-color:var(--color-primary)}::-moz-selection,::selection{color:var(--color-bg);background-color:var(--color-primary)}body{background-color:var(--color-bg);color:var(--color-font)}body a{color:var(--color-primary)}.post-meta a,.post-summary a,body a:hover{color:var(--color-secondary)}.pag-current a,.pag-current a:hover,.post-meta a:hover,.post-summary a:hover{color:var(--color-focus)}.post-meta,.title-sub{color:var(--color-mute)}.page-info,header{border-bottom:2px solid var(--color-divider)}.pagination,.post+.post,footer{border-top:2px solid var(--color-divider)}.post-meta-archive{color:var(--color-mute)}.post-meta-archive a{color:var(--color-secondary)}.post-meta-archive a:hover{color:var(--color-focus)}@media screen and (max-width:768px){.sidebar{border-top:2px solid var(--color-divider)}}.post-content a{color:var(--color-secondary)}.post-content a:hover{color:var(--color-focus)}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{color:var(--color-primary)}.markdown-body em,.markdown-body strong{color:var(--color-secondary)}.markdown-body h1,.markdown-body h2{border-bottom:2px solid var(--color-divider)}.markdown-body blockquote{color:var(--color-mute)}.markdown-body img{border-radius:2px;background-color:inherit}.markdown-body hr{height:2px}.markdown-body code,.markdown-body pre{background-color:var(--color-codebg)}.post-comment,.post-loading{border-top:2px solid var(--color-divider)}.post-comment span.post-comment-notloaded{padding:1.5rem 0;color:var(--color-secondary);cursor:pointer}.post-comment span.post-comment-notloaded:hover{color:var(--color-focus)}.btn div{background-color:var(--color-divider);color:var(--color-primary)}.btn div:hover{background-color:var(--color-primary);color:var(--color-divider)}.btn div+div{border-top:2px solid var(--color-bg)}code[class*=language-],pre[class*=language-]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#93a1a1}.token.punctuation{color:#586e75}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#268bd2}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string,.token.url{color:#2aa198}.token.entity{color:#657b83;background:#eee8d5}.token.atrule,.token.attr-value,.token.keyword{color:#859900}.token.class-name,.token.function{color:#b58900}.token.important,.token.regex,.token.variable{color:#cb4b16}.token.bold,.token.important{font-weight:600}.token.italic{font-style:italic}code .rule,pre .rule{margin:0;border-bottom:none;overflow:inherit}code .rule:after,code .rule:before,pre .rule:after,pre .rule:before{display:inherit;clear:inherit}#dsqjs a{text-decoration:none!important;color:var(--color-secondary)!important}#dsqjs a:hover{color:var(--color-focus)!important}#dsqjs .dsqjs-bullet:after{color:var(--color-mute)!important;font-weight:600!important}#dsqjs .dsqjs-no-comment{color:var(--color-font)!important}#dsqjs .dsqjs-nav-tab{color:var(--color-mute)!important}#dsqjs .dsqjs-tab-active{color:var(--color-font)!important}#dsqjs .dsqjs-tab-active>span:after{background-color:var(--color-secondary)!important}#dsqjs .dsqjs-post-list .dsqjs-post-avatar{background:var(--color-bg)!important}#dsqjs .dsqjs-post-list .dsqjs-post-header .dsqjs-post-author{color:var(--color-mute)!important;font-weight:600}#dsqjs .dsqjs-post-list .dsqjs-post-header .dsqjs-admin-badge{color:var(--color-font)!important;background:var(--color-codebg)!important}#dsqjs .dsqjs-post-list .dsqjs-post-header .dsqjs-meta{color:var(--color-mute)!important}#dsqjs .dsqjs-post-body{color:var(--color-font)!important}#dsqjs .dsqjs-post-body code,#dsqjs .dsqjs-post-body pre{background:var(--color-codebg)!important}#dsqjs .dsqjs-post-body blockquote{color:var(--color-codebg)!important;border-left:.25em solid var(--color-divider)!important}#dsqjs .dsqjs-load-more{background:var(--color-mute)!important;color:var(--color-bg)!important}#dsqjs footer{border-top:2px solid var(--color-divider)!important;font-weight:600!important;color:var(--color-mute)!important}#dsqjs .dsqjs-order-radio:checked+.dsqjs-order-label{color:var(--color-font)!important;background-color:var(--color-divider)!important}#dsqjs .dsqjs-order-label{background-color:var(--color-bg)!important}#dsqjs p.dsqjs-has-more a.dsqjs-has-more-btn{color:var(--color-mute)!important}
\ No newline at end of file +/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}[hidden],template{display:none!important}a{background-color:transparent}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#1b1f23}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,select,textarea{font:inherit;margin:0}optgroup{font-weight:600}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}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-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}*{box-sizing:border-box}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Source Han Sans CN,Source Han Sans SC,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;font-size:16px;line-height:1.5;color:#24292e;background-color:#fff}a{color:#0366d6;text-decoration:none}a:hover{text-decoration:underline}b,strong{font-weight:600}.rule,hr{height:0;margin:15px 0;overflow:hidden;background:transparent;border:0;border-bottom:1px solid #dfe2e5}.rule:after,.rule:before,hr:after,hr:before{display:table;content:""}.rule:after,hr:after{clear:both}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}button{cursor:pointer;border-radius:0}[hidden][hidden]{display:none!important}details summary{cursor:pointer}details:not([open])>:not(summary){display:none!important}kbd{display:inline-block;padding:3px 5px;font:11px Cascadia Code,SF Mono,Fira Code,Consolas,-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Source Han Sans CN,Source Han Sans SC,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:1px solid #d1d5da;border-radius:3px;box-shadow:inset 0 -1px 0 #d1d5da}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:0}h1{font-size:32px}h1,h2{font-weight:600}h2{font-size:24px}h3{font-size:20px}h3,h4{font-weight:600}h4{font-size:16px}h5{font-size:14px}h5,h6{font-weight:600}h6{font-size:12px}p{margin-top:0;margin-bottom:10px}small{font-size:90%}blockquote{margin:0}ol,ul{padding-left:0;margin-top:0;margin-bottom:0}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}dd{margin-left:0}code,pre,tt{font-family:Cascadia Code,SF Mono,Fira Code,Consolas,-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Source Han Sans CN,Source Han Sans SC,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;font-size:12px}pre{margin-top:0;margin-bottom:0}.octicon{vertical-align:text-bottom}.container-sm{max-width:544px}.container-md,.container-sm{margin-right:auto;margin-left:auto}.container-md{max-width:768px}.container-lg{max-width:1012px}.container-lg,.container-xl{margin-right:auto;margin-left:auto}.container-xl{max-width:1280px}.col-1{width:8.33333%}.col-2{width:16.66667%}.col-3{width:25%}.col-4{width:33.33333%}.col-5{width:41.66667%}.col-6{width:50%}.col-7{width:58.33333%}.col-8{width:66.66667%}.col-9{width:75%}.col-10{width:83.33333%}.col-11{width:91.66667%}.col-12{width:100%}@media (min-width:544px){.col-sm-1{width:8.33333%}.col-sm-2{width:16.66667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333%}.col-sm-5{width:41.66667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333%}.col-sm-8{width:66.66667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333%}.col-sm-11{width:91.66667%}.col-sm-12{width:100%}}@media (min-width:768px){.col-md-1{width:8.33333%}.col-md-2{width:16.66667%}.col-md-3{width:25%}.col-md-4{width:33.33333%}.col-md-5{width:41.66667%}.col-md-6{width:50%}.col-md-7{width:58.33333%}.col-md-8{width:66.66667%}.col-md-9{width:75%}.col-md-10{width:83.33333%}.col-md-11{width:91.66667%}.col-md-12{width:100%}}@media (min-width:1012px){.col-lg-1{width:8.33333%}.col-lg-2{width:16.66667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333%}.col-lg-5{width:41.66667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333%}.col-lg-8{width:66.66667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333%}.col-lg-11{width:91.66667%}.col-lg-12{width:100%}}@media (min-width:1280px){.col-xl-1{width:8.33333%}.col-xl-2{width:16.66667%}.col-xl-3{width:25%}.col-xl-4{width:33.33333%}.col-xl-5{width:41.66667%}.col-xl-6{width:50%}.col-xl-7{width:58.33333%}.col-xl-8{width:66.66667%}.col-xl-9{width:75%}.col-xl-10{width:83.33333%}.col-xl-11{width:91.66667%}.col-xl-12{width:100%}}.gutter{margin-right:-16px;margin-left:-16px}.gutter>[class*=col-]{padding-right:16px!important;padding-left:16px!important}.gutter-condensed{margin-right:-8px;margin-left:-8px}.gutter-condensed>[class*=col-]{padding-right:8px!important;padding-left:8px!important}.gutter-spacious{margin-right:-24px;margin-left:-24px}.gutter-spacious>[class*=col-]{padding-right:24px!important;padding-left:24px!important}@media (min-width:544px){.gutter-sm{margin-right:-16px;margin-left:-16px}.gutter-sm>[class*=col-]{padding-right:16px!important;padding-left:16px!important}.gutter-sm-condensed{margin-right:-8px;margin-left:-8px}.gutter-sm-condensed>[class*=col-]{padding-right:8px!important;padding-left:8px!important}.gutter-sm-spacious{margin-right:-24px;margin-left:-24px}.gutter-sm-spacious>[class*=col-]{padding-right:24px!important;padding-left:24px!important}}@media (min-width:768px){.gutter-md{margin-right:-16px;margin-left:-16px}.gutter-md>[class*=col-]{padding-right:16px!important;padding-left:16px!important}.gutter-md-condensed{margin-right:-8px;margin-left:-8px}.gutter-md-condensed>[class*=col-]{padding-right:8px!important;padding-left:8px!important}.gutter-md-spacious{margin-right:-24px;margin-left:-24px}.gutter-md-spacious>[class*=col-]{padding-right:24px!important;padding-left:24px!important}}@media (min-width:1012px){.gutter-lg{margin-right:-16px;margin-left:-16px}.gutter-lg>[class*=col-]{padding-right:16px!important;padding-left:16px!important}.gutter-lg-condensed{margin-right:-8px;margin-left:-8px}.gutter-lg-condensed>[class*=col-]{padding-right:8px!important;padding-left:8px!important}.gutter-lg-spacious{margin-right:-24px;margin-left:-24px}.gutter-lg-spacious>[class*=col-]{padding-right:24px!important;padding-left:24px!important}}@media (min-width:1280px){.gutter-xl{margin-right:-16px;margin-left:-16px}.gutter-xl>[class*=col-]{padding-right:16px!important;padding-left:16px!important}.gutter-xl-condensed{margin-right:-8px;margin-left:-8px}.gutter-xl-condensed>[class*=col-]{padding-right:8px!important;padding-left:8px!important}.gutter-xl-spacious{margin-right:-24px;margin-left:-24px}.gutter-xl-spacious>[class*=col-]{padding-right:24px!important;padding-left:24px!important}}.markdown-body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Source Han Sans CN,Source Han Sans SC,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px Cascadia Code,SF Mono,Fira Code,Consolas,-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Source Han Sans CN,Source Han Sans SC,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:1px solid #d1d5da;border-radius:3px;box-shadow:inset 0 -1px 0 #d1d5da}.markdown-body:after,.markdown-body:before{display:table;content:""}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:#cb2431}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit}.markdown-body h1{font-size:2em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eaecef}.markdown-body h2{font-size:1.5em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol.no-list,.markdown-body ul.no-list{padding:0;list-style-type:none}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li{word-wrap:break-all}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body table img{background-color:transparent}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #dfe2e5}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:#24292e}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:600;background:#f6f8fa;border-top:0}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}@media (min-width:544px){.position-sm-static{position:static!important}.position-sm-relative{position:relative!important}.position-sm-absolute{position:absolute!important}.position-sm-fixed{position:fixed!important}.position-sm-sticky{position:-webkit-sticky!important;position:sticky!important}}@media (min-width:768px){.position-md-static{position:static!important}.position-md-relative{position:relative!important}.position-md-absolute{position:absolute!important}.position-md-fixed{position:fixed!important}.position-md-sticky{position:-webkit-sticky!important;position:sticky!important}}@media (min-width:1012px){.position-lg-static{position:static!important}.position-lg-relative{position:relative!important}.position-lg-absolute{position:absolute!important}.position-lg-fixed{position:fixed!important}.position-lg-sticky{position:-webkit-sticky!important;position:sticky!important}}@media (min-width:1280px){.position-xl-static{position:static!important}.position-xl-relative{position:relative!important}.position-xl-absolute{position:absolute!important}.position-xl-fixed{position:fixed!important}.position-xl-sticky{position:-webkit-sticky!important;position:sticky!important}}.top-0{top:0!important}.right-0{right:0!important}.bottom-0{bottom:0!important}.left-0{left:0!important}.v-align-middle{vertical-align:middle!important}.v-align-top{vertical-align:top!important}.v-align-bottom{vertical-align:bottom!important}.v-align-text-top{vertical-align:text-top!important}.v-align-text-bottom{vertical-align:text-bottom!important}.v-align-baseline{vertical-align:baseline!important}.overflow-visible{overflow:visible!important}.overflow-x-visible{overflow-x:visible!important}.overflow-y-visible{overflow-y:visible!important}.overflow-hidden{overflow:hidden!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-auto{overflow:auto!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.overflow-scroll{overflow:scroll!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-scroll{overflow-y:scroll!important}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:544px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:1012px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1280px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.width-fit{max-width:100%!important}.width-full{width:100%!important}.height-fit{max-height:100%!important}.height-full{height:100%!important}.min-width-0{min-width:0!important}.width-auto{width:auto!important}.direction-rtl{direction:rtl!important}.direction-ltr{direction:ltr!important}@media (min-width:544px){.width-sm-auto{width:auto!important}.direction-sm-rtl{direction:rtl!important}.direction-sm-ltr{direction:ltr!important}}@media (min-width:768px){.width-md-auto{width:auto!important}.direction-md-rtl{direction:rtl!important}.direction-md-ltr{direction:ltr!important}}@media (min-width:1012px){.width-lg-auto{width:auto!important}.direction-lg-rtl{direction:rtl!important}.direction-lg-ltr{direction:ltr!important}}@media (min-width:1280px){.width-xl-auto{width:auto!important}.direction-xl-rtl{direction:rtl!important}.direction-xl-ltr{direction:ltr!important}}header .header{padding:1.75rem 1.5rem 2rem}header .title-main{font-size:2.5rem;font-family:Product Sans,-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Source Han Sans CN,Source Han Sans SC,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;font-weight:700;white-space:nowrap}header .title-sub{margin:0 .1rem;display:block;white-space:nowrap;scrollbar-width:none;-ms-overflow-style:none}header .title-sub::-webkit-scrollbar{display:none}.content{padding:1.5rem 1.5rem 0}.post:not(:first-child){padding:1.5rem 0}.post:first-child{padding:0 0 1.5rem}.post-title{font-size:1.75rem}.post-meta{margin:.5rem .1rem 1rem;flex-wrap:wrap}.post-meta,.post-meta span{display:flex;align-items:center}.post-meta span:not(:last-child){padding-right:1.5rem}.post-summary{margin:0 .1rem}.post-summary p:last-child{margin-bottom:0}.post-summary h1,.post-summary h2,.post-summary h3,.post-summary h4,.post-summary h5,.post-summary h6{display:none}.post-meta-archive{margin:.5rem .1rem 0;flex-wrap:wrap}.post-meta-archive,.post-meta-archive span{display:flex;align-items:center}.post-meta-archive span:not(:last-child){padding-right:1.5rem}.pagination{font-size:1.25rem;line-height:1.25rem;padding:1.25rem 0}.pagination,.pagination div{display:flex;align-items:center;justify-content:center}.pagination div{width:2rem;height:2rem}.pagination div a{display:flex;align-items:center}.page-info{padding:0 .1rem 1.5rem}article{padding-bottom:1.5rem}article .post-content{margin:1.25rem .1rem 0}.license{margin-bottom:1.5rem}.post-loading{margin:0 0 1.5rem;padding-top:1.5rem;text-align:center}.post-loading i{font-size:1.25rem}.post-loading p{margin:.5rem 0 0}.markdown-body h1{font-size:1.75rem;margin-top:1.5rem}.markdown-body h2{font-size:1.5rem;margin-top:1.375rem}.markdown-body h3{font-size:1.25rem}.markdown-body h3,.markdown-body h4{margin-top:1.25rem}.markdown-body ul{list-style-type:circle}.markdown-body img{max-width:98%;margin:0 .25rem .5rem}.post-comment span.post-comment-notloaded{display:flex;align-items:center;justify-content:center}#disqus_thread{padding:1.25rem 0}#search-result .post:first-child{padding:1.5rem 0}.search-result-info{padding:1rem .1rem}.search-input{display:flex;height:2.5rem;align-items:center;padding-left:.5rem;width:100%}.search-input input{width:100%;min-width:0;flex:1 1 auto;height:2rem}.search-input button{flex:0 1 auto;padding:0 .5rem;word-break:keep-all;height:2.5rem}.search-input button ion-icon{height:100%;font-size:1.6rem}.sidebar{padding:1.5rem 1.5rem 1.5rem 0}.sidebar-item:not(:last-child){margin-bottom:1rem}.sidebar-item h3{margin-bottom:.25rem}.sidebar-item ul{list-style-type:none;margin:0 .1rem}.sidebar-item>div,.sidebar-item>nav{margin:0 .1rem}.sidebar-item>img{margin:.5rem .25rem 0;width:100%;border-radius:2px}@media screen and (max-width:768px){.sidebar{padding:1.5rem;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-around}.sidebar-item{width:40%}.sidebar-item .sidebar-pages,.sidebar-item .sidebar-tags{margin-bottom:1rem}.sidebar-item .sidebar-bgm,.sidebar-item .sidebar-links{margin-bottom:0}.sidebar-item>img{margin:.5rem .25rem 0;width:75%;border-radius:.25rem}}.sidebar-toc ul ul{font-size:.875rem;padding-left:.5rem;margin-bottom:.25rem}footer .footer{padding:2rem 1.5rem;text-align:center}footer .footer i{font-size:.875rem}.btn{position:fixed;right:1.5rem;bottom:1.5rem;height:5rem;justify-content:space-between;flex-direction:column}.btn,.btn div{width:2.5rem;display:flex}.btn div{flex:0 1 auto;height:2.5rem;align-items:center;justify-content:center;cursor:pointer}.btn div:first-child{border-radius:.25rem .25rem 0 0;font-size:1.25rem}.btn div:last-child{border-radius:0 0 .25rem .25rem;font-size:1.5rem}#post-aplayer{margin:0 .125rem 1.25rem;font-family:inherit}body[data-theme=auto]{--color-mode:"light";--color-primary:#8aa2d3;--color-secondary:#8f82bc;--color-focus:#3b469b;--color-mute:#9ea1a3;--color-font:#3f4551;--color-divider:#e5e2e4;--color-bg:#fffffd;--color-codebg:#f6f8fa}@media (prefers-color-scheme:dark){body[data-theme=auto]{--color-mode:"dark";--color-primary:#8aa2d3;--color-secondary:#bab1df;--color-focus:#e6e6e6;--color-mute:#9ea1a3;--color-font:silver;--color-divider:#4d5158;--color-bg:#2f3136;--color-codebg:#414449}body[data-theme=auto] table td,body[data-theme=auto] table th{border-color:var(--color-font)}body[data-theme=auto] table tr{background-color:var(--color-bg);border-color:var(--color-font)}body[data-theme=auto] #post-aplayer,body[data-theme=auto] table tr:nth-child(2n){background-color:var(--color-divider)}body[data-theme=auto] .aplayer .aplayer-info .aplayer-music .aplayer-author{color:var(--color-font)!important}body[data-theme=auto] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:var(--color-font)!important}body[data-theme=auto] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path{fill:var(--color-focus)!important}body[data-theme=auto] .aplayer .aplayer-list ol li{border-top:1px solid var(--color-bg)!important}body[data-theme=auto] .aplayer.aplayer-withlist .aplayer-info{border-bottom:1px solid var(--color-bg)!important}body[data-theme=auto] .aplayer .aplayer-list ol li.aplayer-list-light,body[data-theme=auto] .aplayer .aplayer-list ol li:hover{background-color:var(--color-codebg)!important}body[data-theme=auto] .aplayer .aplayer-list ol li .aplayer-list-author,body[data-theme=auto] .aplayer .aplayer-list ol li .aplayer-list-index{color:var(--color-font)!important}}body[data-theme=light]{--color-mode:"light";--color-primary:#8aa2d3;--color-secondary:#8f82bc;--color-focus:#3b469b;--color-mute:#9ea1a3;--color-font:#3f4551;--color-divider:#e5e2e4;--color-bg:#fffffd;--color-codebg:#f6f8fa}body[data-theme=dark]{--color-mode:"dark";--color-primary:#8aa2d3;--color-secondary:#bab1df;--color-focus:#e6e6e6;--color-mute:#9ea1a3;--color-font:silver;--color-divider:#4d5158;--color-bg:#2f3136;--color-codebg:#414449}body[data-theme=dark] table td,body[data-theme=dark] table th{border-color:var(--color-font)}body[data-theme=dark] table tr{background-color:var(--color-bg);border-color:var(--color-font)}body[data-theme=dark] #post-aplayer,body[data-theme=dark] table tr:nth-child(2n){background-color:var(--color-divider)}body[data-theme=dark] .aplayer .aplayer-info .aplayer-music .aplayer-author{color:var(--color-font)!important}body[data-theme=dark] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:var(--color-font)!important}body[data-theme=dark] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path{fill:var(--color-focus)!important}body[data-theme=dark] .aplayer .aplayer-list ol li{border-top:1px solid var(--color-bg)!important}body[data-theme=dark] .aplayer.aplayer-withlist .aplayer-info{border-bottom:1px solid var(--color-bg)!important}body[data-theme=dark] .aplayer .aplayer-list ol li.aplayer-list-light,body[data-theme=dark] .aplayer .aplayer-list ol li:hover{background-color:var(--color-codebg)!important}body[data-theme=dark] .aplayer .aplayer-list ol li .aplayer-list-author,body[data-theme=dark] .aplayer .aplayer-list ol li .aplayer-list-index{color:var(--color-font)!important}::-moz-selection{color:var(--color-bg);background-color:var(--color-primary)}::-moz-selection,::selection{color:var(--color-bg);background-color:var(--color-primary)}body{background-color:var(--color-bg);color:var(--color-font)}body a{color:var(--color-primary)}.post-meta a,.post-summary a,body a:hover{color:var(--color-secondary)}.pag-current a,.pag-current a:hover,.post-meta a:hover,.post-summary a:hover{color:var(--color-focus)}.post-meta,.title-sub{color:var(--color-mute)}.page-info,header{border-bottom:2px solid var(--color-divider)}.pagination,.post+.post,footer{border-top:2px solid var(--color-divider)}.post-meta-archive{color:var(--color-mute)}.post-meta-archive a{color:var(--color-secondary)}.post-meta-archive a:hover{color:var(--color-focus)}@media screen and (max-width:768px){.sidebar{border-top:2px solid var(--color-divider)}}.post-content a{color:var(--color-secondary)}.post-content a:hover{color:var(--color-focus)}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{color:var(--color-primary)}.markdown-body em,.markdown-body strong{color:var(--color-secondary)}.markdown-body h1,.markdown-body h2{border-bottom:2px solid var(--color-divider)}.markdown-body blockquote{color:var(--color-mute)}.markdown-body img{border-radius:2px;background-color:inherit}.markdown-body hr{height:2px}.markdown-body code,.markdown-body pre{background-color:var(--color-codebg)}.post-comment,.post-loading{border-top:2px solid var(--color-divider)}.post-comment span.post-comment-notloaded{padding:1.5rem 0;color:var(--color-secondary);cursor:pointer}.post-comment span.post-comment-notloaded:hover{color:var(--color-focus)}.btn div{background-color:var(--color-divider);color:var(--color-primary)}.btn div:hover{background-color:var(--color-primary);color:var(--color-divider)}.btn div+div{border-top:2px solid var(--color-bg)}code[class*=language-],pre[class*=language-]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#93a1a1}.token.punctuation{color:#586e75}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#268bd2}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string,.token.url{color:#2aa198}.token.entity{color:#657b83;background:#eee8d5}.token.atrule,.token.attr-value,.token.keyword{color:#859900}.token.class-name,.token.function{color:#b58900}.token.important,.token.regex,.token.variable{color:#cb4b16}.token.bold,.token.important{font-weight:600}.token.italic{font-style:italic}code .rule,pre .rule{margin:0;border-bottom:none;overflow:inherit}code .rule:after,code .rule:before,pre .rule:after,pre .rule:before{display:inherit;clear:inherit}#dsqjs a{text-decoration:none!important;color:var(--color-secondary)!important}#dsqjs a:hover{color:var(--color-focus)!important}#dsqjs .dsqjs-bullet:after{color:var(--color-mute)!important;font-weight:600!important}#dsqjs .dsqjs-no-comment{color:var(--color-font)!important}#dsqjs .dsqjs-nav-tab{color:var(--color-mute)!important}#dsqjs .dsqjs-tab-active{color:var(--color-font)!important}#dsqjs .dsqjs-tab-active>span:after{background-color:var(--color-secondary)!important}#dsqjs .dsqjs-post-list .dsqjs-post-avatar{background:var(--color-bg)!important}#dsqjs .dsqjs-post-list .dsqjs-post-header .dsqjs-post-author{color:var(--color-mute)!important;font-weight:600}#dsqjs .dsqjs-post-list .dsqjs-post-header .dsqjs-admin-badge{color:var(--color-font)!important;background:var(--color-codebg)!important}#dsqjs .dsqjs-post-list .dsqjs-post-header .dsqjs-meta{color:var(--color-mute)!important}#dsqjs .dsqjs-post-body{color:var(--color-font)!important}#dsqjs .dsqjs-post-body code,#dsqjs .dsqjs-post-body pre{background:var(--color-codebg)!important}#dsqjs .dsqjs-post-body blockquote{color:var(--color-codebg)!important;border-left:.25em solid var(--color-divider)!important}#dsqjs .dsqjs-load-more{background:var(--color-mute)!important;color:var(--color-bg)!important}#dsqjs footer{border-top:2px solid var(--color-divider)!important;font-weight:600!important;color:var(--color-mute)!important}#dsqjs .dsqjs-order-radio:checked+.dsqjs-order-label{color:var(--color-font)!important;background-color:var(--color-divider)!important}#dsqjs .dsqjs-order-label{background-color:var(--color-bg)!important}#dsqjs p.dsqjs-has-more a.dsqjs-has-more-btn{color:var(--color-mute)!important}.search-result-info{border-bottom:2px solid var(--color-divider)}.search-input{border-radius:.25rem;border:2px solid;border-color:var(--color-divider);border-right:var(--color-divider);background-color:var(--color-bg)}.search-input:focus-within,.search-input:hover{color:var(--color-primary);border-color:var(--color-primary)}.search-input input{border:none}.search-input button,.search-input input{outline:none;color:inherit;background-color:inherit}.search-input button{border:2px solid;border-left:none;border-radius:0 .25rem .25rem 0;border-color:inherit}.search-input button:hover{color:var(--color-secondary)}
\ No newline at end of file diff --git a/static/assets/css/fuji.min.css.map b/static/assets/css/fuji.min.css.map deleted file mode 100644 index 205bb74..0000000 --- a/static/assets/css/fuji.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["_var.scss","fuji.css","_global.scss","_primer/base/normalize.scss","_primer/base/base.scss","_primer/support/variables/typography.scss","_primer/support/variables/color-system.scss","_primer/support/mixins/layout.scss","_primer/base/kbd.scss","_primer/support/variables/misc.scss","_primer/base/typography-base.scss","_primer/support/mixins/typography.scss","_primer/layout/container.scss","_primer/layout/grid.scss","_primer/support/variables/layout.scss","_primer/markdown/markdown-body.scss","_primer/markdown/headings.scss","_primer/markdown/lists.scss","_primer/markdown/tables.scss","_primer/markdown/images.scss","_primer/markdown/code.scss","_primer/markdown/blob-csv.scss","_primer/utilities/layout.scss","_fuji-style/_header.scss","_fuji-style/_content.scss","_fuji-style/_sidebar.scss","_fuji-style/_footer.scss","_fuji-style/_components.scss","_fuji-theme/_base.scss","_fuji-theme/_dark-diff.scss","_fuji-theme/_style.scss"],"names":[],"mappings":"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","file":"fuji.min.css","sourcesContent":["$font-size-0: 2rem !default; // 16px->32px\r\n$font-size-1: 1.75rem !default; // 16px->28px #\r\n$font-size-2: 1.5rem !default; // 16px->24px ##\r\n$font-size-3: 1.25rem !default; // 16px->20px ###\r\n$font-size-4: 1rem !default; // 16px->16px ####\r\n\r\n// used primer variables\r\n// @primer/css/support/variables/misc.scss\r\n$font-weight-bold: 600;\r\n$font-weight-semibold: 600;\r\n$font-weight-normal: 400;\r\n$font-weight-light: 400;\r\n$body-font: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Helvetica Neue', 'Helvetica', 'Arial', 'PingFang SC',\r\n 'Hiragino Sans GB', 'Source Han Sans CN', 'Source Han Sans SC', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif !default;\r\n$mono-font: 'Cascadia Code', 'SF Mono', 'Fira Code', 'Consolas', $body-font !default;\r\n$title-font: 'Product Sans', $body-font !default;\r\n$body-font-size: 16px !default;\r\n\r\n$light-color-primary: #8aa2d3 !default; // https://irocore.com/aofuji/\r\n$light-color-secondary: #8f82bc !default; // https://irocore.com/fujimurasaki/\r\n$light-color-focus: #3b469b !default; // https://irocore.com/aomurasaki/\r\n$light-color-mute: #9ea1a3 !default; // https://irocore.com/suzu-iro/\r\n$light-color-font: #3f4551 !default; // https://irocore.com/konnezu/\r\n$light-color-divider: #e5e2e4 !default; // https://irocore.com/komachinezu/\r\n$light-color-bg: #fffffd !default; // https://irocore.com/shiro/\r\n$light-color-codebg: #f6f8fa !default; // GitHub\r\n\r\n$dark-color-primary: #8aa2d3 !default; // https://irocore.com/aofuji/\r\n$dark-color-secondary: #bab1df !default; // kai https://irocore.com/fujimurasaki/\r\n$dark-color-focus: #e6e6e6 !default; // https://irocore.com/shironezumi/\r\n$dark-color-mute: #9ea1a3 !default; // https://irocore.com/suzu-iro/\r\n$dark-color-font: #c0c0c0 !default; // https://irocore.com/gin-iro/\r\n$dark-color-divider: #4d5158 !default; // Discord\r\n$dark-color-bg: #2f3136 !default; // Discord\r\n$dark-color-codebg: #414449 !default; // kai GitHub\r\n\r\n@font-face {\r\n font-family: 'Product Sans';\r\n font-style: normal;\r\n font-weight: 700;\r\n font-display: swap;\r\n src: local('Product Sans Bold'), local('ProductSans-Bold'),\r\n url('https://cdn.jsdelivr.net/gh/amzrk2/web-font-archive@1.4.5/product-sans/product-sans-bold.woff2')\r\n format('woff2');\r\n unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191,\r\n U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\r\n}\r\n\r\n@font-face {\r\n font-family: 'Cascadia Code';\r\n font-style: normal;\r\n font-weight: 400;\r\n font-display: swap;\r\n src: local('Cascadia Code Regular'),\r\n url('https://cdn.jsdelivr.net/gh/amzrk2/web-font-archive@1.4.5/cascadia-code/cascadia.woff2') format('woff2');\r\n}\r\n","@font-face {\n font-family: 'Product Sans';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: local(\"Product Sans Bold\"), local(\"ProductSans-Bold\"), url(\"https://cdn.jsdelivr.net/gh/amzrk2/web-font-archive@1.4.5/product-sans/product-sans-bold.woff2\") format(\"woff2\");\n unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191,\r U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }\n\n@font-face {\n font-family: 'Cascadia Code';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: local(\"Cascadia Code Regular\"), url(\"https://cdn.jsdelivr.net/gh/amzrk2/web-font-archive@1.4.5/cascadia-code/cascadia.woff2\") format(\"woff2\"); }\n\n* {\n box-sizing: border-box; }\n\nhtml {\n height: 100%;\n scroll-behavior: smooth; }\n\nbody {\n display: flex;\n flex-direction: column;\n height: 100%;\n scroll-behavior: smooth; }\n\nmain {\n flex: 1 1 auto; }\n\na:hover {\n text-decoration: none !important; }\n\n/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */\n/**\r\n * 1. Change the default font family in all browsers (opinionated).\r\n * 2. Prevent adjustments of font size after orientation changes in IE and iOS.\r\n */\nhtml {\n font-family: sans-serif;\n /* 1 */\n -ms-text-size-adjust: 100%;\n /* 2 */\n -webkit-text-size-adjust: 100%;\n /* 2 */ }\n\n/**\r\n * Remove the margin in all browsers (opinionated).\r\n */\nbody {\n margin: 0; }\n\n/* HTML5 display definitions\r\n ========================================================================== */\n/**\r\n * Add the correct display in IE 9-.\r\n * 1. Add the correct display in Edge, IE, and Firefox.\r\n * 2. Add the correct display in IE.\r\n */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nmain,\nmenu,\nnav,\nsection {\n /* 1 */\n display: block; }\n\nsummary {\n display: list-item; }\n\n/**\r\n * Add the correct display in IE 9-.\r\n */\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; }\n\n/**\r\n * Add the correct display in iOS 4-7.\r\n */\naudio:not([controls]) {\n display: none;\n height: 0; }\n\n/**\r\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\r\n */\nprogress {\n vertical-align: baseline; }\n\n/**\r\n * Add the correct display in IE 10-.\r\n * 1. Add the correct display in IE.\r\n */\ntemplate,\n[hidden] {\n display: none !important; }\n\n/* Links\r\n ========================================================================== */\n/**\r\n * Remove the gray background on active links in IE 10.\r\n */\na {\n background-color: transparent;\n /* 1 */ }\n\n/**\r\n * Remove the outline on focused links when they are also active or hovered\r\n * in all browsers (opinionated).\r\n */\na:active,\na:hover {\n outline-width: 0; }\n\n/* Text-level semantics\r\n ========================================================================== */\n/**\r\n * 1. Remove the bottom border in Firefox 39-.\r\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\r\n */\nabbr[title] {\n border-bottom: none;\n /* 1 */\n text-decoration: underline;\n /* 2 */\n text-decoration: underline dotted;\n /* 2 */ }\n\n/**\r\n * Prevent the duplicate application of `bolder` by the next rule in Safari 6.\r\n */\nb,\nstrong {\n font-weight: inherit; }\n\n/**\r\n * Add the correct font weight in Chrome, Edge, and Safari.\r\n */\nb,\nstrong {\n font-weight: bolder; }\n\n/**\r\n * Add the correct font style in Android 4.3-.\r\n */\ndfn {\n font-style: italic; }\n\n/**\r\n * Correct the font size and margin on `h1` elements within `section` and\r\n * `article` contexts in Chrome, Firefox, and Safari.\r\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0; }\n\n/**\r\n * Add the correct background and color in IE 9-.\r\n */\nmark {\n background-color: #ff0;\n color: #1b1f23; }\n\n/**\r\n * Add the correct font size in all browsers.\r\n */\nsmall {\n font-size: 80%; }\n\n/**\r\n * Prevent `sub` and `sup` elements from affecting the line height in\r\n * all browsers.\r\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline; }\n\nsub {\n bottom: -0.25em; }\n\nsup {\n top: -0.5em; }\n\n/* Embedded content\r\n ========================================================================== */\n/**\r\n * Remove the border on images inside links in IE 10-.\r\n */\nimg {\n border-style: none; }\n\n/**\r\n * Hide the overflow in IE.\r\n */\nsvg:not(:root) {\n overflow: hidden; }\n\n/* Grouping content\r\n ========================================================================== */\n/**\r\n * 1. Correct the inheritance and scaling of font size in all browsers.\r\n * 2. Correct the odd `em` font sizing in all browsers.\r\n */\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n /* 1 */\n font-size: 1em;\n /* 2 */ }\n\n/**\r\n * Add the correct margin in IE 8.\r\n */\nfigure {\n margin: 1em 40px; }\n\n/**\r\n * 1. Add the correct box sizing in Firefox.\r\n * 2. Show the overflow in Edge and IE.\r\n */\nhr {\n box-sizing: content-box;\n /* 1 */\n height: 0;\n /* 1 */\n overflow: visible;\n /* 2 */ }\n\n/* Forms\r\n ========================================================================== */\n/**\r\n * 1. Change font properties to `inherit` in all browsers (opinionated).\r\n * 2. Remove the margin in Firefox and Safari.\r\n */\nbutton,\ninput,\nselect,\ntextarea {\n font: inherit;\n /* 1 */\n margin: 0;\n /* 2 */ }\n\n/**\r\n * Restore the font weight unset by the previous rule.\r\n */\noptgroup {\n font-weight: 600; }\n\n/**\r\n * Show the overflow in IE.\r\n * 1. Show the overflow in Edge.\r\n */\nbutton,\ninput {\n /* 1 */\n overflow: visible; }\n\n/**\r\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\r\n * 1. Remove the inheritance of text transform in Firefox.\r\n */\nbutton,\nselect {\n /* 1 */\n text-transform: none; }\n\n/**\r\n * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\r\n * controls in Android 4.\r\n * 2. Correct the inability to style clickable types in iOS and Safari.\r\n */\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n /* 2 */ }\n\n/**\r\n * Remove the inner border and padding in Firefox.\r\n */\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0; }\n\n/**\r\n * Restore the focus styles unset by the previous rule.\r\n */\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText; }\n\n/**\r\n * Change the border, margin, and padding in all browsers (opinionated).\r\n */\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em; }\n\n/**\r\n * 1. Correct the text wrapping in Edge and IE.\r\n * 2. Correct the color inheritance from `fieldset` elements in IE.\r\n * 3. Remove the padding so developers are not caught out when they zero out\r\n * `fieldset` elements in all browsers.\r\n */\nlegend {\n box-sizing: border-box;\n /* 1 */\n color: inherit;\n /* 2 */\n display: table;\n /* 1 */\n max-width: 100%;\n /* 1 */\n padding: 0;\n /* 3 */\n white-space: normal;\n /* 1 */ }\n\n/**\r\n * Remove the default vertical scrollbar in IE.\r\n */\ntextarea {\n overflow: auto; }\n\n/**\r\n * 1. Add the correct box sizing in IE 10-.\r\n * 2. Remove the padding in IE 10-.\r\n */\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box;\n /* 1 */\n padding: 0;\n /* 2 */ }\n\n/**\r\n * Correct the cursor style of increment and decrement buttons in Chrome.\r\n */\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto; }\n\n/**\r\n * 1. Correct the odd appearance in Chrome and Safari.\r\n * 2. Correct the outline style in Safari.\r\n */\n[type=\"search\"] {\n -webkit-appearance: textfield;\n /* 1 */\n outline-offset: -2px;\n /* 2 */ }\n\n/**\r\n * Remove the inner padding and cancel buttons in Chrome and Safari on OS X.\r\n */\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none; }\n\n/**\r\n * Correct the text style of placeholders in Chrome, Edge, and Safari.\r\n */\n::-webkit-input-placeholder {\n color: inherit;\n opacity: 0.54; }\n\n/**\r\n * 1. Correct the inability to style clickable types in iOS and Safari.\r\n * 2. Change font properties to `inherit` in Safari.\r\n */\n::-webkit-file-upload-button {\n -webkit-appearance: button;\n /* 1 */\n font: inherit;\n /* 2 */ }\n\n* {\n box-sizing: border-box; }\n\ninput,\nselect,\ntextarea,\nbutton {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit; }\n\nbody {\n font-family: -apple-system, BlinkMacSystemFont, \"SF Pro Text\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", \"PingFang SC\", \"Hiragino Sans GB\", \"Source Han Sans CN\", \"Source Han Sans SC\", \"Microsoft YaHei\", \"WenQuanYi Micro Hei\", sans-serif;\n font-size: 16px;\n line-height: 1.5;\n color: #24292e;\n background-color: #fff; }\n\na {\n color: #0366d6;\n text-decoration: none; }\n a:hover {\n text-decoration: underline; }\n\nb,\nstrong {\n font-weight: 600; }\n\nhr,\n.rule {\n height: 0;\n margin: 15px 0;\n overflow: hidden;\n background: transparent;\n border: 0;\n border-bottom: 1px solid #dfe2e5; }\n hr::before,\n .rule::before {\n display: table;\n content: \"\"; }\n hr::after,\n .rule::after {\n display: table;\n clear: both;\n content: \"\"; }\n\ntable {\n border-spacing: 0;\n border-collapse: collapse; }\n\ntd,\nth {\n padding: 0; }\n\nbutton {\n cursor: pointer;\n border-radius: 0; }\n\n[hidden][hidden] {\n display: none !important; }\n\ndetails summary {\n cursor: pointer; }\n\ndetails:not([open]) > *:not(summary) {\n display: none !important; }\n\nkbd {\n display: inline-block;\n padding: 3px 5px;\n font: 11px \"Cascadia Code\", \"SF Mono\", \"Fira Code\", \"Consolas\", -apple-system, BlinkMacSystemFont, \"SF Pro Text\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", \"PingFang SC\", \"Hiragino Sans GB\", \"Source Han Sans CN\", \"Source Han Sans SC\", \"Microsoft YaHei\", \"WenQuanYi Micro Hei\", sans-serif;\n line-height: 10px;\n color: #444d56;\n vertical-align: middle;\n background-color: #fafbfc;\n border: solid 1px #d1d5da;\n border-bottom-color: #d1d5da;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 #d1d5da; }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin-top: 0;\n margin-bottom: 0; }\n\nh1 {\n font-size: 32px;\n font-weight: 600; }\n\nh2 {\n font-size: 24px;\n font-weight: 600; }\n\nh3 {\n font-size: 20px;\n font-weight: 600; }\n\nh4 {\n font-size: 16px;\n font-weight: 600; }\n\nh5 {\n font-size: 14px;\n font-weight: 600; }\n\nh6 {\n font-size: 12px;\n font-weight: 600; }\n\np {\n margin-top: 0;\n margin-bottom: 10px; }\n\nsmall {\n font-size: 90%; }\n\nblockquote {\n margin: 0; }\n\nul,\nol {\n padding-left: 0;\n margin-top: 0;\n margin-bottom: 0; }\n\nol ol,\nul ol {\n list-style-type: lower-roman; }\n\nul ul ol,\nul ol ol,\nol ul ol,\nol ol ol {\n list-style-type: lower-alpha; }\n\ndd {\n margin-left: 0; }\n\ntt,\ncode {\n font-family: \"Cascadia Code\", \"SF Mono\", \"Fira Code\", \"Consolas\", -apple-system, BlinkMacSystemFont, \"SF Pro Text\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", \"PingFang SC\", \"Hiragino Sans GB\", \"Source Han Sans CN\", \"Source Han Sans SC\", \"Microsoft YaHei\", \"WenQuanYi Micro Hei\", sans-serif;\n font-size: 12px; }\n\npre {\n margin-top: 0;\n margin-bottom: 0;\n font-family: \"Cascadia Code\", \"SF Mono\", \"Fira Code\", \"Consolas\", -apple-system, BlinkMacSystemFont, \"SF Pro Text\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", \"PingFang SC\", \"Hiragino Sans GB\", \"Source Han Sans CN\", \"Source Han Sans SC\", \"Microsoft YaHei\", \"WenQuanYi Micro Hei\", sans-serif;\n font-size: 12px; }\n\n.octicon {\n vertical-align: text-bottom; }\n\n.container-sm {\n max-width: 544px;\n margin-right: auto;\n margin-left: auto; }\n\n.container-md {\n max-width: 768px;\n margin-right: auto;\n margin-left: auto; }\n\n.container-lg {\n max-width: 1012px;\n margin-right: auto;\n margin-left: auto; }\n\n.container-xl {\n max-width: 1280px;\n margin-right: auto;\n margin-left: auto; }\n\n.col-1 {\n width: 8.33333%; }\n\n.col-2 {\n width: 16.66667%; }\n\n.col-3 {\n width: 25%; }\n\n.col-4 {\n width: 33.33333%; }\n\n.col-5 {\n width: 41.66667%; }\n\n.col-6 {\n width: 50%; }\n\n.col-7 {\n width: 58.33333%; }\n\n.col-8 {\n width: 66.66667%; }\n\n.col-9 {\n width: 75%; }\n\n.col-10 {\n width: 83.33333%; }\n\n.col-11 {\n width: 91.66667%; }\n\n.col-12 {\n width: 100%; }\n\n@media (min-width: 544px) {\n .col-sm-1 {\n width: 8.33333%; }\n .col-sm-2 {\n width: 16.66667%; }\n .col-sm-3 {\n width: 25%; }\n .col-sm-4 {\n width: 33.33333%; }\n .col-sm-5 {\n width: 41.66667%; }\n .col-sm-6 {\n width: 50%; }\n .col-sm-7 {\n width: 58.33333%; }\n .col-sm-8 {\n width: 66.66667%; }\n .col-sm-9 {\n width: 75%; }\n .col-sm-10 {\n width: 83.33333%; }\n .col-sm-11 {\n width: 91.66667%; }\n .col-sm-12 {\n width: 100%; } }\n\n@media (min-width: 768px) {\n .col-md-1 {\n width: 8.33333%; }\n .col-md-2 {\n width: 16.66667%; }\n .col-md-3 {\n width: 25%; }\n .col-md-4 {\n width: 33.33333%; }\n .col-md-5 {\n width: 41.66667%; }\n .col-md-6 {\n width: 50%; }\n .col-md-7 {\n width: 58.33333%; }\n .col-md-8 {\n width: 66.66667%; }\n .col-md-9 {\n width: 75%; }\n .col-md-10 {\n width: 83.33333%; }\n .col-md-11 {\n width: 91.66667%; }\n .col-md-12 {\n width: 100%; } }\n\n@media (min-width: 1012px) {\n .col-lg-1 {\n width: 8.33333%; }\n .col-lg-2 {\n width: 16.66667%; }\n .col-lg-3 {\n width: 25%; }\n .col-lg-4 {\n width: 33.33333%; }\n .col-lg-5 {\n width: 41.66667%; }\n .col-lg-6 {\n width: 50%; }\n .col-lg-7 {\n width: 58.33333%; }\n .col-lg-8 {\n width: 66.66667%; }\n .col-lg-9 {\n width: 75%; }\n .col-lg-10 {\n width: 83.33333%; }\n .col-lg-11 {\n width: 91.66667%; }\n .col-lg-12 {\n width: 100%; } }\n\n@media (min-width: 1280px) {\n .col-xl-1 {\n width: 8.33333%; }\n .col-xl-2 {\n width: 16.66667%; }\n .col-xl-3 {\n width: 25%; }\n .col-xl-4 {\n width: 33.33333%; }\n .col-xl-5 {\n width: 41.66667%; }\n .col-xl-6 {\n width: 50%; }\n .col-xl-7 {\n width: 58.33333%; }\n .col-xl-8 {\n width: 66.66667%; }\n .col-xl-9 {\n width: 75%; }\n .col-xl-10 {\n width: 83.33333%; }\n .col-xl-11 {\n width: 91.66667%; }\n .col-xl-12 {\n width: 100%; } }\n\n.gutter {\n margin-right: -16px;\n margin-left: -16px; }\n .gutter > [class*=\"col-\"] {\n padding-right: 16px !important;\n padding-left: 16px !important; }\n\n.gutter-condensed {\n margin-right: -8px;\n margin-left: -8px; }\n .gutter-condensed > [class*=\"col-\"] {\n padding-right: 8px !important;\n padding-left: 8px !important; }\n\n.gutter-spacious {\n margin-right: -24px;\n margin-left: -24px; }\n .gutter-spacious > [class*=\"col-\"] {\n padding-right: 24px !important;\n padding-left: 24px !important; }\n\n@media (min-width: 544px) {\n .gutter-sm {\n margin-right: -16px;\n margin-left: -16px; }\n .gutter-sm > [class*=\"col-\"] {\n padding-right: 16px !important;\n padding-left: 16px !important; }\n .gutter-sm-condensed {\n margin-right: -8px;\n margin-left: -8px; }\n .gutter-sm-condensed > [class*=\"col-\"] {\n padding-right: 8px !important;\n padding-left: 8px !important; }\n .gutter-sm-spacious {\n margin-right: -24px;\n margin-left: -24px; }\n .gutter-sm-spacious > [class*=\"col-\"] {\n padding-right: 24px !important;\n padding-left: 24px !important; } }\n\n@media (min-width: 768px) {\n .gutter-md {\n margin-right: -16px;\n margin-left: -16px; }\n .gutter-md > [class*=\"col-\"] {\n padding-right: 16px !important;\n padding-left: 16px !important; }\n .gutter-md-condensed {\n margin-right: -8px;\n margin-left: -8px; }\n .gutter-md-condensed > [class*=\"col-\"] {\n padding-right: 8px !important;\n padding-left: 8px !important; }\n .gutter-md-spacious {\n margin-right: -24px;\n margin-left: -24px; }\n .gutter-md-spacious > [class*=\"col-\"] {\n padding-right: 24px !important;\n padding-left: 24px !important; } }\n\n@media (min-width: 1012px) {\n .gutter-lg {\n margin-right: -16px;\n margin-left: -16px; }\n .gutter-lg > [class*=\"col-\"] {\n padding-right: 16px !important;\n padding-left: 16px !important; }\n .gutter-lg-condensed {\n margin-right: -8px;\n margin-left: -8px; }\n .gutter-lg-condensed > [class*=\"col-\"] {\n padding-right: 8px !important;\n padding-left: 8px !important; }\n .gutter-lg-spacious {\n margin-right: -24px;\n margin-left: -24px; }\n .gutter-lg-spacious > [class*=\"col-\"] {\n padding-right: 24px !important;\n padding-left: 24px !important; } }\n\n@media (min-width: 1280px) {\n .gutter-xl {\n margin-right: -16px;\n margin-left: -16px; }\n .gutter-xl > [class*=\"col-\"] {\n padding-right: 16px !important;\n padding-left: 16px !important; }\n .gutter-xl-condensed {\n margin-right: -8px;\n margin-left: -8px; }\n .gutter-xl-condensed > [class*=\"col-\"] {\n padding-right: 8px !important;\n padding-left: 8px !important; }\n .gutter-xl-spacious {\n margin-right: -24px;\n margin-left: -24px; }\n .gutter-xl-spacious > [class*=\"col-\"] {\n padding-right: 24px !important;\n padding-left: 24px !important; } }\n\n.markdown-body {\n font-family: -apple-system, BlinkMacSystemFont, \"SF Pro Text\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", \"PingFang SC\", \"Hiragino Sans GB\", \"Source Han Sans CN\", \"Source Han Sans SC\", \"Microsoft YaHei\", \"WenQuanYi Micro Hei\", sans-serif;\n font-size: 16px;\n line-height: 1.5;\n word-wrap: break-word; }\n .markdown-body kbd {\n display: inline-block;\n padding: 3px 5px;\n font: 11px \"Cascadia Code\", \"SF Mono\", \"Fira Code\", \"Consolas\", -apple-system, BlinkMacSystemFont, \"SF Pro Text\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", \"PingFang SC\", \"Hiragino Sans GB\", \"Source Han Sans CN\", \"Source Han Sans SC\", \"Microsoft YaHei\", \"WenQuanYi Micro Hei\", sans-serif;\n line-height: 10px;\n color: #444d56;\n vertical-align: middle;\n background-color: #fafbfc;\n border: solid 1px #d1d5da;\n border-bottom-color: #d1d5da;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 #d1d5da; }\n .markdown-body::before {\n display: table;\n content: \"\"; }\n .markdown-body::after {\n display: table;\n clear: both;\n content: \"\"; }\n .markdown-body > *:first-child {\n margin-top: 0 !important; }\n .markdown-body > *:last-child {\n margin-bottom: 0 !important; }\n .markdown-body a:not([href]) {\n color: inherit;\n text-decoration: none; }\n .markdown-body .absent {\n color: #cb2431; }\n .markdown-body .anchor {\n float: left;\n padding-right: 4px;\n margin-left: -20px;\n line-height: 1; }\n .markdown-body .anchor:focus {\n outline: none; }\n .markdown-body p,\n .markdown-body blockquote,\n .markdown-body ul,\n .markdown-body ol,\n .markdown-body dl,\n .markdown-body table,\n .markdown-body pre,\n .markdown-body details {\n margin-top: 0;\n margin-bottom: 16px; }\n .markdown-body hr {\n height: 0.25em;\n padding: 0;\n margin: 24px 0;\n background-color: #e1e4e8;\n border: 0; }\n .markdown-body blockquote {\n padding: 0 1em;\n color: #6a737d;\n border-left: 0.25em solid #dfe2e5; }\n .markdown-body blockquote > :first-child {\n margin-top: 0; }\n .markdown-body blockquote > :last-child {\n margin-bottom: 0; }\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n margin-top: 24px;\n margin-bottom: 16px;\n font-weight: 600;\n line-height: 1.25; }\n .markdown-body h1 .octicon-link,\n .markdown-body h2 .octicon-link,\n .markdown-body h3 .octicon-link,\n .markdown-body h4 .octicon-link,\n .markdown-body h5 .octicon-link,\n .markdown-body h6 .octicon-link {\n color: #1b1f23;\n vertical-align: middle;\n visibility: hidden; }\n .markdown-body h1:hover .anchor,\n .markdown-body h2:hover .anchor,\n .markdown-body h3:hover .anchor,\n .markdown-body h4:hover .anchor,\n .markdown-body h5:hover .anchor,\n .markdown-body h6:hover .anchor {\n text-decoration: none; }\n .markdown-body h1:hover .anchor .octicon-link,\n .markdown-body h2:hover .anchor .octicon-link,\n .markdown-body h3:hover .anchor .octicon-link,\n .markdown-body h4:hover .anchor .octicon-link,\n .markdown-body h5:hover .anchor .octicon-link,\n .markdown-body h6:hover .anchor .octicon-link {\n visibility: visible; }\n .markdown-body h1 tt,\n .markdown-body h1 code,\n .markdown-body h2 tt,\n .markdown-body h2 code,\n .markdown-body h3 tt,\n .markdown-body h3 code,\n .markdown-body h4 tt,\n .markdown-body h4 code,\n .markdown-body h5 tt,\n .markdown-body h5 code,\n .markdown-body h6 tt,\n .markdown-body h6 code {\n font-size: inherit; }\n\n.markdown-body h1 {\n padding-bottom: 0.3em;\n font-size: 2em;\n border-bottom: 1px solid #eaecef; }\n\n.markdown-body h2 {\n padding-bottom: 0.3em;\n font-size: 1.5em;\n border-bottom: 1px solid #eaecef; }\n\n.markdown-body h3 {\n font-size: 1.25em; }\n\n.markdown-body h4 {\n font-size: 1em; }\n\n.markdown-body h5 {\n font-size: 0.875em; }\n\n.markdown-body h6 {\n font-size: 0.85em;\n color: #6a737d; }\n\n.markdown-body ul,\n.markdown-body ol {\n padding-left: 2em; }\n .markdown-body ul.no-list,\n .markdown-body ol.no-list {\n padding: 0;\n list-style-type: none; }\n\n.markdown-body ul ul,\n.markdown-body ul ol,\n.markdown-body ol ol,\n.markdown-body ol ul {\n margin-top: 0;\n margin-bottom: 0; }\n\n.markdown-body li {\n word-wrap: break-all; }\n\n.markdown-body li > p {\n margin-top: 16px; }\n\n.markdown-body li + li {\n margin-top: 0.25em; }\n\n.markdown-body dl {\n padding: 0; }\n .markdown-body dl dt {\n padding: 0;\n margin-top: 16px;\n font-size: 1em;\n font-style: italic;\n font-weight: 600; }\n .markdown-body dl dd {\n padding: 0 16px;\n margin-bottom: 16px; }\n\n.markdown-body table {\n display: block;\n width: 100%;\n overflow: auto; }\n .markdown-body table th {\n font-weight: 600; }\n .markdown-body table th,\n .markdown-body table td {\n padding: 6px 13px;\n border: 1px solid #dfe2e5; }\n .markdown-body table tr {\n background-color: #fff;\n border-top: 1px solid #c6cbd1; }\n .markdown-body table tr:nth-child(2n) {\n background-color: #f6f8fa; }\n .markdown-body table img {\n background-color: transparent; }\n\n.markdown-body img {\n max-width: 100%;\n box-sizing: content-box;\n background-color: #fff; }\n .markdown-body img[align=right] {\n padding-left: 20px; }\n .markdown-body img[align=left] {\n padding-right: 20px; }\n\n.markdown-body .emoji {\n max-width: none;\n vertical-align: text-top;\n background-color: transparent; }\n\n.markdown-body span.frame {\n display: block;\n overflow: hidden; }\n .markdown-body span.frame > span {\n display: block;\n float: left;\n width: auto;\n padding: 7px;\n margin: 13px 0 0;\n overflow: hidden;\n border: 1px solid #dfe2e5; }\n .markdown-body span.frame span img {\n display: block;\n float: left; }\n .markdown-body span.frame span span {\n display: block;\n padding: 5px 0 0;\n clear: both;\n color: #24292e; }\n\n.markdown-body span.align-center {\n display: block;\n overflow: hidden;\n clear: both; }\n .markdown-body span.align-center > span {\n display: block;\n margin: 13px auto 0;\n overflow: hidden;\n text-align: center; }\n .markdown-body span.align-center span img {\n margin: 0 auto;\n text-align: center; }\n\n.markdown-body span.align-right {\n display: block;\n overflow: hidden;\n clear: both; }\n .markdown-body span.align-right > span {\n display: block;\n margin: 13px 0 0;\n overflow: hidden;\n text-align: right; }\n .markdown-body span.align-right span img {\n margin: 0;\n text-align: right; }\n\n.markdown-body span.float-left {\n display: block;\n float: left;\n margin-right: 13px;\n overflow: hidden; }\n .markdown-body span.float-left span {\n margin: 13px 0 0; }\n\n.markdown-body span.float-right {\n display: block;\n float: right;\n margin-left: 13px;\n overflow: hidden; }\n .markdown-body span.float-right > span {\n display: block;\n margin: 13px auto 0;\n overflow: hidden;\n text-align: right; }\n\n.markdown-body code,\n.markdown-body tt {\n padding: 0.2em 0.4em;\n margin: 0;\n font-size: 85%;\n background-color: rgba(27, 31, 35, 0.05);\n border-radius: 3px; }\n .markdown-body code br,\n .markdown-body tt br {\n display: none; }\n\n.markdown-body del code {\n text-decoration: inherit; }\n\n.markdown-body pre {\n word-wrap: normal; }\n .markdown-body pre > code {\n padding: 0;\n margin: 0;\n font-size: 100%;\n word-break: normal;\n white-space: pre;\n background: transparent;\n border: 0; }\n\n.markdown-body .highlight {\n margin-bottom: 16px; }\n .markdown-body .highlight pre {\n margin-bottom: 0;\n word-break: normal; }\n\n.markdown-body .highlight pre,\n.markdown-body pre {\n padding: 16px;\n overflow: auto;\n font-size: 85%;\n line-height: 1.45;\n background-color: #f6f8fa;\n border-radius: 3px; }\n\n.markdown-body pre code,\n.markdown-body pre tt {\n display: inline;\n max-width: auto;\n padding: 0;\n margin: 0;\n overflow: visible;\n line-height: inherit;\n word-wrap: normal;\n background-color: transparent;\n border: 0; }\n\n.markdown-body .csv-data td,\n.markdown-body .csv-data th {\n padding: 5px;\n overflow: hidden;\n font-size: 12px;\n line-height: 1;\n text-align: left;\n white-space: nowrap; }\n\n.markdown-body .csv-data .blob-num {\n padding: 10px 8px 9px;\n text-align: right;\n background: #fff;\n border: 0; }\n\n.markdown-body .csv-data tr {\n border-top: 0; }\n\n.markdown-body .csv-data th {\n font-weight: 600;\n background: #f6f8fa;\n border-top: 0; }\n\n.position-static {\n position: static !important; }\n\n.position-relative {\n position: relative !important; }\n\n.position-absolute {\n position: absolute !important; }\n\n.position-fixed {\n position: fixed !important; }\n\n.position-sticky {\n position: sticky !important; }\n\n@media (min-width: 544px) {\n .position-sm-static {\n position: static !important; }\n .position-sm-relative {\n position: relative !important; }\n .position-sm-absolute {\n position: absolute !important; }\n .position-sm-fixed {\n position: fixed !important; }\n .position-sm-sticky {\n position: sticky !important; } }\n\n@media (min-width: 768px) {\n .position-md-static {\n position: static !important; }\n .position-md-relative {\n position: relative !important; }\n .position-md-absolute {\n position: absolute !important; }\n .position-md-fixed {\n position: fixed !important; }\n .position-md-sticky {\n position: sticky !important; } }\n\n@media (min-width: 1012px) {\n .position-lg-static {\n position: static !important; }\n .position-lg-relative {\n position: relative !important; }\n .position-lg-absolute {\n position: absolute !important; }\n .position-lg-fixed {\n position: fixed !important; }\n .position-lg-sticky {\n position: sticky !important; } }\n\n@media (min-width: 1280px) {\n .position-xl-static {\n position: static !important; }\n .position-xl-relative {\n position: relative !important; }\n .position-xl-absolute {\n position: absolute !important; }\n .position-xl-fixed {\n position: fixed !important; }\n .position-xl-sticky {\n position: sticky !important; } }\n\n/* Set top 0 */\n.top-0 {\n top: 0 !important; }\n\n/* Set right 0 */\n.right-0 {\n right: 0 !important; }\n\n/* Set bottom 0 */\n.bottom-0 {\n bottom: 0 !important; }\n\n/* Set left 0 */\n.left-0 {\n left: 0 !important; }\n\n/* Vertical align middle */\n.v-align-middle {\n vertical-align: middle !important; }\n\n/* Vertical align top */\n.v-align-top {\n vertical-align: top !important; }\n\n/* Vertical align bottom */\n.v-align-bottom {\n vertical-align: bottom !important; }\n\n/* Vertical align to the top of the text */\n.v-align-text-top {\n vertical-align: text-top !important; }\n\n/* Vertical align to the bottom of the text */\n.v-align-text-bottom {\n vertical-align: text-bottom !important; }\n\n/* Vertical align to the parent's baseline */\n.v-align-baseline {\n vertical-align: baseline !important; }\n\n.overflow-visible {\n overflow: visible !important; }\n\n.overflow-x-visible {\n overflow-x: visible !important; }\n\n.overflow-y-visible {\n overflow-y: visible !important; }\n\n.overflow-hidden {\n overflow: hidden !important; }\n\n.overflow-x-hidden {\n overflow-x: hidden !important; }\n\n.overflow-y-hidden {\n overflow-y: hidden !important; }\n\n.overflow-auto {\n overflow: auto !important; }\n\n.overflow-x-auto {\n overflow-x: auto !important; }\n\n.overflow-y-auto {\n overflow-y: auto !important; }\n\n.overflow-scroll {\n overflow: scroll !important; }\n\n.overflow-x-scroll {\n overflow-x: scroll !important; }\n\n.overflow-y-scroll {\n overflow-y: scroll !important; }\n\n/* Clear floats around the element */\n.clearfix::before {\n display: table;\n content: \"\"; }\n\n.clearfix::after {\n display: table;\n clear: both;\n content: \"\"; }\n\n/* Float to the left */\n.float-left {\n float: left !important; }\n\n/* Float to the right */\n.float-right {\n float: right !important; }\n\n/* No float */\n.float-none {\n float: none !important; }\n\n@media (min-width: 544px) {\n /* Float to the left */\n .float-sm-left {\n float: left !important; }\n /* Float to the right */\n .float-sm-right {\n float: right !important; }\n /* No float */\n .float-sm-none {\n float: none !important; } }\n\n@media (min-width: 768px) {\n /* Float to the left */\n .float-md-left {\n float: left !important; }\n /* Float to the right */\n .float-md-right {\n float: right !important; }\n /* No float */\n .float-md-none {\n float: none !important; } }\n\n@media (min-width: 1012px) {\n /* Float to the left */\n .float-lg-left {\n float: left !important; }\n /* Float to the right */\n .float-lg-right {\n float: right !important; }\n /* No float */\n .float-lg-none {\n float: none !important; } }\n\n@media (min-width: 1280px) {\n /* Float to the left */\n .float-xl-left {\n float: left !important; }\n /* Float to the right */\n .float-xl-right {\n float: right !important; }\n /* No float */\n .float-xl-none {\n float: none !important; } }\n\n/* Max width 100% */\n.width-fit {\n max-width: 100% !important; }\n\n/* Set the width to 100% */\n.width-full {\n width: 100% !important; }\n\n/* Max height 100% */\n.height-fit {\n max-height: 100% !important; }\n\n/* Set the height to 100% */\n.height-full {\n height: 100% !important; }\n\n/* Remove min-width from element */\n.min-width-0 {\n min-width: 0 !important; }\n\n.width-auto {\n width: auto !important; }\n\n/* Set the direction to rtl */\n.direction-rtl {\n direction: rtl !important; }\n\n/* Set the direction to ltr */\n.direction-ltr {\n direction: ltr !important; }\n\n@media (min-width: 544px) {\n .width-sm-auto {\n width: auto !important; }\n /* Set the direction to rtl */\n .direction-sm-rtl {\n direction: rtl !important; }\n /* Set the direction to ltr */\n .direction-sm-ltr {\n direction: ltr !important; } }\n\n@media (min-width: 768px) {\n .width-md-auto {\n width: auto !important; }\n /* Set the direction to rtl */\n .direction-md-rtl {\n direction: rtl !important; }\n /* Set the direction to ltr */\n .direction-md-ltr {\n direction: ltr !important; } }\n\n@media (min-width: 1012px) {\n .width-lg-auto {\n width: auto !important; }\n /* Set the direction to rtl */\n .direction-lg-rtl {\n direction: rtl !important; }\n /* Set the direction to ltr */\n .direction-lg-ltr {\n direction: ltr !important; } }\n\n@media (min-width: 1280px) {\n .width-xl-auto {\n width: auto !important; }\n /* Set the direction to rtl */\n .direction-xl-rtl {\n direction: rtl !important; }\n /* Set the direction to ltr */\n .direction-xl-ltr {\n direction: ltr !important; } }\n\nheader .header {\n padding: 1.75rem 1.5rem 2rem 1.5rem; }\n\nheader .title-main {\n font-size: 2.5rem;\n font-family: \"Product Sans\", -apple-system, BlinkMacSystemFont, \"SF Pro Text\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", \"PingFang SC\", \"Hiragino Sans GB\", \"Source Han Sans CN\", \"Source Han Sans SC\", \"Microsoft YaHei\", \"WenQuanYi Micro Hei\", sans-serif;\n font-weight: 700;\n white-space: nowrap; }\n\nheader .title-sub {\n margin: 0 0.1rem;\n display: block;\n white-space: nowrap;\n scrollbar-width: none;\n -ms-overflow-style: none; }\n header .title-sub::-webkit-scrollbar {\n display: none; }\n\n.content {\n padding: 1.5rem 1.5rem 0 1.5rem; }\n\n.post:not(:first-child) {\n padding: 1.5rem 0; }\n\n.post:first-child {\n padding: 0 0 1.5rem 0; }\n\n.post-title {\n font-size: 1.75rem; }\n\n.post-meta {\n display: flex;\n align-items: center;\n margin: 0.5rem 0.1rem 1rem 0.1rem;\n flex-wrap: wrap; }\n .post-meta span {\n display: flex;\n align-items: center; }\n .post-meta span:not(:last-child) {\n padding-right: 1.5rem; }\n\n.post-summary {\n margin: 0 0.1rem; }\n .post-summary p:last-child {\n margin-bottom: 0; }\n .post-summary h1,\n .post-summary h2,\n .post-summary h3,\n .post-summary h4,\n .post-summary h5,\n .post-summary h6 {\n display: none; }\n\n.post-meta-archive {\n display: flex;\n align-items: center;\n margin: 0.5rem 0.1rem 0 0.1rem;\n flex-wrap: wrap; }\n .post-meta-archive span:not(:last-child) {\n padding-right: 1.5rem; }\n\n.pagination {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.25rem;\n line-height: 1.25rem;\n padding: 1.25rem 0; }\n .pagination div {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem; }\n .pagination div a {\n display: flex;\n align-items: center; }\n\n.page-info {\n padding: 0 0.1rem 1.5rem 0.1rem; }\n\narticle {\n padding-bottom: 1.5rem; }\n article .post-content {\n margin: 1.25rem 0.1rem 0 0.1rem; }\n\n.license {\n margin-bottom: 1.5rem; }\n\n.post-loading {\n margin: 0 0 1.5rem 0;\n padding-top: 1.5rem;\n text-align: center; }\n .post-loading i {\n font-size: 1.25rem; }\n .post-loading p {\n margin: 0.5rem 0 0 0; }\n\n.markdown-body h1 {\n font-size: 1.75rem;\n margin-top: 1.5rem; }\n\n.markdown-body h2 {\n font-size: 1.5rem;\n margin-top: 1.375rem; }\n\n.markdown-body h3 {\n font-size: 1.25rem;\n margin-top: 1.25rem; }\n\n.markdown-body h4 {\n margin-top: 1.25rem; }\n\n.markdown-body ul {\n list-style-type: circle; }\n\n.markdown-body img {\n max-width: 98%;\n margin: 0 0.25rem 0.5rem 0.25rem; }\n\n.post-comment span.post-comment-notloaded {\n display: flex;\n align-items: center;\n justify-content: center; }\n\n#disqus_thread {\n padding: 1.25rem 0; }\n\n.sidebar {\n padding: 1.5rem 1.5rem 1.5rem 0; }\n\n.sidebar-item:not(:last-child) {\n margin-bottom: 1rem; }\n\n.sidebar-item h3 {\n margin-bottom: 0.25rem; }\n\n.sidebar-item ul {\n list-style-type: none;\n margin: 0 0.1rem; }\n\n.sidebar-item > div,\n.sidebar-item > nav {\n margin: 0 0.1rem; }\n\n.sidebar-item > img {\n margin: 0.5rem 0.25rem 0 0.25rem;\n width: 100%;\n border-radius: 2px; }\n\n@media screen and (max-width: 768px) {\n .sidebar {\n padding: 1.5rem;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: space-around; }\n .sidebar-item {\n width: 40%; }\n .sidebar-item .sidebar-pages,\n .sidebar-item .sidebar-tags {\n margin-bottom: 1rem; }\n .sidebar-item .sidebar-links,\n .sidebar-item .sidebar-bgm {\n margin-bottom: 0; }\n .sidebar-item > img {\n margin: 0.5rem 0.25rem 0 0.25rem;\n width: 75%;\n border-radius: 0.25rem; } }\n\n.sidebar-toc ul ul {\n font-size: 0.875rem;\n padding-left: 0.5rem;\n margin-bottom: 0.25rem; }\n\nfooter .footer {\n padding: 2rem 1.5rem;\n text-align: center; }\n footer .footer i {\n font-size: 0.875rem; }\n\n.btn {\n position: fixed;\n right: 1.5rem;\n bottom: 1.5rem;\n width: 2.5rem;\n height: 5rem;\n display: flex;\n justify-content: space-between;\n flex-direction: column; }\n .btn div {\n flex: 0 1 auto;\n width: 2.5rem;\n height: 2.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer; }\n .btn div:first-child {\n border-radius: 0.25rem 0.25rem 0 0;\n font-size: 1.25rem; }\n .btn div:last-child {\n border-radius: 0 0 0.25rem 0.25rem;\n font-size: 1.5rem; }\n\n#post-aplayer {\n margin: 0 0.125rem 1.25rem 0.125rem;\n font-family: inherit; }\n\nbody[data-theme='auto'] {\n --color-mode: 'light';\n --color-primary: #8aa2d3;\n --color-secondary: #8f82bc;\n --color-focus: #3b469b;\n --color-mute: #9ea1a3;\n --color-font: #3f4551;\n --color-divider: #e5e2e4;\n --color-bg: #fffffd;\n --color-codebg: #f6f8fa; }\n @media (prefers-color-scheme: dark) {\n body[data-theme='auto'] {\n --color-mode: 'dark';\n --color-primary: #8aa2d3;\n --color-secondary: #bab1df;\n --color-focus: #e6e6e6;\n --color-mute: #9ea1a3;\n --color-font: #c0c0c0;\n --color-divider: #4d5158;\n --color-bg: #2f3136;\n --color-codebg: #414449; }\n body[data-theme='auto'] img {\n filter: brightness(60%); }\n body[data-theme='auto'] table th,\n body[data-theme='auto'] table td {\n border-color: var(--color-font); }\n body[data-theme='auto'] table tr {\n background-color: var(--color-bg);\n border-color: var(--color-font); }\n body[data-theme='auto'] table tr:nth-child(2n) {\n background-color: var(--color-divider); }\n body[data-theme='auto'] #post-aplayer {\n background-color: var(--color-divider); }\n body[data-theme='auto'] .aplayer .aplayer-info .aplayer-music .aplayer-author {\n color: var(--color-font) !important; }\n body[data-theme='auto'] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path {\n fill: var(--color-font) !important; }\n body[data-theme='auto'] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path {\n fill: var(--color-focus) !important; } }\n\nbody[data-theme='light'] {\n --color-mode: 'light';\n --color-primary: #8aa2d3;\n --color-secondary: #8f82bc;\n --color-focus: #3b469b;\n --color-mute: #9ea1a3;\n --color-font: #3f4551;\n --color-divider: #e5e2e4;\n --color-bg: #fffffd;\n --color-codebg: #f6f8fa; }\n\nbody[data-theme='dark'] {\n --color-mode: 'dark';\n --color-primary: #8aa2d3;\n --color-secondary: #bab1df;\n --color-focus: #e6e6e6;\n --color-mute: #9ea1a3;\n --color-font: #c0c0c0;\n --color-divider: #4d5158;\n --color-bg: #2f3136;\n --color-codebg: #414449; }\n body[data-theme='dark'] img {\n filter: brightness(60%); }\n body[data-theme='dark'] table th,\n body[data-theme='dark'] table td {\n border-color: var(--color-font); }\n body[data-theme='dark'] table tr {\n background-color: var(--color-bg);\n border-color: var(--color-font); }\n body[data-theme='dark'] table tr:nth-child(2n) {\n background-color: var(--color-divider); }\n body[data-theme='dark'] #post-aplayer {\n background-color: var(--color-divider); }\n body[data-theme='dark'] .aplayer .aplayer-info .aplayer-music .aplayer-author {\n color: var(--color-font) !important; }\n body[data-theme='dark'] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path {\n fill: var(--color-font) !important; }\n body[data-theme='dark'] .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path {\n fill: var(--color-focus) !important; }\n\n::selection,\n::-moz-selection {\n color: var(--color-bg);\n background-color: var(--color-primary); }\n\nbody {\n background-color: var(--color-bg);\n color: var(--color-font); }\n body a {\n color: var(--color-primary); }\n body a:hover {\n color: var(--color-secondary); }\n\n.post-summary a,\n.post-meta a {\n color: var(--color-secondary); }\n\n.post-summary a:hover,\n.post-meta a:hover {\n color: var(--color-focus); }\n\n.pag-current a,\n.pag-current a:hover {\n color: var(--color-focus); }\n\n.title-sub,\n.post-meta {\n color: var(--color-mute); }\n\nheader,\n.page-info {\n border-bottom: 2px solid var(--color-divider); }\n\n.post + .post,\n.pagination,\nfooter {\n border-top: 2px solid var(--color-divider); }\n\n.post-meta-archive {\n color: var(--color-mute); }\n .post-meta-archive a {\n color: var(--color-secondary); }\n .post-meta-archive a:hover {\n color: var(--color-focus); }\n\n@media screen and (max-width: 768px) {\n .sidebar {\n border-top: 2px solid var(--color-divider); } }\n\n.post-content a {\n color: var(--color-secondary); }\n\n.post-content a:hover {\n color: var(--color-focus); }\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6,\n.markdown-body strong,\n.markdown-body em {\n color: var(--color-primary); }\n\n.markdown-body h1,\n.markdown-body h2 {\n border-bottom: 2px solid var(--color-divider); }\n\n.markdown-body blockquote {\n color: var(--color-mute); }\n\n.markdown-body img {\n border-radius: 2px;\n background-color: inherit; }\n\n.markdown-body hr {\n height: 2px; }\n\n.markdown-body pre,\n.markdown-body code {\n background-color: var(--color-codebg); }\n\n.post-loading {\n border-top: 2px solid var(--color-divider); }\n\n.post-comment {\n border-top: 2px solid var(--color-divider); }\n .post-comment span.post-comment-notloaded {\n padding: 1.5rem 0;\n color: var(--color-secondary);\n cursor: pointer; }\n .post-comment span.post-comment-notloaded:hover {\n color: var(--color-focus); }\n\n.btn div {\n background-color: var(--color-divider);\n color: var(--color-primary); }\n\n.btn div:hover {\n background-color: var(--color-primary);\n color: var(--color-divider); }\n\n.btn div + div {\n border-top: 2px solid var(--color-bg); }\n\ncode[class*='language-'],\npre[class*='language-'] {\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4; }\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n color: #93a1a1;\n /* base1 */ }\n\n.token.punctuation {\n color: #586e75;\n /* base01 */ }\n\n.token.namespace {\n opacity: 0.7; }\n\n.token.property,\n.token.tag,\n.token.boolean,\n.token.number,\n.token.constant,\n.token.symbol,\n.token.deleted {\n color: #268bd2;\n /* blue */ }\n\n.token.selector,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.builtin,\n.token.url,\n.token.inserted {\n color: #2aa198;\n /* cyan */ }\n\n.token.entity {\n color: #657b83;\n /* base00 */\n background: #eee8d5;\n /* base2 */ }\n\n.token.atrule,\n.token.attr-value,\n.token.keyword {\n color: #859900;\n /* green */ }\n\n.token.function,\n.token.class-name {\n color: #b58900;\n /* yellow */ }\n\n.token.regex,\n.token.important,\n.token.variable {\n color: #cb4b16;\n /* orange */ }\n\n.token.important,\n.token.bold {\n font-weight: 600; }\n\n.token.italic {\n font-style: italic; }\n\npre .rule,\ncode .rule {\n margin: 0;\n border-bottom: none;\n overflow: inherit; }\n pre .rule::before, pre .rule::after,\n code .rule::before,\n code .rule::after {\n display: inherit;\n clear: inherit; }\n\n#dsqjs a {\n text-decoration: none !important;\n color: var(--color-secondary) !important; }\n\n#dsqjs a:hover {\n color: var(--color-focus) !important; }\n\n#dsqjs .dsqjs-bullet::after {\n color: var(--color-mute) !important;\n font-weight: 600 !important; }\n\n#dsqjs .dsqjs-no-comment {\n color: var(--color-font) !important; }\n\n#dsqjs .dsqjs-nav-tab {\n color: var(--color-mute) !important; }\n\n#dsqjs .dsqjs-tab-active {\n color: var(--color-font) !important; }\n #dsqjs .dsqjs-tab-active > span:after {\n background-color: var(--color-secondary) !important; }\n\n#dsqjs .dsqjs-post-list .dsqjs-post-avatar {\n background: var(--color-bg) !important; }\n\n#dsqjs .dsqjs-post-list .dsqjs-post-header .dsqjs-post-author {\n color: var(--color-mute) !important;\n font-weight: 600; }\n\n#dsqjs .dsqjs-post-list .dsqjs-post-header .dsqjs-admin-badge {\n color: var(--color-font) !important;\n background: var(--color-codebg) !important; }\n\n#dsqjs .dsqjs-post-list .dsqjs-post-header .dsqjs-meta {\n color: var(--color-mute) !important; }\n\n#dsqjs .dsqjs-post-body {\n color: var(--color-font) !important; }\n #dsqjs .dsqjs-post-body code,\n #dsqjs .dsqjs-post-body pre {\n background: var(--color-codebg) !important; }\n #dsqjs .dsqjs-post-body blockquote {\n color: var(--color-codebg) !important;\n border-left: 0.25em solid var(--color-divider) !important; }\n\n#dsqjs .dsqjs-load-more {\n background: var(--color-mute) !important;\n color: var(--color-bg) !important; }\n\n#dsqjs footer {\n border-top: 2px solid var(--color-divider) !important;\n font-weight: 600 !important;\n color: var(--color-mute) !important; }\n\n#dsqjs .dsqjs-order-radio:checked + .dsqjs-order-label {\n color: var(--color-font) !important;\n background-color: var(--color-divider) !important; }\n\n#dsqjs .dsqjs-order-label {\n background-color: var(--color-bg) !important; }\n\n#dsqjs p.dsqjs-has-more a.dsqjs-has-more-btn {\n color: var(--color-mute) !important; }\n","* {\r\n box-sizing: border-box;\r\n}\r\n\r\n// sticky footer\r\nhtml {\r\n height: 100%;\r\n scroll-behavior: smooth;\r\n}\r\n\r\nbody {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n scroll-behavior: smooth;\r\n}\r\n\r\nmain {\r\n flex: 1 1 auto;\r\n}\r\n\r\n// remove text decoration\r\na:hover {\r\n text-decoration: none !important;\r\n}\r\n","// stylelint-disable\r\n/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */\r\n\r\n/**\r\n * 1. Change the default font family in all browsers (opinionated).\r\n * 2. Prevent adjustments of font size after orientation changes in IE and iOS.\r\n */\r\n\r\nhtml {\r\n font-family: sans-serif; /* 1 */\r\n -ms-text-size-adjust: 100%; /* 2 */\r\n -webkit-text-size-adjust: 100%; /* 2 */\r\n}\r\n\r\n/**\r\n * Remove the margin in all browsers (opinionated).\r\n */\r\n\r\nbody {\r\n margin: 0;\r\n}\r\n\r\n/* HTML5 display definitions\r\n ========================================================================== */\r\n\r\n/**\r\n * Add the correct display in IE 9-.\r\n * 1. Add the correct display in Edge, IE, and Firefox.\r\n * 2. Add the correct display in IE.\r\n */\r\n\r\narticle,\r\naside,\r\ndetails, /* 1 */\r\nfigcaption,\r\nfigure,\r\nfooter,\r\nheader,\r\nmain, /* 2 */\r\nmenu,\r\nnav,\r\nsection { /* 1 */\r\n display: block;\r\n}\r\n\r\nsummary {\r\n display: list-item;\r\n}\r\n\r\n/**\r\n * Add the correct display in IE 9-.\r\n */\r\n\r\naudio,\r\ncanvas,\r\nprogress,\r\nvideo {\r\n display: inline-block;\r\n}\r\n\r\n/**\r\n * Add the correct display in iOS 4-7.\r\n */\r\n\r\naudio:not([controls]) {\r\n display: none;\r\n height: 0;\r\n}\r\n\r\n/**\r\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\r\n */\r\n\r\nprogress {\r\n vertical-align: baseline;\r\n}\r\n\r\n/**\r\n * Add the correct display in IE 10-.\r\n * 1. Add the correct display in IE.\r\n */\r\n\r\ntemplate, /* 1 */\r\n[hidden] {\r\n display: none !important;\r\n}\r\n\r\n/* Links\r\n ========================================================================== */\r\n\r\n/**\r\n * Remove the gray background on active links in IE 10.\r\n */\r\n\r\na {\r\n background-color: transparent; /* 1 */\r\n}\r\n\r\n/**\r\n * Remove the outline on focused links when they are also active or hovered\r\n * in all browsers (opinionated).\r\n */\r\n\r\na:active,\r\na:hover {\r\n outline-width: 0;\r\n}\r\n\r\n/* Text-level semantics\r\n ========================================================================== */\r\n\r\n/**\r\n * 1. Remove the bottom border in Firefox 39-.\r\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\r\n */\r\n\r\nabbr[title] {\r\n border-bottom: none; /* 1 */\r\n text-decoration: underline; /* 2 */\r\n text-decoration: underline dotted; /* 2 */\r\n}\r\n\r\n/**\r\n * Prevent the duplicate application of `bolder` by the next rule in Safari 6.\r\n */\r\n\r\nb,\r\nstrong {\r\n font-weight: inherit;\r\n}\r\n\r\n/**\r\n * Add the correct font weight in Chrome, Edge, and Safari.\r\n */\r\n\r\nb,\r\nstrong {\r\n font-weight: bolder;\r\n}\r\n\r\n/**\r\n * Add the correct font style in Android 4.3-.\r\n */\r\n\r\ndfn {\r\n font-style: italic;\r\n}\r\n\r\n/**\r\n * Correct the font size and margin on `h1` elements within `section` and\r\n * `article` contexts in Chrome, Firefox, and Safari.\r\n */\r\n\r\nh1 {\r\n font-size: 2em;\r\n margin: 0.67em 0;\r\n}\r\n\r\n/**\r\n * Add the correct background and color in IE 9-.\r\n */\r\n\r\nmark {\r\n background-color: #ff0;\r\n color: $text-black;\r\n}\r\n\r\n/**\r\n * Add the correct font size in all browsers.\r\n */\r\n\r\nsmall {\r\n font-size: 80%;\r\n}\r\n\r\n/**\r\n * Prevent `sub` and `sup` elements from affecting the line height in\r\n * all browsers.\r\n */\r\n\r\nsub,\r\nsup {\r\n font-size: 75%;\r\n line-height: 0;\r\n position: relative;\r\n vertical-align: baseline;\r\n}\r\n\r\nsub {\r\n bottom: -0.25em;\r\n}\r\n\r\nsup {\r\n top: -0.5em;\r\n}\r\n\r\n/* Embedded content\r\n ========================================================================== */\r\n\r\n/**\r\n * Remove the border on images inside links in IE 10-.\r\n */\r\n\r\nimg {\r\n border-style: none;\r\n}\r\n\r\n/**\r\n * Hide the overflow in IE.\r\n */\r\n\r\nsvg:not(:root) {\r\n overflow: hidden;\r\n}\r\n\r\n/* Grouping content\r\n ========================================================================== */\r\n\r\n/**\r\n * 1. Correct the inheritance and scaling of font size in all browsers.\r\n * 2. Correct the odd `em` font sizing in all browsers.\r\n */\r\n\r\ncode,\r\nkbd,\r\npre,\r\nsamp {\r\n font-family: monospace, monospace; /* 1 */\r\n font-size: 1em; /* 2 */\r\n}\r\n\r\n/**\r\n * Add the correct margin in IE 8.\r\n */\r\n\r\nfigure {\r\n margin: 1em $spacer-6;\r\n}\r\n\r\n/**\r\n * 1. Add the correct box sizing in Firefox.\r\n * 2. Show the overflow in Edge and IE.\r\n */\r\n\r\nhr {\r\n box-sizing: content-box; /* 1 */\r\n height: 0; /* 1 */\r\n overflow: visible; /* 2 */\r\n}\r\n\r\n/* Forms\r\n ========================================================================== */\r\n\r\n/**\r\n * 1. Change font properties to `inherit` in all browsers (opinionated).\r\n * 2. Remove the margin in Firefox and Safari.\r\n */\r\n\r\nbutton,\r\ninput,\r\nselect,\r\ntextarea {\r\n font: inherit; /* 1 */\r\n margin: 0; /* 2 */\r\n}\r\n\r\n/**\r\n * Restore the font weight unset by the previous rule.\r\n */\r\n\r\noptgroup {\r\n font-weight: $font-weight-bold;\r\n}\r\n\r\n/**\r\n * Show the overflow in IE.\r\n * 1. Show the overflow in Edge.\r\n */\r\n\r\nbutton,\r\ninput { /* 1 */\r\n overflow: visible;\r\n}\r\n\r\n/**\r\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\r\n * 1. Remove the inheritance of text transform in Firefox.\r\n */\r\n\r\nbutton,\r\nselect { /* 1 */\r\n text-transform: none;\r\n}\r\n\r\n/**\r\n * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\r\n * controls in Android 4.\r\n * 2. Correct the inability to style clickable types in iOS and Safari.\r\n */\r\n\r\nbutton,\r\nhtml [type=\"button\"], /* 1 */\r\n[type=\"reset\"],\r\n[type=\"submit\"] {\r\n -webkit-appearance: button; /* 2 */\r\n}\r\n\r\n/**\r\n * Remove the inner border and padding in Firefox.\r\n */\r\n\r\nbutton::-moz-focus-inner,\r\n[type=\"button\"]::-moz-focus-inner,\r\n[type=\"reset\"]::-moz-focus-inner,\r\n[type=\"submit\"]::-moz-focus-inner {\r\n border-style: none;\r\n padding: 0;\r\n}\r\n\r\n/**\r\n * Restore the focus styles unset by the previous rule.\r\n */\r\n\r\nbutton:-moz-focusring,\r\n[type=\"button\"]:-moz-focusring,\r\n[type=\"reset\"]:-moz-focusring,\r\n[type=\"submit\"]:-moz-focusring {\r\n outline: 1px dotted ButtonText;\r\n}\r\n\r\n/**\r\n * Change the border, margin, and padding in all browsers (opinionated).\r\n */\r\n\r\nfieldset {\r\n border: $border-width $border-style #c0c0c0;\r\n margin: 0 2px;\r\n padding: 0.35em 0.625em $em-spacer-6;\r\n}\r\n\r\n/**\r\n * 1. Correct the text wrapping in Edge and IE.\r\n * 2. Correct the color inheritance from `fieldset` elements in IE.\r\n * 3. Remove the padding so developers are not caught out when they zero out\r\n * `fieldset` elements in all browsers.\r\n */\r\n\r\nlegend {\r\n box-sizing: border-box; /* 1 */\r\n color: inherit; /* 2 */\r\n display: table; /* 1 */\r\n max-width: 100%; /* 1 */\r\n padding: 0; /* 3 */\r\n white-space: normal; /* 1 */\r\n}\r\n\r\n/**\r\n * Remove the default vertical scrollbar in IE.\r\n */\r\n\r\ntextarea {\r\n overflow: auto;\r\n}\r\n\r\n/**\r\n * 1. Add the correct box sizing in IE 10-.\r\n * 2. Remove the padding in IE 10-.\r\n */\r\n\r\n[type=\"checkbox\"],\r\n[type=\"radio\"] {\r\n box-sizing: border-box; /* 1 */\r\n padding: 0; /* 2 */\r\n}\r\n\r\n/**\r\n * Correct the cursor style of increment and decrement buttons in Chrome.\r\n */\r\n\r\n[type=\"number\"]::-webkit-inner-spin-button,\r\n[type=\"number\"]::-webkit-outer-spin-button {\r\n height: auto;\r\n}\r\n\r\n/**\r\n * 1. Correct the odd appearance in Chrome and Safari.\r\n * 2. Correct the outline style in Safari.\r\n */\r\n\r\n[type=\"search\"] {\r\n -webkit-appearance: textfield; /* 1 */\r\n outline-offset: -2px; /* 2 */\r\n}\r\n\r\n/**\r\n * Remove the inner padding and cancel buttons in Chrome and Safari on OS X.\r\n */\r\n\r\n[type=\"search\"]::-webkit-search-cancel-button,\r\n[type=\"search\"]::-webkit-search-decoration {\r\n -webkit-appearance: none;\r\n}\r\n\r\n/**\r\n * Correct the text style of placeholders in Chrome, Edge, and Safari.\r\n */\r\n\r\n::-webkit-input-placeholder {\r\n color: inherit;\r\n opacity: 0.54;\r\n}\r\n\r\n/**\r\n * 1. Correct the inability to style clickable types in iOS and Safari.\r\n * 2. Change font properties to `inherit` in Safari.\r\n */\r\n\r\n::-webkit-file-upload-button {\r\n -webkit-appearance: button; /* 1 */\r\n font: inherit; /* 2 */\r\n}\r\n","// stylelint-disable selector-max-type\r\n* {\r\n box-sizing: border-box;\r\n}\r\n\r\ninput,\r\nselect,\r\ntextarea,\r\nbutton {\r\n font-family: inherit;\r\n font-size: inherit;\r\n line-height: inherit;\r\n}\r\n\r\nbody {\r\n font-family: $body-font;\r\n font-size: $body-font-size;\r\n line-height: $body-line-height;\r\n color: $text-gray-dark;\r\n background-color: $bg-white;\r\n}\r\n\r\na {\r\n color: $text-blue;\r\n text-decoration: none;\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n}\r\n\r\nb,\r\nstrong {\r\n font-weight: $font-weight-bold;\r\n}\r\n\r\n// Horizontal lines\r\n//\r\n// TODO-MDO: Remove `.rule` from everywhere and replace with `<hr>`s\r\nhr,\r\n.rule {\r\n height: 0;\r\n // stylelint-disable-next-line primer/spacing\r\n margin: 15px 0;\r\n overflow: hidden;\r\n background: transparent;\r\n border: 0;\r\n // stylelint-disable-next-line primer/borders\r\n border-bottom: $border-width $border-style lighten($gray-300, 5%);\r\n @include clearfix();\r\n}\r\n\r\n//\r\n// Remove most spacing between table cells.\r\n//\r\n\r\ntable {\r\n border-spacing: 0;\r\n border-collapse: collapse;\r\n}\r\n\r\ntd,\r\nth {\r\n padding: 0;\r\n}\r\n\r\nbutton {\r\n cursor: pointer;\r\n // Remove border radius added by Chrome macOS\r\n border-radius: 0;\r\n}\r\n\r\n// increase the selector specificity for [hidden]\r\n// so that it always overrides utility classes (.d-block, etc.)\r\n[hidden][hidden] {\r\n display: none !important;\r\n}\r\n\r\ndetails {\r\n summary { cursor: pointer; }\r\n\r\n &:not([open]) {\r\n // Set details content hidden by default for browsers that don't do this\r\n > *:not(summary) { display: none !important; }\r\n }\r\n}\r\n","// Typography variables\r\n\r\n// Heading sizes - mobile\r\n// h4-h6 remain the same size on both mobile & desktop\r\n$h00-size-mobile: 40px !default;\r\n$h0-size-mobile: 32px !default;\r\n$h1-size-mobile: 26px !default;\r\n$h2-size-mobile: 22px !default;\r\n$h3-size-mobile: 18px !default;\r\n\r\n// Heading sizes - desktop\r\n$h00-size: 48px !default;\r\n$h0-size: 40px !default;\r\n$h1-size: 32px !default;\r\n$h2-size: 24px !default;\r\n$h3-size: 20px !default;\r\n$h4-size: 16px !default;\r\n$h5-size: 14px !default;\r\n$h6-size: 12px !default;\r\n\r\n$font-size-small: 12px !default;\r\n\r\n// Font weights\r\n$font-weight-bold: 600 !default;\r\n$font-weight-semibold: 500 !default;\r\n$font-weight-normal: 400 !default;\r\n$font-weight-light: 300 !default;\r\n\r\n// Line heights\r\n$lh-condensed-ultra: 1 !default;\r\n$lh-condensed: 1.25 !default;\r\n$lh-default: 1.5 !default;\r\n\r\n// Font stacks\r\n$body-font: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\" !default;\r\n\r\n// Monospace font stack\r\n$mono-font: \"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, monospace !default;\r\n\r\n// The base body size\r\n$body-font-size: 14px !default;\r\n$body-line-height: $lh-default !default;\r\n","// Black based on same hue as $gray-900\r\n$black: #1b1f23 !default;\r\n$white: #fff !default;\r\n\r\n//\r\n//\r\n// -------- Grays --------\r\n$gray-000: #fafbfc !default;\r\n$gray-100: #f6f8fa !default;\r\n$gray-200: #e1e4e8 !default;\r\n$gray-300: #d1d5da !default;\r\n$gray-400: #959da5 !default;\r\n$gray-500: #6a737d !default;\r\n$gray-600: #586069 !default;\r\n$gray-700: #444d56 !default;\r\n$gray-800: #2f363d !default;\r\n$gray-900: #24292e !default; // body font color\r\n\r\n// -------- Blue --------\r\n$blue-000: #f1f8ff !default;\r\n$blue-100: #dbedff !default;\r\n$blue-200: #c8e1ff !default;\r\n$blue-300: #79b8ff !default;\r\n$blue-400: #2188ff !default;\r\n$blue-500: #0366d6 !default; // Default: Passes AA with #fff\r\n$blue-600: #005cc5 !default;\r\n$blue-700: #044289 !default;\r\n$blue-800: #032f62 !default;\r\n$blue-900: #05264c !default; // Passes with 1/2/300 blues\r\n\r\n// -------- Green --------\r\n$green-000: #f0fff4 !default;\r\n$green-100: #dcffe4 !default;\r\n$green-200: #bef5cb !default;\r\n$green-300: #85e89d !default;\r\n$green-400: #34d058 !default;\r\n$green-500: #28a745 !default; // Default. passes AA Large\r\n$green-600: #22863a !default; // Text green, passes AA on #fff\r\n$green-700: #176f2c !default;\r\n$green-800: #165c26 !default;\r\n$green-900: #144620 !default;\r\n\r\n// -------- Yellow --------\r\n$yellow-000: #fffdef !default;\r\n$yellow-100: #fffbdd !default;\r\n$yellow-200: #fff5b1 !default;\r\n$yellow-300: #ffea7f !default;\r\n$yellow-400: #ffdf5d !default;\r\n$yellow-500: #ffd33d !default;\r\n$yellow-600: #f9c513 !default;\r\n$yellow-700: #dbab09 !default;\r\n$yellow-800: #b08800 !default;\r\n$yellow-900: #735c0f !default;\r\n\r\n// -------- Orange --------\r\n$orange-000: #fff8f2 !default;\r\n$orange-100: #ffebda !default;\r\n$orange-200: #ffd1ac !default;\r\n$orange-300: #ffab70 !default;\r\n$orange-400: #fb8532 !default;\r\n$orange-500: #f66a0a !default; // Default. passes AA Large with #fff\r\n$orange-600: #e36209 !default;\r\n$orange-700: #d15704 !default;\r\n$orange-800: #c24e00 !default;\r\n$orange-900: #a04100 !default;\r\n\r\n// -------- Red --------\r\n$red-000: #ffeef0 !default;\r\n$red-100: #ffdce0 !default;\r\n$red-200: #fdaeb7 !default;\r\n$red-300: #f97583 !default;\r\n$red-400: #ea4a5a !default;\r\n$red-500: #d73a49 !default; // Default. passes AA\r\n$red-600: #cb2431 !default;\r\n$red-700: #b31d28 !default;\r\n$red-800: #9e1c23 !default;\r\n$red-900: #86181d !default;\r\n\r\n// -------- Purple --------\r\n$purple-000: #f5f0ff !default;\r\n$purple-100: #e6dcfd !default;\r\n$purple-200: #d1bcf9 !default;\r\n$purple-300: #b392f0 !default;\r\n$purple-400: #8a63d2 !default;\r\n$purple-500: #6f42c1 !default; // passes AA with #fff\r\n$purple-600: #5a32a3 !default;\r\n$purple-700: #4c2889 !default;\r\n$purple-800: #3a1d6e !default;\r\n$purple-900: #29134e !default;\r\n\r\n// -------- Pink --------\r\n$pink-000: #ffeef8 !default;\r\n$pink-100: #fedbf0 !default;\r\n$pink-200: #f9b3dd !default;\r\n$pink-300: #f692ce !default;\r\n$pink-400: #ec6cb9 !default;\r\n$pink-500: #ea4aaa !default;\r\n$pink-600: #d03592 !default;\r\n$pink-700: #b93a86 !default;\r\n$pink-800: #99306f !default;\r\n$pink-900: #6d224f !default;\r\n\r\n// -------- Fades --------\r\n$black-fade-15: rgba($black, 0.15) !default;\r\n$black-fade-30: rgba($black, 0.3) !default;\r\n$black-fade-50: rgba($black, 0.5) !default;\r\n$black-fade-70: rgba($black, 0.7) !default;\r\n$black-fade-85: rgba($black, 0.85) !default;\r\n\r\n$white-fade-15: rgba($white, 0.15) !default;\r\n$white-fade-30: rgba($white, 0.3) !default;\r\n$white-fade-50: rgba($white, 0.5) !default;\r\n$white-fade-70: rgba($white, 0.7) !default;\r\n$white-fade-85: rgba($white, 0.85) !default;\r\n\r\n// -------- Color defaults --------\r\n$red: $red-500 !default;\r\n$purple: $purple-500 !default;\r\n$blue: $blue-500 !default;\r\n$green: $green-500 !default;\r\n$yellow: $yellow-500 !default;\r\n$orange: $orange-500 !default;\r\n\r\n$gray-dark: $gray-900 !default;\r\n$gray-light: $gray-400 !default;\r\n$gray: $gray-500 !default;\r\n\r\n// -------- Color gradient maps --------\r\n\r\n$grays: (\r\n 0: $gray-000,\r\n 1: $gray-100,\r\n 2: $gray-200,\r\n 3: $gray-300,\r\n 4: $gray-400,\r\n 5: $gray-500,\r\n 6: $gray-600,\r\n 7: $gray-700,\r\n 8: $gray-800,\r\n 9: $gray-900,\r\n) !default;\r\n\r\n$blues: (\r\n 0: $blue-000,\r\n 1: $blue-100,\r\n 2: $blue-200,\r\n 3: $blue-300,\r\n 4: $blue-400,\r\n 5: $blue-500,\r\n 6: $blue-600,\r\n 7: $blue-700,\r\n 8: $blue-800,\r\n 9: $blue-900,\r\n) !default;\r\n\r\n$greens: (\r\n 0: $green-000,\r\n 1: $green-100,\r\n 2: $green-200,\r\n 3: $green-300,\r\n 4: $green-400,\r\n 5: $green-500,\r\n 6: $green-600,\r\n 7: $green-700,\r\n 8: $green-800,\r\n 9: $green-900,\r\n) !default;\r\n\r\n$yellows: (\r\n 0: $yellow-000,\r\n 1: $yellow-100,\r\n 2: $yellow-200,\r\n 3: $yellow-300,\r\n 4: $yellow-400,\r\n 5: $yellow-500,\r\n 6: $yellow-600,\r\n 7: $yellow-700,\r\n 8: $yellow-800,\r\n 9: $yellow-900,\r\n) !default;\r\n\r\n$oranges: (\r\n 0: $orange-000,\r\n 1: $orange-100,\r\n 2: $orange-200,\r\n 3: $orange-300,\r\n 4: $orange-400,\r\n 5: $orange-500,\r\n 6: $orange-600,\r\n 7: $orange-700,\r\n 8: $orange-800,\r\n 9: $orange-900,\r\n) !default;\r\n\r\n$reds: (\r\n 0: $red-000,\r\n 1: $red-100,\r\n 2: $red-200,\r\n 3: $red-300,\r\n 4: $red-400,\r\n 5: $red-500,\r\n 6: $red-600,\r\n 7: $red-700,\r\n 8: $red-800,\r\n 9: $red-900,\r\n) !default;\r\n\r\n$purples: (\r\n 0: $purple-000,\r\n 1: $purple-100,\r\n 2: $purple-200,\r\n 3: $purple-300,\r\n 4: $purple-400,\r\n 5: $purple-500,\r\n 6: $purple-600,\r\n 7: $purple-700,\r\n 8: $purple-800,\r\n 9: $purple-900,\r\n) !default;\r\n\r\n$pinks: (\r\n 0: $pink-000,\r\n 1: $pink-100,\r\n 2: $pink-200,\r\n 3: $pink-300,\r\n 4: $pink-400,\r\n 5: $pink-500,\r\n 6: $pink-600,\r\n 7: $pink-700,\r\n 8: $pink-800,\r\n 9: $pink-900,\r\n) !default;\r\n\r\n$hue-maps: (\r\n \"gray\": $grays,\r\n \"blue\": $blues,\r\n \"green\": $greens,\r\n \"yellow\": $yellows,\r\n \"orange\": $oranges,\r\n \"red\": $reds,\r\n \"purple\": $purples,\r\n \"pink\": $pinks,\r\n) !default;\r\n","// Responsive media queries\r\n\r\n@mixin breakpoint($breakpoint) {\r\n @if $breakpoint == \"\" {\r\n @content;\r\n }\r\n\r\n @else {\r\n // Retrieves the value from the key\r\n $value: map-get($breakpoints, $breakpoint);\r\n\r\n // If the key exists in the map\r\n @if $value != null {\r\n // Prints a media query based on the value\r\n @media (min-width: $value) {\r\n @content;\r\n }\r\n }\r\n\r\n // If the key doesn't exist in the map\r\n @else {\r\n @warn \"Unfortunately, no value could be retrieved from `#{$breakpoint}`. \"\r\n + \"Please make sure it is defined in `$breakpoints` map.\";\r\n }\r\n }\r\n}\r\n\r\n// Retina media query\r\n\r\n@mixin retina-media-query {\r\n @media\r\n only screen and (-webkit-min-device-pixel-ratio: 2),\r\n only screen and (min--moz-device-pixel-ratio: 2),\r\n only screen and (-moz-min-device-pixel-ratio: 2),\r\n only screen and (-o-min-device-pixel-ratio: 2/1),\r\n only screen and (min-device-pixel-ratio: 2),\r\n only screen and (min-resolution: 192dpi),\r\n only screen and (min-resolution: 2dppx) {\r\n @content;\r\n }\r\n}\r\n\r\n// Clearfix\r\n//\r\n// Clears floats via mixin.\r\n\r\n@mixin clearfix {\r\n &::before {\r\n display: table;\r\n content: \"\";\r\n }\r\n\r\n &::after {\r\n display: table;\r\n clear: both;\r\n content: \"\";\r\n }\r\n}\r\n","// Keyboard shortcuts\r\n// stylelint-disable selector-max-type\r\n\r\nkbd {\r\n display: inline-block;\r\n // stylelint-disable-next-line primer/spacing\r\n padding: ($spacer-1 - 1) ($spacer-1 + 1);\r\n font: 11px $mono-font;\r\n // stylelint-disable-next-line primer/typography\r\n line-height: 10px;\r\n // stylelint-disable-next-line primer/colors\r\n color: $gray-700;\r\n vertical-align: middle;\r\n background-color: $bg-gray-light;\r\n // stylelint-disable-next-line primer/borders\r\n border: $border-style $border-width $border-gray-dark;\r\n border-bottom-color: $border-gray-dark;\r\n border-radius: $border-radius;\r\n // stylelint-disable-next-line primer/box-shadow\r\n box-shadow: inset 0 -1px 0 $border-gray-dark;\r\n}\r\n","// Miscellaneous variables\r\n\r\n// Border size\r\n$border-width: 1px !default;\r\n$border-color: $border-gray !default;\r\n$border-style: solid !default;\r\n$border: $border-width $border-color $border-style !default;\r\n$border-radius: 3px !default;\r\n\r\n// Box shadow\r\n$box-shadow: 0 1px 1px rgba($black, 0.1) !default;\r\n$box-shadow-medium: 0 1px 5px $black-fade-15 !default;\r\n$box-shadow-large: 0 1px 15px $black-fade-15 !default;\r\n$box-shadow-extra-large: 0 10px 50px rgba($black, 0.07) !default;\r\n\r\n// Button and form variables\r\n$form-control-shadow: inset 0 1px 2px rgba($black, 0.075) !default;\r\n$btn-input-focus-shadow: 0 0 0 0.2em rgba($blue, 0.3) !default;\r\n$btn-active-shadow: inset 0 0.15em 0.3em $black-fade-15 !default;\r\n\r\n// Tooltips\r\n$tooltip-max-width: 250px !default;\r\n$tooltip-background-color: $black !default;\r\n$tooltip-text-color: $white !default;\r\n$tooltip-delay: 0.4s !default;\r\n$tooltip-duration: 0.1s !default;\r\n","// Headings\r\n// --------------------------------------------------\r\n// stylelint-disable selector-max-type\r\nh1,\r\nh2,\r\nh3,\r\nh4,\r\nh5,\r\nh6 {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n}\r\n\r\nh1 { @include h1; }\r\nh2 { @include h2; }\r\nh3 { @include h3; }\r\nh4 { @include h4; }\r\nh5 { @include h5; }\r\nh6 { @include h6; }\r\n\r\n// Body text\r\n// --------------------------------------------------\r\n\r\np {\r\n margin-top: 0;\r\n // stylelint-disable-next-line primer/spacing\r\n margin-bottom: 10px;\r\n}\r\n\r\nsmall {\r\n // stylelint-disable-next-line primer/typography\r\n font-size: 90%;\r\n}\r\n\r\nblockquote {\r\n margin: 0;\r\n}\r\n\r\n// Lists\r\n// --------------------------------------------------\r\n\r\nul,\r\nol {\r\n padding-left: 0;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n}\r\n\r\nol ol,\r\nul ol {\r\n list-style-type: lower-roman;\r\n}\r\n\r\nul ul ol,\r\nul ol ol,\r\nol ul ol,\r\nol ol ol {\r\n list-style-type: lower-alpha;\r\n}\r\n\r\ndd {\r\n margin-left: 0;\r\n}\r\n\r\n// Code\r\n// --------------------------------------------------\r\n\r\ntt,\r\ncode {\r\n font-family: $mono-font;\r\n font-size: $font-size-small;\r\n}\r\n\r\npre {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n font-family: $mono-font;\r\n font-size: $font-size-small;\r\n}\r\n\r\n// Octicons\r\n// --------------------------------------------------\r\n\r\n// Move this over here as a temporary override to the octicons source repo\r\n// instead of updating that upstream.\r\n.octicon {\r\n vertical-align: text-bottom;\r\n}\r\n","// Text hiding for image based text replacement.\r\n// Higher performance than -9999px because it only renders\r\n// the size of the actual text, not a full 9999px box.\r\n@mixin hide-text() {\r\n overflow: hidden;\r\n text-indent: 100%;\r\n white-space: nowrap;\r\n}\r\n\r\n// Heading mixins for use within components\r\n// These match heading utilities in utilities/typography\r\n@mixin h1 {\r\n font-size: $h1-size;\r\n font-weight: $font-weight-bold;\r\n}\r\n\r\n@mixin h2 {\r\n font-size: $h2-size;\r\n font-weight: $font-weight-bold;\r\n}\r\n\r\n@mixin h3 {\r\n font-size: $h3-size;\r\n font-weight: $font-weight-bold;\r\n}\r\n\r\n@mixin h4 {\r\n font-size: $h4-size;\r\n font-weight: $font-weight-bold;\r\n}\r\n\r\n@mixin h5 {\r\n font-size: $h5-size;\r\n font-weight: $font-weight-bold;\r\n}\r\n\r\n@mixin h6 {\r\n font-size: $h6-size;\r\n font-weight: $font-weight-bold;\r\n}\r\n\r\n// Responsive heading mixins\r\n// There are no responsive mixins for h4-h6 because they are small\r\n// and don't need to be smaller on mobile.\r\n@mixin f1-responsive {\r\n font-size: $h1-size-mobile;\r\n\r\n // 32px on desktop\r\n @include breakpoint(md) { font-size: $h1-size; }\r\n\r\n}\r\n\r\n@mixin f2-responsive {\r\n font-size: $h2-size-mobile;\r\n\r\n // 24px on desktop\r\n @include breakpoint(md) { font-size: $h2-size; }\r\n}\r\n\r\n@mixin f3-responsive {\r\n font-size: $h3-size-mobile;\r\n\r\n // 20px on desktop\r\n @include breakpoint(md) { font-size: $h3-size; }\r\n\r\n}\r\n\r\n// These use the mixins from above for responsive heading sizes.\r\n// The following mixins can be used where it's convenient or necessary to\r\n// couple the responsive font-size with the font-weight.\r\n@mixin h1-responsive {\r\n @include f1-responsive;\r\n font-weight: $font-weight-bold;\r\n}\r\n\r\n@mixin h2-responsive {\r\n @include f2-responsive;\r\n font-weight: $font-weight-bold;\r\n}\r\n\r\n@mixin h3-responsive {\r\n @include f3-responsive;\r\n font-weight: $font-weight-bold;\r\n}\r\n","// Fixed-width, centered column for site content.\r\n// Handy container styles that match our breakpoints\r\n\r\n// 544px\r\n.container-sm {\r\n max-width: $width-sm;\r\n margin-right: auto;\r\n margin-left: auto;\r\n}\r\n\r\n// 768px\r\n.container-md {\r\n max-width: $container-md;\r\n margin-right: auto;\r\n margin-left: auto;\r\n}\r\n\r\n// 1004px - this matches the current fixed width: 980px + padding: px-3\r\n.container-lg {\r\n max-width: $container-lg;\r\n margin-right: auto;\r\n margin-left: auto;\r\n}\r\n\r\n// 1280px\r\n.container-xl {\r\n max-width: $container-xl;\r\n margin-right: auto;\r\n margin-left: auto;\r\n}\r\n","// GRID\r\n\r\n// Columns\r\n.col-1 { width: (1 / 12 * 100%); }\r\n.col-2 { width: (2 / 12 * 100%); }\r\n.col-3 { width: (3 / 12 * 100%); }\r\n.col-4 { width: (4 / 12 * 100%); }\r\n.col-5 { width: (5 / 12 * 100%); }\r\n.col-6 { width: (6 / 12 * 100%); }\r\n.col-7 { width: (7 / 12 * 100%); }\r\n.col-8 { width: (8 / 12 * 100%); }\r\n.col-9 { width: (9 / 12 * 100%); }\r\n.col-10 { width: (10 / 12 * 100%); }\r\n.col-11 { width: (11 / 12 * 100%); }\r\n.col-12 { width: 100%; }\r\n\r\n@each $breakpoint in map-keys($breakpoints) {\r\n @include breakpoint($breakpoint) {\r\n .col-#{$breakpoint}-1 { width: ( 1 / 12 * 100%); }\r\n .col-#{$breakpoint}-2 { width: ( 2 / 12 * 100%); }\r\n .col-#{$breakpoint}-3 { width: ( 3 / 12 * 100%); }\r\n .col-#{$breakpoint}-4 { width: ( 4 / 12 * 100%); }\r\n .col-#{$breakpoint}-5 { width: ( 5 / 12 * 100%); }\r\n .col-#{$breakpoint}-6 { width: ( 6 / 12 * 100%); }\r\n .col-#{$breakpoint}-7 { width: ( 7 / 12 * 100%); }\r\n .col-#{$breakpoint}-8 { width: ( 8 / 12 * 100%); }\r\n .col-#{$breakpoint}-9 { width: ( 9 / 12 * 100%); }\r\n .col-#{$breakpoint}-10 { width: ( 10 / 12 * 100%); }\r\n .col-#{$breakpoint}-11 { width: ( 11 / 12 * 100%); }\r\n .col-#{$breakpoint}-12 { width: 100%; }\r\n }\r\n}\r\n\r\n// Gutters\r\n// Apply padding and a negative margin to the outside of the container\r\n@mixin gutters ($gutter-width: $spacer-3) {\r\n margin-right: -$gutter-width;\r\n margin-left: -$gutter-width;\r\n\r\n > [class*=\"col-\"] {\r\n padding-right: $gutter-width !important;\r\n padding-left: $gutter-width !important;\r\n }\r\n}\r\n\r\n.gutter {\r\n @include gutters($spacer-3);\r\n}\r\n\r\n.gutter-condensed {\r\n @include gutters($spacer-2);\r\n}\r\n\r\n.gutter-spacious {\r\n @include gutters($spacer-4);\r\n}\r\n\r\n@each $breakpoint in map-keys($breakpoints) {\r\n @include breakpoint($breakpoint) {\r\n .gutter-#{$breakpoint} { @include gutters($spacer-3); }\r\n .gutter-#{$breakpoint}-condensed { @include gutters($spacer-2); }\r\n .gutter-#{$breakpoint}-spacious { @include gutters($spacer-4); }\r\n }\r\n}\r\n","// Layout variables\r\n\r\n// these are values for the display CSS property\r\n$display-values: (\r\n block,\r\n flex,\r\n inline,\r\n inline-block,\r\n inline-flex,\r\n none,\r\n table,\r\n table-cell\r\n) !default;\r\n\r\n// maps edges to respective corners for border-radius\r\n$edges: (\r\n top: (top-left, top-right),\r\n right: (top-right, bottom-right),\r\n bottom: (bottom-right, bottom-left),\r\n left: (bottom-left, top-left)\r\n) !default;\r\n\r\n// These are our margin and padding utility spacers. The default step size we\r\n// use is 8px. This gives us a key of:\r\n// 0 => 0px\r\n// 1 => 4px\r\n// 2 => 8px\r\n// 3 => 16px\r\n// 4 => 24px\r\n// 5 => 32px\r\n// 6 => 40px\r\n$spacer: 8px !default;\r\n\r\n// Our spacing scale\r\n$spacer-0: 0 !default; // 0\r\n$spacer-1: round($spacer / 2) !default; // 4px\r\n$spacer-2: $spacer !default; // 8px\r\n$spacer-3: $spacer * 2 !default; // 16px\r\n$spacer-4: $spacer * 3 !default; // 24px\r\n$spacer-5: $spacer * 4 !default; // 32px\r\n$spacer-6: $spacer * 5 !default; // 40px\r\n\r\n// The list of spacer values\r\n$spacers: (\r\n $spacer-0,\r\n $spacer-1,\r\n $spacer-2,\r\n $spacer-3,\r\n $spacer-4,\r\n $spacer-5,\r\n $spacer-6,\r\n) !default;\r\n\r\n// And the map of spacers, for easier looping:\r\n// @each $scale, $length in $spacer-map { ... }\r\n$spacer-map: (\r\n 0: $spacer-0,\r\n 1: $spacer-1,\r\n 2: $spacer-2,\r\n 3: $spacer-3,\r\n 4: $spacer-4,\r\n 5: $spacer-5,\r\n 6: $spacer-6,\r\n) !default;\r\n\r\n// Em spacer variables\r\n$em-spacer-1: 0.0625em !default; // 1/16\r\n$em-spacer-2: 0.125em !default; // 1/8\r\n$em-spacer-3: 0.25em !default; // 1/4\r\n$em-spacer-4: 0.375em !default; // 3/8\r\n$em-spacer-5: 0.5em !default; // 1/2\r\n$em-spacer-6: 0.75em !default; // 3/4\r\n\r\n// Fixed-width container variables\r\n$container-width: 980px !default;\r\n$grid-gutter: 10px !default;\r\n\r\n// Breakpoint widths\r\n$width-xs: 0 !default;\r\n// Small screen / phone\r\n$width-sm: 544px !default;\r\n// Medium screen / tablet\r\n$width-md: 768px !default;\r\n// Large screen / desktop (980 + (16 * 2)) <= container + gutters\r\n$width-lg: 1012px !default;\r\n// Extra large screen / wide desktop\r\n$width-xl: 1280px !default;\r\n\r\n// Responsive container widths\r\n$container-sm: $width-sm !default;\r\n$container-md: $width-md !default;\r\n$container-lg: $width-lg !default;\r\n$container-xl: $width-xl !default;\r\n\r\n// Breakpoints in the form (name: length)\r\n$breakpoints: (\r\n sm: $width-sm,\r\n md: $width-md,\r\n lg: $width-lg,\r\n xl: $width-xl\r\n) !default;\r\n\r\n// This map in the form (breakpoint: variant) is used to iterate over\r\n// breakpoints and create both responsive and non-responsive classes in one\r\n// loop:\r\n//\r\n// ```scss\r\n// @each $breakpoint, $variant of $responsive-variants {\r\n// @include breakpoint($breakpoint) {\r\n// .foo#{$variant}-bar { foo: bar !important; }\r\n// }\r\n// }\r\n// ```\r\n$responsive-variants: (\r\n \"\": \"\",\r\n sm: \"-sm\",\r\n md: \"-md\",\r\n lg: \"-lg\",\r\n xl: \"-xl\",\r\n) !default;\r\n\r\n// responive utility position values\r\n$responsive-positions: (\r\n static,\r\n relative,\r\n absolute,\r\n fixed,\r\n sticky\r\n) !default;\r\n","// All of our block level items should have the same margin\r\n// stylelint-disable selector-max-type\r\n\r\n// This is styling for generic markdownized text. Anything you put in a\r\n// container with .markdown-body on it should render generally well. It also\r\n// includes some GitHub Flavored Markdown specific styling (like @mentions)\r\n.markdown-body {\r\n font-family: $body-font;\r\n font-size: $h4-size;\r\n line-height: $body-line-height;\r\n word-wrap: break-word;\r\n\r\n @import \"../base/kbd.scss\"; // adds support for keyboard shortcuts\r\n\r\n // Clearfix on the markdown body\r\n &::before {\r\n display: table;\r\n content: \"\";\r\n }\r\n\r\n &::after {\r\n display: table;\r\n clear: both;\r\n content: \"\";\r\n }\r\n\r\n > *:first-child {\r\n margin-top: 0 !important;\r\n }\r\n\r\n > *:last-child {\r\n margin-bottom: 0 !important;\r\n }\r\n\r\n // Anchors like <a name=\"examples\">. These sometimes end up wrapped around\r\n // text when users mistakenly forget to close the tag or use self-closing tag\r\n // syntax. We don't want them to appear like links.\r\n // FIXME: a:not(:link):not(:visited) would be a little clearer here (and\r\n // possibly faster to match), but it breaks styling of <a href> elements due\r\n // to https://bugs.webkit.org/show_bug.cgi?id=142737.\r\n a:not([href]) {\r\n color: inherit;\r\n text-decoration: none;\r\n }\r\n\r\n // Link Colors\r\n .absent {\r\n color: $text-red;\r\n }\r\n\r\n .anchor {\r\n float: left;\r\n padding-right: $spacer-1;\r\n // stylelint-disable-next-line primer/spacing\r\n margin-left: -20px;\r\n line-height: $lh-condensed-ultra;\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n }\r\n\r\n p,\r\n blockquote,\r\n ul,\r\n ol,\r\n dl,\r\n table,\r\n pre,\r\n details {\r\n margin-top: 0;\r\n margin-bottom: $spacer-3;\r\n }\r\n\r\n hr {\r\n height: $em-spacer-3;\r\n padding: 0;\r\n margin: $spacer-4 0;\r\n // stylelint-disable-next-line primer/colors\r\n background-color: $gray-200;\r\n border: 0;\r\n }\r\n\r\n blockquote {\r\n // stylelint-disable-next-line primer/spacing\r\n padding: 0 1em;\r\n color: $text-gray-light;\r\n // stylelint-disable-next-line primer/borders\r\n border-left: 0.25em $border-style lighten($gray-300, 5%);\r\n\r\n > :first-child {\r\n margin-top: 0;\r\n }\r\n\r\n > :last-child {\r\n margin-bottom: 0;\r\n }\r\n }\r\n}\r\n","// Needs refactoring\r\n// stylelint-disable selector-max-compound-selectors, selector-max-specificity\r\n// stylelint-disable selector-max-type\r\n.markdown-body {\r\n // Headings\r\n h1,\r\n h2,\r\n h3,\r\n h4,\r\n h5,\r\n h6 {\r\n margin-top: $spacer-4;\r\n margin-bottom: $spacer-3;\r\n font-weight: $font-weight-bold;\r\n line-height: $lh-condensed;\r\n\r\n .octicon-link {\r\n color: $text-black;\r\n vertical-align: middle;\r\n visibility: hidden;\r\n }\r\n\r\n &:hover .anchor {\r\n text-decoration: none;\r\n\r\n .octicon-link {\r\n visibility: visible;\r\n }\r\n }\r\n\r\n tt,\r\n code {\r\n font-size: inherit;\r\n }\r\n }\r\n\r\n h1 {\r\n // stylelint-disable-next-line primer/spacing\r\n padding-bottom: 0.3em;\r\n // stylelint-disable-next-line primer/typography\r\n font-size: 2em;\r\n border-bottom: $border-width $border-style $border-gray-light;\r\n }\r\n\r\n h2 {\r\n // stylelint-disable-next-line primer/spacing\r\n padding-bottom: 0.3em;\r\n // stylelint-disable-next-line primer/typography\r\n font-size: 1.5em;\r\n border-bottom: $border-width $border-style $border-gray-light;\r\n }\r\n\r\n h3 {\r\n // stylelint-disable-next-line primer/typography\r\n font-size: 1.25em;\r\n }\r\n\r\n h4 {\r\n font-size: 1em;\r\n }\r\n\r\n h5 {\r\n // stylelint-disable-next-line primer/typography\r\n font-size: 0.875em;\r\n }\r\n\r\n h6 {\r\n // stylelint-disable-next-line primer/typography\r\n font-size: 0.85em;\r\n color: $text-gray-light;\r\n }\r\n}\r\n","// Base styles\r\n// stylelint-disable selector-no-qualifying-type\r\n// stylelint-disable selector-max-type\r\n.markdown-body {\r\n\r\n // Lists, Blockquotes & Such\r\n ul,\r\n ol {\r\n // stylelint-disable-next-line primer/spacing\r\n padding-left: 2em;\r\n\r\n &.no-list {\r\n padding: 0;\r\n list-style-type: none;\r\n }\r\n }\r\n\r\n // Did someone complain about list spacing? Encourage them\r\n // to create the spacing with their markdown formatting.\r\n // List behavior should be controled by the markup, not the css.\r\n //\r\n // For lists with padding between items, use blank\r\n // lines between items. This will generate paragraphs with\r\n // padding to space things out.\r\n //\r\n // - item\r\n //\r\n // - item\r\n //\r\n // - item\r\n //\r\n // For list without padding, don't use blank lines.\r\n //\r\n // - item\r\n // - item\r\n // - item\r\n //\r\n // Modifying the css to emulate these behaviors merely brakes\r\n // one case in the process of solving another. Don't change\r\n // this unless it's really really a bug.\r\n ul ul,\r\n ul ol,\r\n ol ol,\r\n ol ul {\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n }\r\n\r\n li {\r\n word-wrap: break-all;\r\n }\r\n\r\n li > p {\r\n margin-top: $spacer-3;\r\n }\r\n\r\n li + li {\r\n margin-top: $em-spacer-3;\r\n }\r\n\r\n dl {\r\n padding: 0;\r\n\r\n dt {\r\n padding: 0;\r\n margin-top: $spacer-3;\r\n font-size: 1em;\r\n font-style: italic;\r\n font-weight: $font-weight-bold;\r\n }\r\n\r\n dd {\r\n padding: 0 $spacer-3;\r\n margin-bottom: $spacer-3;\r\n }\r\n }\r\n}\r\n","// Needs refactoring\r\n// stylelint-disable selector-max-type\r\n.markdown-body {\r\n // Tables\r\n table {\r\n display: block;\r\n width: 100%;\r\n overflow: auto;\r\n\r\n th {\r\n font-weight: $font-weight-bold;\r\n }\r\n\r\n th,\r\n td {\r\n // stylelint-disable-next-line primer/spacing\r\n padding: 6px 13px;\r\n // stylelint-disable-next-line primer/borders\r\n border: $border-width $border-style lighten($gray-300, 5%);\r\n }\r\n\r\n tr {\r\n background-color: $bg-white;\r\n // stylelint-disable-next-line primer/borders\r\n border-top: $border-width $border-style darken($gray-300, 4%);\r\n\r\n &:nth-child(2n) {\r\n background-color: $bg-gray;\r\n }\r\n }\r\n\r\n img {\r\n background-color: transparent;\r\n }\r\n }\r\n}\r\n","// Need to target base styles\r\n// stylelint-disable selector-max-compound-selectors, selector-no-qualifying-type\r\n// stylelint-disable selector-max-type\r\n.markdown-body {\r\n // Images & Stuff\r\n img {\r\n max-width: 100%;\r\n // because we put padding on the images to hide header lines, and some people\r\n // specify the width of their images in their markdown.\r\n box-sizing: content-box;\r\n background-color: $bg-white;\r\n\r\n &[align=right] {\r\n // stylelint-disable-next-line primer/spacing\r\n padding-left: 20px;\r\n }\r\n\r\n &[align=left] {\r\n // stylelint-disable-next-line primer/spacing\r\n padding-right: 20px;\r\n }\r\n }\r\n\r\n .emoji {\r\n max-width: none;\r\n vertical-align: text-top;\r\n // Override `<img>` styles so Emjois don't clash with zebra striping in our tables\r\n background-color: transparent;\r\n }\r\n\r\n // Gollum Image Tags\r\n\r\n // Framed\r\n span.frame {\r\n display: block;\r\n overflow: hidden;\r\n\r\n > span {\r\n display: block;\r\n float: left;\r\n width: auto;\r\n // stylelint-disable-next-line primer/spacing\r\n padding: 7px;\r\n // stylelint-disable-next-line primer/spacing\r\n margin: 13px 0 0;\r\n overflow: hidden;\r\n // stylelint-disable-next-line primer/borders\r\n border: $border-width $border-style lighten($gray-300, 5%);\r\n }\r\n\r\n span img {\r\n display: block;\r\n float: left;\r\n }\r\n\r\n span span {\r\n display: block;\r\n // stylelint-disable-next-line primer/spacing\r\n padding: 5px 0 0;\r\n clear: both;\r\n color: $text-gray-dark;\r\n }\r\n }\r\n\r\n span.align-center {\r\n display: block;\r\n overflow: hidden;\r\n clear: both;\r\n\r\n > span {\r\n display: block;\r\n // stylelint-disable-next-line primer/spacing\r\n margin: 13px auto 0;\r\n overflow: hidden;\r\n text-align: center;\r\n }\r\n\r\n span img {\r\n margin: 0 auto;\r\n text-align: center;\r\n }\r\n }\r\n\r\n span.align-right {\r\n display: block;\r\n overflow: hidden;\r\n clear: both;\r\n\r\n > span {\r\n display: block;\r\n // stylelint-disable-next-line primer/spacing\r\n margin: 13px 0 0;\r\n overflow: hidden;\r\n text-align: right;\r\n }\r\n\r\n span img {\r\n margin: 0;\r\n text-align: right;\r\n }\r\n }\r\n\r\n span.float-left {\r\n display: block;\r\n float: left;\r\n // stylelint-disable-next-line primer/spacing\r\n margin-right: 13px;\r\n overflow: hidden;\r\n\r\n span {\r\n // stylelint-disable-next-line primer/spacing\r\n margin: 13px 0 0;\r\n }\r\n }\r\n\r\n span.float-right {\r\n display: block;\r\n float: right;\r\n // stylelint-disable-next-line primer/spacing\r\n margin-left: 13px;\r\n overflow: hidden;\r\n\r\n > span {\r\n display: block;\r\n // stylelint-disable-next-line primer/spacing\r\n margin: 13px auto 0;\r\n overflow: hidden;\r\n text-align: right;\r\n }\r\n }\r\n}\r\n","// stylelint-disable selector-max-type\r\n.markdown-body {\r\n // Inline code snippets\r\n code,\r\n tt {\r\n // stylelint-disable-next-line primer/spacing\r\n padding: 0.2em 0.4em;\r\n margin: 0;\r\n // stylelint-disable-next-line primer/typography\r\n font-size: 85%;\r\n // stylelint-disable-next-line primer/colors\r\n background-color: rgba($black, 0.05);\r\n border-radius: $border-radius;\r\n\r\n br { display: none; }\r\n }\r\n\r\n del code { text-decoration: inherit; }\r\n\r\n pre {\r\n word-wrap: normal;\r\n\r\n // Code tags within code blocks (<pre>s)\r\n > code {\r\n padding: 0;\r\n margin: 0;\r\n // stylelint-disable-next-line primer/typography\r\n font-size: 100%;\r\n word-break: normal;\r\n white-space: pre;\r\n background: transparent;\r\n border: 0;\r\n }\r\n }\r\n\r\n .highlight {\r\n margin-bottom: $spacer-3;\r\n\r\n pre {\r\n margin-bottom: 0;\r\n word-break: normal;\r\n }\r\n }\r\n\r\n .highlight pre,\r\n pre {\r\n padding: $spacer-3;\r\n overflow: auto;\r\n // stylelint-disable-next-line primer/typography\r\n font-size: 85%;\r\n // stylelint-disable-next-line primer/typography\r\n line-height: 1.45;\r\n background-color: $bg-gray;\r\n border-radius: $border-radius;\r\n }\r\n\r\n pre code,\r\n pre tt {\r\n display: inline;\r\n max-width: auto;\r\n padding: 0;\r\n margin: 0;\r\n overflow: visible;\r\n line-height: inherit;\r\n word-wrap: normal;\r\n background-color: transparent;\r\n border: 0;\r\n }\r\n}\r\n","// stylelint-disable selector-max-type\r\n.markdown-body .csv-data {\r\n td,\r\n th {\r\n // stylelint-disable-next-line primer/spacing\r\n padding: 5px;\r\n overflow: hidden;\r\n font-size: $font-size-small;\r\n line-height: $lh-condensed-ultra;\r\n text-align: left;\r\n white-space: nowrap;\r\n }\r\n\r\n .blob-num {\r\n // stylelint-disable-next-line primer/spacing\r\n padding: 10px $spacer-2 9px;\r\n text-align: right;\r\n background: $bg-white;\r\n border: 0;\r\n }\r\n\r\n tr { border-top: 0; }\r\n\r\n th {\r\n font-weight: $font-weight-bold;\r\n background: $bg-gray;\r\n border-top: 0;\r\n }\r\n}\r\n","// Layout\r\n// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before, comment-empty-line-before\r\n\r\n// Loop through the breakpoint values\r\n@each $breakpoint, $variant in $responsive-variants {\r\n @include breakpoint($breakpoint) {\r\n @each $position in $responsive-positions {\r\n .position#{$variant}-#{$position} {\r\n position: $position !important;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/* Set top 0 */\r\n.top-0 { top: 0 !important; }\r\n/* Set right 0 */\r\n.right-0 { right: 0 !important; }\r\n/* Set bottom 0 */\r\n.bottom-0 { bottom: 0 !important; }\r\n/* Set left 0 */\r\n.left-0 { left: 0 !important; }\r\n\r\n/* Vertical align middle */\r\n.v-align-middle { vertical-align: middle !important; }\r\n/* Vertical align top */\r\n.v-align-top { vertical-align: top !important; }\r\n/* Vertical align bottom */\r\n.v-align-bottom { vertical-align: bottom !important; }\r\n/* Vertical align to the top of the text */\r\n.v-align-text-top { vertical-align: text-top !important; }\r\n/* Vertical align to the bottom of the text */\r\n.v-align-text-bottom { vertical-align: text-bottom !important; }\r\n/* Vertical align to the parent's baseline */\r\n.v-align-baseline { vertical-align: baseline !important; }\r\n\r\n// Overflow utilities\r\n@each $overflow in (visible, hidden, auto, scroll) {\r\n .overflow-#{$overflow} { overflow: $overflow !important; }\r\n .overflow-x-#{$overflow} { overflow-x: $overflow !important; }\r\n .overflow-y-#{$overflow} { overflow-y: $overflow !important; }\r\n}\r\n\r\n// Clear floats\r\n/* Clear floats around the element */\r\n.clearfix {\r\n @include clearfix;\r\n}\r\n\r\n// Floats\r\n@each $breakpoint, $variant in $responsive-variants {\r\n @include breakpoint($breakpoint) {\r\n /* Float to the left */\r\n .float#{$variant}-left { float: left !important; }\r\n /* Float to the right */\r\n .float#{$variant}-right { float: right !important; }\r\n /* No float */\r\n .float#{$variant}-none { float: none !important; }\r\n }\r\n}\r\n\r\n// Width and height utilities, helpful in combination\r\n// with display-table utilities and images\r\n/* Max width 100% */\r\n.width-fit { max-width: 100% !important; }\r\n/* Set the width to 100% */\r\n.width-full { width: 100% !important; }\r\n/* Max height 100% */\r\n.height-fit { max-height: 100% !important; }\r\n/* Set the height to 100% */\r\n.height-full { height: 100% !important; }\r\n\r\n/* Remove min-width from element */\r\n.min-width-0 { min-width: 0 !important; }\r\n\r\n@each $breakpoint, $variant in $responsive-variants {\r\n @include breakpoint($breakpoint) {\r\n\r\n // Auto varients\r\n .width#{$variant}-auto { width: auto !important; }\r\n\r\n /* Set the direction to rtl */\r\n .direction#{$variant}-rtl { direction: rtl !important; }\r\n /* Set the direction to ltr */\r\n .direction#{$variant}-ltr { direction: ltr !important; }\r\n }\r\n}\r\n","header {\r\n .header {\r\n padding: 1.75rem 1.5rem 2rem 1.5rem;\r\n }\r\n\r\n .title-main {\r\n font-size: 2.5rem;\r\n font-family: $title-font;\r\n font-weight: 700;\r\n white-space: nowrap;\r\n }\r\n\r\n .title-sub {\r\n margin: 0 0.1rem;\r\n display: block;\r\n white-space: nowrap;\r\n\r\n &::-webkit-scrollbar {\r\n display: none; // WebKit\r\n }\r\n\r\n scrollbar-width: none; // Firefox\r\n -ms-overflow-style: none; // Microsoft\r\n }\r\n}\r\n",".content {\r\n padding: 1.5rem 1.5rem 0 1.5rem; // same as sidebar\r\n}\r\n\r\n.post {\r\n // paddings between posts\r\n &:not(:first-child) {\r\n padding: 1.5rem 0;\r\n }\r\n\r\n &:first-child {\r\n padding: 0 0 1.5rem 0;\r\n }\r\n}\r\n\r\n.post-title {\r\n font-size: $font-size-1;\r\n}\r\n\r\n.post-meta {\r\n display: flex;\r\n align-items: center;\r\n margin: 0.5rem 0.1rem 1rem 0.1rem; // little space\r\n flex-wrap: wrap;\r\n\r\n span {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n span:not(:last-child) {\r\n padding-right: 1.5rem;\r\n }\r\n}\r\n\r\n.post-summary {\r\n margin: 0 0.1rem; // little space\r\n\r\n p:last-child {\r\n margin-bottom: 0; // remove margin-bottom of last para in summary\r\n }\r\n\r\n h1,\r\n h2,\r\n h3,\r\n h4,\r\n h5,\r\n h6 {\r\n display: none; // hide h1-h6 in post summary\r\n }\r\n}\r\n\r\n.post-meta-archive {\r\n display: flex;\r\n align-items: center;\r\n margin: 0.5rem 0.1rem 0 0.1rem; // little space\r\n flex-wrap: wrap;\r\n\r\n span:not(:last-child) {\r\n padding-right: 1.5rem;\r\n }\r\n}\r\n\r\n.pagination {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 1.25rem;\r\n line-height: 1.25rem;\r\n padding: 1.25rem 0;\r\n\r\n div {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 2rem;\r\n height: 2rem;\r\n\r\n a {\r\n display: flex;\r\n align-items: center;\r\n }\r\n }\r\n}\r\n\r\n.page-info {\r\n padding: 0 0.1rem 1.5rem 0.1rem;\r\n}\r\n\r\n// single page part\r\narticle {\r\n padding-bottom: 1.5rem;\r\n\r\n .post-content {\r\n margin: 1.25rem 0.1rem 0 0.1rem;\r\n }\r\n}\r\n\r\n.license {\r\n margin-bottom: 1.5rem;\r\n}\r\n\r\n.post-loading {\r\n margin: 0 0 1.5rem 0;\r\n padding-top: 1.5rem;\r\n text-align: center;\r\n\r\n i {\r\n font-size: 1.25rem;\r\n }\r\n\r\n p {\r\n margin: 0.5rem 0 0 0;\r\n }\r\n}\r\n\r\n.markdown-body {\r\n h1 {\r\n font-size: $font-size-1;\r\n margin-top: 1.5rem;\r\n }\r\n\r\n h2 {\r\n font-size: $font-size-2;\r\n margin-top: 1.375rem;\r\n }\r\n\r\n h3 {\r\n font-size: $font-size-3;\r\n margin-top: 1.25rem;\r\n }\r\n\r\n h4 {\r\n margin-top: 1.25rem;\r\n }\r\n\r\n ul {\r\n list-style-type: circle;\r\n }\r\n\r\n img {\r\n max-width: 98%;\r\n margin: 0 0.25rem 0.5rem 0.25rem;\r\n }\r\n}\r\n\r\n.post-comment {\r\n span.post-comment-notloaded {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n}\r\n\r\n#disqus_thread {\r\n padding: 1.25rem 0;\r\n}\r\n",".sidebar {\r\n padding: 1.5rem 1.5rem 1.5rem 0; // no left padding on big screen\r\n}\r\n\r\n.sidebar-item {\r\n &:not(:last-child) {\r\n margin-bottom: 1rem; // space betreen sidebar items\r\n }\r\n\r\n h3 {\r\n margin-bottom: 0.25rem; // space betreen head3 & lists\r\n }\r\n\r\n ul {\r\n list-style-type: none;\r\n margin: 0 0.1rem; // little space\r\n }\r\n\r\n & > div,\r\n & > nav {\r\n margin: 0 0.1rem; // little space\r\n }\r\n\r\n & > img {\r\n margin: 0.5rem 0.25rem 0 0.25rem;\r\n width: 100%;\r\n border-radius: 2px;\r\n }\r\n}\r\n\r\n@media screen and (max-width: $width-md) {\r\n .sidebar {\r\n padding: 1.5rem;\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n justify-content: space-around;\r\n }\r\n\r\n .sidebar-item {\r\n width: 40%; // max 2 modules per line\r\n\r\n // space only at first 2 modules\r\n .sidebar-pages,\r\n .sidebar-tags {\r\n margin-bottom: 1rem;\r\n }\r\n\r\n .sidebar-links,\r\n .sidebar-bgm {\r\n margin-bottom: 0;\r\n }\r\n\r\n & > img {\r\n margin: 0.5rem 0.25rem 0 0.25rem;\r\n width: 75%;\r\n border-radius: 0.25rem;\r\n }\r\n }\r\n}\r\n\r\n// single page part\r\n.sidebar-toc {\r\n ul ul {\r\n font-size: 0.875rem;\r\n padding-left: 0.5rem;\r\n margin-bottom: 0.25rem;\r\n }\r\n}\r\n","footer {\r\n .footer {\r\n padding: 2rem 1.5rem;\r\n text-align: center;\r\n\r\n i {\r\n font-size: 0.875rem;\r\n }\r\n }\r\n}\r\n",".btn {\r\n position: fixed;\r\n right: 1.5rem;\r\n bottom: 1.5rem;\r\n width: 2.5rem;\r\n height: 5rem;\r\n display: flex;\r\n justify-content: space-between;\r\n flex-direction: column;\r\n\r\n div {\r\n flex: 0 1 auto;\r\n width: 2.5rem;\r\n height: 2.5rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n\r\n &:first-child {\r\n border-radius: 0.25rem 0.25rem 0 0;\r\n font-size: 1.25rem;\r\n }\r\n\r\n &:last-child {\r\n border-radius: 0 0 0.25rem 0.25rem;\r\n font-size: 1.5rem;\r\n }\r\n }\r\n}\r\n\r\n#post-aplayer {\r\n margin: 0 0.125rem 1.25rem 0.125rem;\r\n font-family: inherit;\r\n}\r\n","@mixin light {\r\n --color-mode: 'light';\r\n --color-primary: #{$light-color-primary};\r\n --color-secondary: #{$light-color-secondary};\r\n --color-focus: #{$light-color-focus};\r\n --color-mute: #{$light-color-mute};\r\n --color-font: #{$light-color-font};\r\n --color-divider: #{$light-color-divider};\r\n --color-bg: #{$light-color-bg};\r\n --color-codebg: #{$light-color-codebg};\r\n}\r\n\r\n@mixin dark {\r\n --color-mode: 'dark';\r\n --color-primary: #{$dark-color-primary};\r\n --color-secondary: #{$dark-color-secondary};\r\n --color-focus: #{$dark-color-focus};\r\n --color-mute: #{$dark-color-mute};\r\n --color-font: #{$dark-color-font};\r\n --color-divider: #{$dark-color-divider};\r\n --color-bg: #{$dark-color-bg};\r\n --color-codebg: #{$dark-color-codebg};\r\n}\r\n\r\nbody[data-theme='auto'] {\r\n @include light();\r\n\r\n @media (prefers-color-scheme: dark) {\r\n @include dark();\r\n @import '_dark-diff'; // things different from light\r\n }\r\n}\r\n\r\nbody[data-theme='light'] {\r\n @include light();\r\n}\r\n\r\nbody[data-theme='dark'] {\r\n @include dark();\r\n @import '_dark-diff'; // things different from light\r\n}\r\n\r\n@mixin link-1 {\r\n a {\r\n color: var(--color-primary);\r\n }\r\n\r\n a:hover {\r\n color: var(--color-secondary);\r\n }\r\n}\r\n\r\n@mixin link-2 {\r\n a {\r\n color: var(--color-secondary);\r\n }\r\n\r\n a:hover {\r\n color: var(--color-focus);\r\n }\r\n}\r\n\r\n$divider: 2px solid var(--color-divider);\r\n","img {\r\n filter: brightness(60%);\r\n}\r\n\r\ntable {\r\n th,\r\n td {\r\n border-color: var(--color-font);\r\n }\r\n\r\n tr {\r\n background-color: var(--color-bg);\r\n border-color: var(--color-font);\r\n\r\n &:nth-child(2n) {\r\n background-color: var(--color-divider);\r\n }\r\n }\r\n}\r\n\r\n#post-aplayer {\r\n background-color: var(--color-divider);\r\n}\r\n\r\n.aplayer .aplayer-info .aplayer-music .aplayer-author {\r\n color: var(--color-font) !important;\r\n}\r\n\r\n.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path {\r\n fill: var(--color-font) !important;\r\n}\r\n\r\n.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path {\r\n fill: var(--color-focus) !important;\r\n}\r\n","::selection,\r\n::-moz-selection {\r\n color: var(--color-bg);\r\n background-color: var(--color-primary);\r\n}\r\n\r\nbody {\r\n background-color: var(--color-bg);\r\n color: var(--color-font);\r\n\r\n @include link-1();\r\n}\r\n\r\n.post-summary,\r\n.post-meta {\r\n @include link-2();\r\n}\r\n\r\n.pag-current a,\r\n.pag-current a:hover {\r\n color: var(--color-focus);\r\n}\r\n\r\n.title-sub,\r\n.post-meta {\r\n color: var(--color-mute);\r\n}\r\n\r\nheader,\r\n.page-info {\r\n border-bottom: $divider;\r\n}\r\n\r\n.post + .post,\r\n.pagination,\r\nfooter {\r\n border-top: $divider;\r\n}\r\n\r\n.post-meta-archive {\r\n @include link-2();\r\n\r\n color: var(--color-mute);\r\n}\r\n\r\n@media screen and (max-width: $width-md) {\r\n .sidebar {\r\n border-top: $divider;\r\n }\r\n}\r\n\r\n// single page part\r\n.post-content {\r\n @include link-2();\r\n}\r\n\r\n.markdown-body {\r\n h1,\r\n h2,\r\n h3,\r\n h4,\r\n h5,\r\n h6,\r\n strong,\r\n em {\r\n color: var(--color-primary);\r\n }\r\n\r\n h1,\r\n h2 {\r\n border-bottom: $divider;\r\n }\r\n\r\n blockquote {\r\n color: var(--color-mute);\r\n }\r\n\r\n img {\r\n border-radius: 2px;\r\n background-color: inherit; // fix white pixels under border-radius\r\n }\r\n\r\n hr {\r\n height: 2px;\r\n }\r\n\r\n pre,\r\n code {\r\n background-color: var(--color-codebg);\r\n }\r\n}\r\n\r\n.post-loading {\r\n border-top: $divider;\r\n}\r\n\r\n.post-comment {\r\n border-top: $divider;\r\n\r\n span.post-comment-notloaded {\r\n padding: 1.5rem 0;\r\n color: var(--color-secondary);\r\n cursor: pointer;\r\n\r\n &:hover {\r\n color: var(--color-focus);\r\n }\r\n }\r\n}\r\n\r\n// components\r\n.btn {\r\n div {\r\n background-color: var(--color-divider);\r\n\r\n color: var(--color-primary);\r\n }\r\n\r\n div:hover {\r\n background-color: var(--color-primary);\r\n color: var(--color-divider);\r\n }\r\n\r\n div + div {\r\n border-top: 2px solid var(--color-bg);\r\n }\r\n}\r\n\r\n// prism.js theme [solarized-light]\r\n\r\ncode[class*='language-'],\r\npre[class*='language-'] {\r\n -moz-tab-size: 4;\r\n -o-tab-size: 4;\r\n tab-size: 4;\r\n}\r\n\r\n.token.comment,\r\n.token.prolog,\r\n.token.doctype,\r\n.token.cdata {\r\n color: #93a1a1; /* base1 */\r\n}\r\n\r\n.token.punctuation {\r\n color: #586e75; /* base01 */\r\n}\r\n\r\n.token.namespace {\r\n opacity: 0.7;\r\n}\r\n\r\n.token.property,\r\n.token.tag,\r\n.token.boolean,\r\n.token.number,\r\n.token.constant,\r\n.token.symbol,\r\n.token.deleted {\r\n color: #268bd2; /* blue */\r\n}\r\n\r\n.token.selector,\r\n.token.attr-name,\r\n.token.string,\r\n.token.char,\r\n.token.builtin,\r\n.token.url,\r\n.token.inserted {\r\n color: #2aa198; /* cyan */\r\n}\r\n\r\n.token.entity {\r\n color: #657b83; /* base00 */\r\n background: #eee8d5; /* base2 */\r\n}\r\n\r\n.token.atrule,\r\n.token.attr-value,\r\n.token.keyword {\r\n color: #859900; /* green */\r\n}\r\n\r\n.token.function,\r\n.token.class-name {\r\n color: #b58900; /* yellow */\r\n}\r\n\r\n.token.regex,\r\n.token.important,\r\n.token.variable {\r\n color: #cb4b16; /* orange */\r\n}\r\n\r\n.token.important,\r\n.token.bold {\r\n font-weight: 600;\r\n}\r\n.token.italic {\r\n font-style: italic;\r\n}\r\n\r\n// fix conflicts of primer css & prism.js style\r\npre,\r\ncode {\r\n .rule {\r\n margin: 0;\r\n border-bottom: none;\r\n overflow: inherit;\r\n\r\n &::before,\r\n &::after {\r\n display: inherit;\r\n clear: inherit;\r\n }\r\n }\r\n}\r\n\r\n// disqus js styles\r\n\r\n#dsqjs {\r\n a {\r\n text-decoration: none !important;\r\n color: var(--color-secondary) !important;\r\n }\r\n\r\n a:hover {\r\n color: var(--color-focus) !important;\r\n }\r\n\r\n .dsqjs-bullet::after {\r\n color: var(--color-mute) !important;\r\n font-weight: 600 !important;\r\n }\r\n\r\n .dsqjs-no-comment {\r\n color: var(--color-font) !important;\r\n }\r\n\r\n .dsqjs-nav-tab {\r\n color: var(--color-mute) !important;\r\n }\r\n\r\n .dsqjs-tab-active {\r\n color: var(--color-font) !important;\r\n\r\n & > span:after {\r\n background-color: var(--color-secondary) !important;\r\n }\r\n }\r\n\r\n .dsqjs-post-list {\r\n .dsqjs-post-avatar {\r\n background: var(--color-bg) !important;\r\n }\r\n\r\n .dsqjs-post-header {\r\n .dsqjs-post-author {\r\n color: var(--color-mute) !important;\r\n font-weight: 600;\r\n }\r\n\r\n .dsqjs-admin-badge {\r\n color: var(--color-font) !important;\r\n background: var(--color-codebg) !important;\r\n }\r\n\r\n .dsqjs-meta {\r\n color: var(--color-mute) !important;\r\n }\r\n }\r\n }\r\n\r\n .dsqjs-post-body {\r\n color: var(--color-font) !important;\r\n\r\n code,\r\n pre {\r\n background: var(--color-codebg) !important;\r\n }\r\n\r\n blockquote {\r\n color: var(--color-codebg) !important;\r\n border-left: 0.25em solid var(--color-divider) !important;\r\n }\r\n }\r\n\r\n .dsqjs-load-more {\r\n background: var(--color-mute) !important;\r\n color: var(--color-bg) !important;\r\n }\r\n\r\n footer {\r\n border-top: 2px solid var(--color-divider) !important;\r\n font-weight: 600 !important;\r\n color: var(--color-mute) !important;\r\n }\r\n\r\n .dsqjs-order-radio:checked + .dsqjs-order-label {\r\n color: var(--color-font) !important;\r\n background-color: var(--color-divider) !important;\r\n }\r\n\r\n .dsqjs-order-label {\r\n background-color: var(--color-bg) !important;\r\n }\r\n\r\n p.dsqjs-has-more a.dsqjs-has-more-btn {\r\n color: var(--color-mute) !important;\r\n }\r\n}\r\n"]}
\ No newline at end of file diff --git a/static/assets/js/fuji.min.js b/static/assets/js/fuji.min.js index 90c27a6..d7e8d68 100644 --- a/static/assets/js/fuji.min.js +++ b/static/assets/js/fuji.min.js @@ -1 +1 @@ -"use strict";function getNowTheme(){var e=document.body.getAttribute("data-theme");return"auto"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":"dark"===e?"dark":"light"}function updateMeidumTheme(e){var t=getNowTheme();e&&(e.detach(),e="dark"===t?mediumZoom(".img-zoomable",{background:"#2f3136"}):mediumZoom(".img-zoomable",{background:"#fffffd"}))}function updateUtterancesTheme(e){var t=getNowTheme();e&&("dark"===t?e.contentWindow.postMessage({type:"set-theme",theme:"photon-dark"},"https://utteranc.es"):e.contentWindow.postMessage({type:"set-theme",theme:"github-light"},"https://utteranc.es"))}var mediumInst;document.querySelector("span.post-comment-notloaded")&&document.querySelector("span.post-comment-notloaded").addEventListener("click",loadComment),document.querySelector(".btn .btn-scroll-top").addEventListener("click",function(){document.documentElement.scrollTop=0}),mediumInst="dark"===getNowTheme()?mediumZoom(".img-zoomable",{background:"#2f3136"}):mediumZoom(".img-zoomable",{background:"#fffffd"}),document.querySelector(".btn .btn-toggle-mode").addEventListener("click",function(){var e=getNowTheme(),t=document.body.getAttribute("data-theme"),o=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"auto"===t?(document.body.setAttribute("data-theme","light"===e?"dark":"light"),localStorage.setItem("fuji_data-theme","light"===e?"dark":"light")):"light"===t?(document.body.setAttribute("data-theme","dark"),localStorage.setItem("fuji_data-theme","dark"==o?"auto":"dark")):(document.body.setAttribute("data-theme","light"),localStorage.setItem("fuji_data-theme","light"==o?"auto":"light")),updateMeidumTheme(mediumInst);var m=document.querySelector(".post-comment");m&&document.querySelector("span.post-comment-notloaded").getAttribute("style")&&("utterances"===m.getAttribute("data-comment")&&updateUtterancesTheme(document.querySelector(".post-comment iframe")),"disqus"===m.getAttribute("data-comment")&&DISQUS.reset({reload:!0}))});
\ No newline at end of file +"use strict";function getNowTheme(){var e=document.body.getAttribute("data-theme");return"auto"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":"dark"===e?"dark":"light"}function updateUtterancesTheme(e){var t=getNowTheme();e&&("dark"===t?e.contentWindow.postMessage({type:"set-theme",theme:"photon-dark"},"https://utteranc.es"):e.contentWindow.postMessage({type:"set-theme",theme:"github-light"},"https://utteranc.es"))}function searchAll(e,t,n){var o=new Fuse(t,{shouldSort:!0,distance:1e4,keys:[{name:"title",weight:2},{name:"tags",weight:1.5},{name:"content",weight:1}]}).search(e);return 0<o.length?(document.getElementById("search-result").innerHTML=template("search-result-template",o),[(new Date).getTime()-n,o.length]):"notFound"}document.querySelector("span.post-comment-notloaded")&&document.querySelector("span.post-comment-notloaded").addEventListener("click",loadComment),document.querySelector(".btn .btn-scroll-top").addEventListener("click",function(){document.documentElement.scrollTop=0}),document.querySelector(".btn .btn-toggle-mode").addEventListener("click",function(){var e=getNowTheme(),t=document.body.getAttribute("data-theme"),n=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"auto"===t?(document.body.setAttribute("data-theme","light"===e?"dark":"light"),localStorage.setItem("fuji_data-theme","light"===e?"dark":"light")):"light"===t?(document.body.setAttribute("data-theme","dark"),localStorage.setItem("fuji_data-theme","dark"==n?"auto":"dark")):(document.body.setAttribute("data-theme","light"),localStorage.setItem("fuji_data-theme","light"==n?"auto":"light"));var o=document.querySelector(".post-comment");o&&document.querySelector("span.post-comment-notloaded").getAttribute("style")&&("utterances"===o.getAttribute("data-comment")&&updateUtterancesTheme(document.querySelector(".post-comment iframe")),"disqus"===o.getAttribute("data-comment")&&DISQUS.reset({reload:!0}))});var counter,infoElements,key,xhr,urlParams=new URLSearchParams(window.location.search);urlParams.has("s")&&(counter=(new Date).getTime(),infoElements=document.querySelectorAll(".search-result-info"),key=urlParams.get("s"),document.querySelector(".search-input input").setAttribute("value",key),(xhr=new XMLHttpRequest).open("GET","/index.json",!0),xhr.responseType="json",xhr.onerror=function(){infoElements[2].removeAttribute("style")},xhr.ontimeout=function(){infoElements[2].removeAttribute("style")},xhr.onreadystatechange=function(){4===xhr.readyState&&(200===xhr.status?"notFound"===(counter=searchAll(key,xhr.response,counter))?infoElements[1].removeAttribute("style"):(infoElements[0].innerHTML=infoElements[0].innerHTML.replace("[TIME]",counter[0]),infoElements[0].innerHTML=infoElements[0].innerHTML.replace("[NUM]",counter[1]),infoElements[0].removeAttribute("style")):infoElements[2].removeAttribute("style"))},xhr.send(null));
\ No newline at end of file diff --git a/static/assets/js/fuji.min.js.map b/static/assets/js/fuji.min.js.map deleted file mode 100644 index 6fc9950..0000000 --- a/static/assets/js/fuji.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["fuji.js"],"names":["getNowTheme","nowTheme","document","body","getAttribute","window","matchMedia","matches","updateMeidumTheme","mediumInst","targetTheme","detach","mediumZoom","background","updateUtterancesTheme","utterancesFrame","contentWindow","postMessage","type","theme","querySelector","addEventListener","loadComment","documentElement","scrollTop","domTheme","systemTheme","setAttribute","localStorage","setItem","commentArea","DISQUS","reset","reload"],"mappings":"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","sourcesContent":["'use strict';\r\n\r\n// get current theme\r\nfunction getNowTheme() {\r\n let nowTheme = document.body.getAttribute('data-theme');\r\n if (nowTheme === 'auto') {\r\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\r\n } else {\r\n return nowTheme === 'dark' ? 'dark' : 'light';\r\n }\r\n}\r\n\r\n// update medium-zoom theme\r\nfunction updateMeidumTheme(mediumInst) {\r\n let targetTheme = getNowTheme();\r\n if (mediumInst) {\r\n mediumInst.detach();\r\n if (targetTheme === 'dark') {\r\n mediumInst = mediumZoom('.img-zoomable', {\r\n background: '#2f3136',\r\n });\r\n } else {\r\n mediumInst = mediumZoom('.img-zoomable', {\r\n background: '#fffffd',\r\n });\r\n }\r\n }\r\n}\r\n\r\n// update utterances theme\r\nfunction updateUtterancesTheme(utterancesFrame) {\r\n let targetTheme = getNowTheme();\r\n if (utterancesFrame) {\r\n if (targetTheme === 'dark') {\r\n utterancesFrame.contentWindow.postMessage(\r\n {\r\n type: 'set-theme',\r\n theme: 'photon-dark',\r\n },\r\n 'https://utteranc.es'\r\n );\r\n } else {\r\n utterancesFrame.contentWindow.postMessage(\r\n {\r\n type: 'set-theme',\r\n theme: 'github-light',\r\n },\r\n 'https://utteranc.es'\r\n );\r\n }\r\n }\r\n}\r\n\r\n// load comment button only when comment area exist\r\nif (document.querySelector('span.post-comment-notloaded')) {\r\n document.querySelector('span.post-comment-notloaded').addEventListener('click', loadComment);\r\n}\r\n\r\n// to-top button\r\ndocument.querySelector('.btn .btn-scroll-top').addEventListener('click', () => {\r\n document.documentElement.scrollTop = 0;\r\n});\r\n\r\n// init medium-zoom\r\nvar mediumInst; // medium-zoom instance\r\nif (getNowTheme() === 'dark') {\r\n mediumInst = mediumZoom('.img-zoomable', {\r\n background: '#2f3136',\r\n });\r\n} else {\r\n mediumInst = mediumZoom('.img-zoomable', {\r\n background: '#fffffd',\r\n });\r\n}\r\n\r\n// theme switch button\r\ndocument.querySelector('.btn .btn-toggle-mode').addEventListener('click', () => {\r\n let nowTheme = getNowTheme();\r\n let domTheme = document.body.getAttribute('data-theme');\r\n let systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\r\n\r\n if (domTheme === 'auto') {\r\n // if now in auto mode, switch to user mode\r\n document.body.setAttribute('data-theme', nowTheme === 'light' ? 'dark' : 'light');\r\n localStorage.setItem('fuji_data-theme', nowTheme === 'light' ? 'dark' : 'light');\r\n } else if (domTheme === 'light') {\r\n // if now in user mode and light mode\r\n document.body.setAttribute('data-theme', 'dark');\r\n // if the theme want to switch is system theme\r\n localStorage.setItem('fuji_data-theme', systemTheme === 'dark' ? 'auto' : 'dark');\r\n } else {\r\n // if now in user mode and dark mode\r\n document.body.setAttribute('data-theme', 'light');\r\n // if the theme want to switch is system theme\r\n localStorage.setItem('fuji_data-theme', systemTheme === 'light' ? 'auto' : 'light');\r\n }\r\n\r\n // update medium background\r\n updateMeidumTheme(mediumInst);\r\n // switch comment area theme\r\n // if this page has comment area\r\n let commentArea = document.querySelector('.post-comment');\r\n if (commentArea) {\r\n // if comment area loaded\r\n if (document.querySelector('span.post-comment-notloaded').getAttribute('style')) {\r\n if (commentArea.getAttribute('data-comment') === 'utterances') {\r\n updateUtterancesTheme(document.querySelector('.post-comment iframe'));\r\n }\r\n if (commentArea.getAttribute('data-comment') === 'disqus') {\r\n DISQUS.reset({\r\n reload: true,\r\n });\r\n }\r\n }\r\n }\r\n});\r\n"],"file":"fuji.min.js"}
\ No newline at end of file @@ -4,7 +4,7 @@ name = "Fuji" license = "Apache-2.0" licenselink = "https://github.com/amzrk2/hugo-theme-fuji/blob/master/LICENSE" -description = "A minimal Hugo theme with customizable theme color." +description = "A minimal Hugo theme with nice theme color." homepage = "https://github.com/amzrk2/hugo-theme-fuji/" tags = ["blog", "minimal", "responsive", "dark mode"] features = ["blog", "minimal", "responsive", "dark mode"] |