From cfc695f75b1026a9cda58521fc82f92c03bf2138 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Sat, 23 Jul 2022 17:49:23 +0800 Subject: [PATCH 01/23] Build22723-Dev-No.1 --- README.md | 9 +++++---- footer.php | 14 ++++++++++---- index.php | 2 +- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 7092236..f78b71f 100644 --- a/README.md +++ b/README.md @@ -13,10 +13,11 @@ ## 最近版本更新日志 -- 修复主题应用时存在的Bug -- 重构部分页面 -- 本版本属于修复更新,无重大功能更新 - +- 此版本为开发版(Build22723-Dev) +- 新增了对 MathJax 数学公式的渲染支持 +- 修复了关闭后台夜间模式后存在的问题 +- 对 数学公式渲染 的支持,仍在开发,此版本仅用于测试 +- 使用例子:$ \varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887… $ ## 使用提示 - 在1.2.7版本更新时,添加了评论区头像优化,使得评论区头像可以通过QQ邮箱解析,并且更改了默认头像源,评论区头像优化是一项无法关闭的内容,如果需要关闭或修改 Gravatar 的代理地址,请前往 `/主题所在目录/core/functions.php` 第 190-211 行 进行修改。 diff --git a/footer.php b/footer.php index d448821..ca3d4a3 100755 --- a/footer.php +++ b/footer.php @@ -7,9 +7,15 @@ options->FooterHTML() ?> - options->The_Dark_Mode): ?> - - + + + options->WebPjax): ?> @@ -20,7 +26,7 @@ options->cursor): ?> - + Date: Sat, 23 Jul 2022 18:43:36 +0800 Subject: [PATCH 02/23] 1.2.9-Build22723-Dev-No.2 --- README.md | 2 ++ footer.php | 2 ++ functions.php | 12 ++++++++++++ index.php | 4 ++-- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f78b71f..0732945 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ - 修复了关闭后台夜间模式后存在的问题 - 对 数学公式渲染 的支持,仍在开发,此版本仅用于测试 - 使用例子:$ \varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887… $ +- 由于 PJAX 兼容原因,暂不提供 Katex 渲染方式 + ## 使用提示 - 在1.2.7版本更新时,添加了评论区头像优化,使得评论区头像可以通过QQ邮箱解析,并且更改了默认头像源,评论区头像优化是一项无法关闭的内容,如果需要关闭或修改 Gravatar 的代理地址,请前往 `/主题所在目录/core/functions.php` 第 190-211 行 进行修改。 diff --git a/footer.php b/footer.php index ca3d4a3..dbb7e2c 100755 --- a/footer.php +++ b/footer.php @@ -7,6 +7,7 @@ options->FooterHTML() ?> + options->MathRender): ?> + options->WebPjax): ?> diff --git a/functions.php b/functions.php index f32dd43..65d5216 100755 --- a/functions.php +++ b/functions.php @@ -93,6 +93,18 @@ function themeConfig($form) { ); $form->addInput($WebPjax); + $MathRender = new Typecho_Widget_Helper_Form_Element_Radio( + 'MathRender', + array( + 1 => _t('MathJax'), + 0 => _t('关闭') + ), + 1, + _t('数学公式渲染'), + _t('渲染数学公式,由于 PJAX 兼容原因,暂不提供 Katex 渲染方式') + ); + $form->addInput($MathRender); + /* Link */ $TheNotice = new Typecho_Widget_Helper_Form_Element_Text('TheNotice', NULL, NULL, _t('

Link

')); $TheNotice->input->setAttribute('style', 'display:none'); diff --git a/index.php b/index.php index b1e74a7..c2cc07b 100755 --- a/index.php +++ b/index.php @@ -2,11 +2,11 @@ /** * 移植自WingLimhugo-tania主题,在其基础上进行了深度修改的Smiletheme或许是你在Typecho上最好的选择 *
版本检测中...  - * + * * * @package Smile Theme * @author Magneto - * @version 1.2.9-Build22723-Dev-No.1 + * @version 1.2.9-Build22723-Dev-No.2 * @link https://www.fmcf.cc */ From 96fc30cf0e415e7d38beaa3839f4688a0bbb6e4d Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Sat, 23 Jul 2022 19:32:22 +0800 Subject: [PATCH 03/23] 1.2.9-Build22723-Dev-No.3 --- README.md | 4 +--- footer.php | 10 +++++++++- functions.php | 9 +++++---- index.php | 4 ++-- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 0732945..bb3f9e4 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,9 @@ ## 最近版本更新日志 - 此版本为开发版(Build22723-Dev) -- 新增了对 MathJax 数学公式的渲染支持 +- 新增了对 MathJax 和 KaTeX 数学公式的渲染支持 - 修复了关闭后台夜间模式后存在的问题 -- 对 数学公式渲染 的支持,仍在开发,此版本仅用于测试 - 使用例子:$ \varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887… $ -- 由于 PJAX 兼容原因,暂不提供 Katex 渲染方式 ## 使用提示 diff --git a/footer.php b/footer.php index dbb7e2c..1d5094b 100755 --- a/footer.php +++ b/footer.php @@ -7,7 +7,13 @@ options->FooterHTML() ?> - options->MathRender): ?> + options->MathRender == 'KaTeX'): ?> + + + + + + options->MathRender == 'MathJax'): ?> + options->MathRender == 'Close'): ?> + options->WebPjax): ?> diff --git a/functions.php b/functions.php index 65d5216..bb239d0 100755 --- a/functions.php +++ b/functions.php @@ -96,12 +96,13 @@ function themeConfig($form) { $MathRender = new Typecho_Widget_Helper_Form_Element_Radio( 'MathRender', array( - 1 => _t('MathJax'), - 0 => _t('关闭') + 'MathJax' => _t('MathJax'), + 'KaTeX' => _t('KaTeX'), + 'Close' => _t('关闭') ), - 1, + 'KaTeX', _t('数学公式渲染'), - _t('渲染数学公式,由于 PJAX 兼容原因,暂不提供 Katex 渲染方式') + _t('用于对数学公式的渲染') ); $form->addInput($MathRender); diff --git a/index.php b/index.php index c2cc07b..744f1f5 100755 --- a/index.php +++ b/index.php @@ -2,11 +2,11 @@ /** * 移植自WingLimhugo-tania主题,在其基础上进行了深度修改的Smiletheme或许是你在Typecho上最好的选择 *
版本检测中...  - * + * * * @package Smile Theme * @author Magneto - * @version 1.2.9-Build22723-Dev-No.2 + * @version 1.2.9-Build22723-Dev-No.3 * @link https://www.fmcf.cc */ From d2b993ca23f8574f40de7b1e6751608ed600556e Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Sat, 23 Jul 2022 20:04:44 +0800 Subject: [PATCH 04/23] 1.2.9-Build22723-Dev-No.4 --- .github/ISSUE_TEMPLATE/bug_report.md | 18 ++++++++++++++++++ .github/ISSUE_TEMPLATE/improvement-ideas.md | 14 ++++++++++++++ .github/ISSUE_TEMPLATE/other-content.md | 10 ++++++++++ assets/js/katex.support.js | 2 ++ index.php | 4 ++-- 5 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/improvement-ideas.md create mode 100644 .github/ISSUE_TEMPLATE/other-content.md create mode 100644 assets/js/katex.support.js diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..ff194c5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,18 @@ +--- +name: Bug report +about: Create a report to help us improve +title: Bug report +labels: Bug +assignees: '' + +--- + +**问题描述** + +**能否复现此Bug** + +**操作系统及浏览器** + +**截图** + +**补充** diff --git a/.github/ISSUE_TEMPLATE/improvement-ideas.md b/.github/ISSUE_TEMPLATE/improvement-ideas.md new file mode 100644 index 0000000..a889d88 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/improvement-ideas.md @@ -0,0 +1,14 @@ +--- +name: Improvement ideas +about: 提供一些改进意见来帮助我们提升主题的水平 +title: '' +labels: 改进意见 +assignees: '' + +--- + +**需要改进或添加的功能** + +**使用插件能否实现** + +**其它简述** diff --git a/.github/ISSUE_TEMPLATE/other-content.md b/.github/ISSUE_TEMPLATE/other-content.md new file mode 100644 index 0000000..3b257bf --- /dev/null +++ b/.github/ISSUE_TEMPLATE/other-content.md @@ -0,0 +1,10 @@ +--- +name: Other content +about: 描述你所需要的帮助 +title: '' +labels: '' +assignees: '' + +--- + +**请描述** diff --git a/assets/js/katex.support.js b/assets/js/katex.support.js new file mode 100644 index 0000000..2602b3e --- /dev/null +++ b/assets/js/katex.support.js @@ -0,0 +1,2 @@ +/*! SmileJS for v1.2.9 | Created by Magneto for Smiletheme */ +renderMathInElement(document.body,{delimiters:[{left:"$$",right:"$$",display:true},{left:"$",right:"$",display:false},{left:'\\(',right:'\\)',display:false},{left:'\\[',right:'\\]',display:true}]}); \ No newline at end of file diff --git a/index.php b/index.php index 744f1f5..e558fa0 100755 --- a/index.php +++ b/index.php @@ -2,11 +2,11 @@ /** * 移植自WingLimhugo-tania主题,在其基础上进行了深度修改的Smiletheme或许是你在Typecho上最好的选择 *
版本检测中...  - * + * * * @package Smile Theme * @author Magneto - * @version 1.2.9-Build22723-Dev-No.3 + * @version 1.2.9-Build22723-Dev-No.4 * @link https://www.fmcf.cc */ From 6f98a9a6bb5b67154ea853144b1a5418e4191767 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Sun, 24 Jul 2022 13:04:38 +0800 Subject: [PATCH 05/23] 2.0.0-Build22725-Dev-No.1 --- README.md | 21 +++++++++++++++++++-- assets/css/style.css | 4 ++-- core/functions.php | 44 +++++++++++++++++++++++++++++++++++++++++++- footer.php | 12 ++++++------ header.php | 9 ++++++--- index.php | 7 +++---- page-links.php | 3 +-- page.php | 3 +-- post.php | 12 ++++-------- tag.php | 3 +-- 10 files changed, 86 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index bb3f9e4..f56c512 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ 一个为typecho移植的主题,源自于[hugo-tania](https://github.com/WingLim/hugo-tania)主题,原本是Hugo的主题,被移植到Typecho上在其基础上进行了深度修改的Smiletheme或许是你在Typecho上最好的选择 [![AdminMD](https://img.shields.io/badge/Magneto-SmileTheme-brightgreen?style=for-the-badge)](https://fmcf.cc/technology/523/) -![Version](https://img.shields.io/badge/Version-1.2.8-critical?style=for-the-badge) +![Version](https://img.shields.io/badge/Version-2.0.0-critical?style=for-the-badge) ![Repo-size](https://img.shields.io/github/languages/code-size/ouyangyanhuo/SmileTheme?style=for-the-badge) ![License](https://img.shields.io/github/license/ouyangyanhuo/SmileTheme?style=for-the-badge) ![Stars](https://img.shields.io/github/stars/ouyangyanhuo/SmileTheme?style=for-the-badge) @@ -13,10 +13,23 @@ ## 最近版本更新日志 -- 此版本为开发版(Build22723-Dev) +- 此版本为开发版(Build22725-Dev) - 新增了对 MathJax 和 KaTeX 数学公式的渲染支持 - 修复了关闭后台夜间模式后存在的问题 - 使用例子:$ \varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887… $ +- 重写了 代码高亮 模块 +- 新增了 代码块 +- 主题版本号由 v1 升级至 v2 +- 删除了在文章没有设置 标签 时显示的"No Tag" +- 修改了默认滚动条 +- 重写了上一篇、下一篇按钮 +- 新增了针对上一篇、下一篇按钮的核心内容 +- 完成所有所需页面的重构 + +## 年少之梦 +本项目及开发者已加入 [「年少之梦」](https://www.teendreams.cn) 组织 + +
## 使用提示 @@ -36,6 +49,10 @@ - 完善的后台设置系统 +- HighLight.js + +- Pjax + 欢迎提 Issues 和 PRs,欢迎提出建议 ## 使用 diff --git a/assets/css/style.css b/assets/css/style.css index ba5457b..5b926f3 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -1,2 +1,2 @@ -/*! SmileCSS for v1.2.8 | Created by Magneto for Smiletheme| Size about 28KB */ -html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],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{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}*,::after,::before{box-sizing:border-box}:root{--color-mode:light;--h1-color:#343a40;--font-color:#495057;--heading-color:#343a40;--background:white;--dark-font-color:#1b1d25;--medium-font-color:#60656c;--light-font-color:#858b93;--light-background:#f1f4f8;--light-background-hover:#e1e6ed;--border:#d6d9de;--link-color:#5183f5;--link-color-darker:#364fc7;--navbar-color:#1b1d25;--blockquote:#f9f9f9;--blockquote-left:#e3e6eb;--transparent-text:rgba(0,0,0,0.7);--transparent-bg:rgba(0,0,0,0.05);--light-transparent-bg:rgba(255,255,255,0.1);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#fff;--submit-color:#fff;--comment-body-color:#343a40;--comment-meta:rgba(0 0 0 / 44%);--inkpage-li-a-h4-color:#333333}.flex{display:flex;align-items:center}.flex-row{display:flex;flex-direction:column}@media screen and (min-width:800px){.flex-row{flex-direction:row}}.flex-col{flex:1}.flex-two-thirds{flex:2}.justify-center{justify-content:center}html{font-family:-apple-system,BlinkMacSystemFont,helvetica neue,roboto,Roboto,Arial,noto sans,sans-serif,apple color emoji,segoe ui,segoe ui emoji,segoe ui symbol,noto color emoji;color:var(--font-color);font-weight:400;font-size:1rem;line-height:1.75}body{background:var(--background);margin:0;padding:0}section{margin:2rem 0}section:first-of-type{margin-top:0}section>h2{display:flex;align-items:center;font-size:1.6rem;margin-top:0;margin-bottom:.5rem}@media screen and (min-width:800px){section>h2{margin-bottom:2rem}}.index h2,section>h2{border-bottom-width:0}@media screen and (min-width:800px){.index h2,section>h2{border-bottom-width:4px}}a.section-button{font-weight:500;background:var(--light-background);color:var(--dark-font-color);padding:.4rem .6rem;font-size:.8rem;border-radius:.3rem;border-width:0!important;white-space:nowrap;line-height:1;margin-left:2rem;margin-top:.5rem}a.section-button:hover{background:var(--light-background-hover);color:var(--heading-color)}@media screen and (min-width:800px){section{margin:3.5rem 0}section>h2{font-size:2rem;margin:0 0 1rem}}.container{max-width:825px;padding:0 1.5rem;margin-left:auto;margin-right:auto}.container.page p{max-width:600px}@media screen and (min-width:800px){.container{padding:0 2rem}}img{display:inline-block;max-width:100%;height:auto}blockquote,dl,ol,p,table,ul{font-size:1.05rem;margin:0 0 1.5rem}ul{padding:0 1rem}@media screen and (min-width:800px){blockquote,dl,ol,p,table,ul{font-size:1.125rem}ul{padding:0 2rem}}ul li p{margin:0}ul li ul{padding-left:1rem;margin:0}ul li ul li{margin:0}ol li ol{margin-bottom:0}.task-list-item [type=checkbox]{margin-right:.5rem}blockquote{margin:2rem 0;padding:1rem;background:var(--blockquote);font-weight:400;border-left:5px solid var(--blockquote-left)}blockquote:not(pre)>code[class*=language-]{background:rgba(0,0,0,.1)!important}@media screen and (min-width:800px){blockquote{padding:2rem 0 2rem 2rem}}::selection{background:#3b5bdb;color:#fff}h1{color:var(--h1-color)}h3,h4{color:var(--medium-font-color)}h2,h5{color:var(--heading-color)}h1,h2,h3,h4,h5{margin:0 0 1.5rem;font-weight:700;line-height:1.2;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1:not(:first-child),h2:not(:first-child),h3:not(:first-child),h4:not(:first-child){margin-top:3rem}h1{font-size:2.5rem;line-height:1.1}h2{font-size:1.75rem;padding-bottom:.5rem;border-bottom:4px solid var(--light-background)}h2 code{font-size:1.75rem!important}h3{font-size:1.5rem;color:var(--font-color);font-weight:600;margin-bottom:1rem}h3 code{font-size:1.4rem!important}h4{font-size:1.3rem;color:var(--font-color);font-weight:500;margin-bottom:1rem;border-bottom:2px solid var(--light-background);padding-bottom:.25rem}h5{font-size:1.2rem;margin-bottom:1rem}@media screen and (min-width:800px){h1{font-size:3rem}h2{font-size:1.9rem}h2 code{font-size:1.9rem!important}h3{font-size:1.7rem;color:var(--font-color);font-weight:600}h3 code{font-size:1.6rem!important}h4{font-weight:400;font-size:1.4rem}}a.link{display:block;padding:.25rem 0;margin:.25rem 0;border-radius:.35rem;font-weight:600;color:var(--dark-font-color)}a.link:hover{color:var(--link-color)}a.button{display:inline-block;border:2px solid var(--link-color);padding:.3rem .6rem;margin-right:.75rem;font-weight:500;background:var(--link-color);color:#fff;border-radius:.35rem;font-size:.9rem}a.button.large{padding:.8rem 1rem;font-size:1.05rem}a.button.secondary{border:2px solid #edf2ff;background:#edf2ff;color:#3b5bdb}a.button.secondary:hover,a.button:hover{border:2px solid var(--link-color-darker);background:var(--link-color-darker);color:#fff}@media screen and (min-width:800px){a.button{font-size:.9rem}a.button.large{padding:1rem 1.5rem;font-size:1.1rem}}p.subtitle{color:var(--medium-font-color);font-size:1.3rem;font-weight:300;margin-bottom:0}@media screen and (min-width:800px){p.subtitle{font-size:1.5rem}}a{color:inherit;text-decoration:none}a.image-link{border-width:0}a code[class*=language-]{color:var(--link-color)!important}a code[class*=language-]:hover{background:var(--link-color)!important;color:#fff!important}main{margin-top:50px}@media screen and (min-width:800px){main{margin-top:0}}.emoji{margin:0 .4rem 0 .1rem}.navbar{width:100%;position:fixed;top:0;left:0;background:var(--navbar-color);box-shadow:0 3px 13px rgba(100,110,140,.1),0 2px 4px rgba(100,110,140,.15);z-index:2;padding:.5rem}.navbar .flex{justify-content:space-between}.navbar a{border-radius:.35rem;margin:0 .05rem;color:rgba(255,255,255,.65);font-weight:400;font-size:.85rem;border:1px solid transparent;padding:0 .3rem;background:0 0}.navbar a:first-of-type{margin-left:-1rem}.navbar a .emoji{display:none}.navbar a.brand{font-weight:500;color:#fff;white-space:nowrap;border:none;display:flex;align-items:center;line-height:1;background:0 0}.navbar a.brand .emoji{display:inline-block!important}.navbar a.brand img{height:22px;width:22px}.navbar button{font-size:1rem;margin-right:-1rem}@media screen and (min-width:500px){.navbar a{font-size:.95rem;padding:.5rem}}@media screen and (min-width:800px){.emoji{margin:0 .5rem 0 .1rem}.navbar{position:static;padding:1.5rem 0;background:0 0;box-shadow:none}.navbar .flex{justify-content:space-between}.navbar a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.navbar a:first-of-type{margin-left:-1.5rem}.navbar a:hover,.navbar a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}.navbar a.brand{font-size:1.3rem;margin-right:3rem;border:none;background:0 0!important;color:var(--dark-font-color)}.navbar a.brand:hover{background:var(--light-background)!important}.navbar a.brand img{height:26px;width:26px;margin-right:.25rem}#dark-mode-button:hover{background:var(--light-background)}}@media print{.navbar{display:none}}#dark-mode-button{display:flex;border:none;padding:.2rem .7rem .2rem .5rem;border-radius:.35rem;box-sizing:content-box;cursor:pointer;font-size:1.1rem;background:0 0}#dark-mode-button .dark{display:none}#dark-mode-button:focus{outline:0}[data-user-color-scheme] #dark-mode-button .light{display:none}[data-user-color-scheme] #dark-mode-button .dark{display:unset}@media screen and (min-width:800px){#dark-mode-button{padding:.95rem .75rem;font-size:1.2rem}}.my{padding-top:2rem}.my a{border:none;margin-right:1rem}.my a:hover{border:none}.post-row{display:flex;align-items:center;width:100%}.post-row time{display:block;flex:0 0 65px}.post-row h3{flex:1}.posts .post:last-of-type a{border-bottom-width:0}.post a{display:flex;align-items:center;justify-content:stretch;padding:1rem 0;border-bottom:2px solid var(--light-background)}.post a:hover{border-radius:.3rem}.post h3{margin-top:.1rem;margin-bottom:0;font-size:1.1rem;font-weight:600}@media screen and (min-width:800px){.posts{margin-left:-1rem;margin-right:-1rem}.post a{padding:.75rem 1rem;border-bottom-color:transparent}.post a:hover{background:var(--light-background)}.post h3{font-size:1.3rem}.post-row time{flex:0 0 80px}}.new-post,.popular-post{display:inline-block;color:#111;padding:.3rem .4rem;border-radius:.3rem;font-size:.85rem;margin-left:1rem}.new-post{background:#d3f9d8}.popular-post{background:#dce6fd;color:var(--heading-color)}@media screen and (min-width:800px){.new-post,.popular-post{margin-bottom:0}}.footer{padding:2rem 0}.footer>.flex{flex-direction:column;align-items:center;justify-content:center}.footer img{height:30px;width:30px}.footer a{border-radius:.35rem;margin:0 .05rem;font-weight:400;font-size:1rem;border:1px solid transparent;padding:.5rem;margin:0 .5rem;color:var(--light-font-color)}.footer a:hover{color:var(--heading-color);background:var(--light-background)}.footer a.img{display:flex;align-items:center;padding:0;margin:0 .75rem;background:0 0}.footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.flex nav{padding:1rem 0}@media screen and (min-width:800px){.footer>.flex{align-items:flex-start;margin-left:-1.5rem;margin-right:-1.5rem}.footer a{padding:.75rem}.footer a.img{padding:0 .5rem;margin:0 1rem}}@media print{.footer{display:none}}.small{max-width:600px}.meta,time{color:var(--light-font-color);font-size:.85rem;white-space:nowrap;font-weight:400}.meta{color:var(--medium-font-color);font-size:1rem}table{border-collapse:separate;border-spacing:0;width:100%;max-width:100%;overflow-x:auto}tbody,thead{white-space:nowrap}th{border-bottom:2px solid var(--border)}tfoot th{border-top:1px solid var(--border)}td{border-bottom:1px solid var(--border)}td,th{text-align:left;padding:.75rem;hyphens:auto}tbody tr:nth-child(even){background-color:var(--light-background)}@media screen and (min-width:800px){table{display:table;border:1px solid var(--border)}tbody,thead{white-space:normal}}.count{font-weight:700;color:var(--link-color)}.tags{display:flex!important;flex-wrap:wrap;align-items:center;margin-left:-.5rem;margin-right:-.5rem}.tags>a{display:block;font-weight:500;background:var(--light-background);color:var(--font-color);margin:.2rem;padding:.5rem .6rem;font-size:.8rem;border-radius:.3rem;border-bottom:0;white-space:nowrap;line-height:1}.tags>a:hover{background:var(--light-background-hover);color:var(--heading-color)}mark{background:#ffec99}.utterances{margin-left:-4px;margin-right:-4px}kbd{background-color:#f7f7f7;border:2px solid rgba(0,0,0,.3);border-radius:3px;box-shadow:0 1px rgba(0,0,0,.2),inset 0 0 0 2px #fff;color:#333;display:inline-block;font-family:Helvetica Neue,Inter,-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;line-height:1.4;margin:0 .1em;padding:.1em .6em;text-shadow:0 1px 0 #fff;font-size:14px}#comments{margin-top:3rem}#comments h2{margin:0}@media print{#comments,.comments{display:none}}#search-query{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;width:100%;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem}#search-query:focus{border-color:#5183f5}#search-results{display:none}.filter-container{display:flex;justify-content:flex-start;margin-bottom:1.5rem;flex-wrap:wrap}.filter-item{font-size:.85rem;padding:.5rem .75rem;background:var(--light-background);border-radius:4px;margin-right:.5rem;margin-bottom:.5rem;font-weight:600;cursor:pointer}.filter-item:hover{background:#d8e3fd;color:#3972f4}.filter-item:last-of-type{margin-right:0}.filter-item.active{background:#5183f5;color:#fff}.filter-item.active:hover{color:#fff;background:#2161f2}header{padding:1.5rem 0}header h1{font-size:2rem;display:inline-block;font-weight:600;margin-top:1rem}header u{display:inline-block;text-decoration:none;padding:.4rem 0}.article-header{padding-top:2rem;margin-bottom:.5rem}.article-header .container{padding-left:0;padding-right:0}.article-header .thumb{display:flex;flex-direction:column}.article-header h1{font-weight:700;font-size:1.8rem;margin:0}.article-header .description{font-size:1.2rem;color:var(--light-font-color);font-weight:300;margin-top:2rem;margin-bottom:0}.post-meta{margin-top:1rem;padding:0;color:var(--light-font-color);font-size:.9rem}.post-meta a{color:var(--font-color);border-width:0}.post-meta time{margin-top:.2rem;font-size:.9rem}.post-meta .tags{margin-top:.5rem}.post-meta .tags a{text-decoration:none}.article-post{margin-bottom:2rem}.article-post img{border-radius:5px;display:block;margin-left:auto;margin-right:auto}.article-post a{box-shadow:0 -2px rgba(189,195,199,.5) inset;transition:all .3s ease}.article-post a:hover{box-shadow:0 -10px rgba(189,195,199,.7) inset}.article-post code{overflow-x:auto}.article-post h1 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h1 .anchor .icon{visibility:hidden}.article-post h1:hover .anchor{box-shadow:none}.article-post h1:hover .anchor .icon{visibility:visible}.article-post h2 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h2 .anchor .icon{visibility:hidden}.article-post h2:hover .anchor{box-shadow:none}.article-post h2:hover .anchor .icon{visibility:visible}.article-post h3 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h3 .anchor .icon{visibility:hidden}.article-post h3:hover .anchor{box-shadow:none}.article-post h3:hover .anchor .icon{visibility:visible}.article-post h4 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h4 .anchor .icon{visibility:hidden}.article-post h4:hover .anchor{box-shadow:none}.article-post h4:hover .anchor .icon{visibility:visible}.article-post h5 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h5 .anchor .icon{visibility:hidden}.article-post h5:hover .anchor{box-shadow:none}.article-post h5:hover .anchor .icon{visibility:visible}.article-post h6 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h6 .anchor .icon{visibility:hidden}.article-post h6:hover .anchor{box-shadow:none}.article-post h6:hover .anchor .icon{visibility:visible}@media screen and (min-width:800px){.article-post{margin-bottom:3rem}.article-post h1,.article-post h2,.article-post h3,.article-post h4,.article-post h5{padding-top:1rem}.post-meta{margin-top:.5rem;padding:.5rem 0}header h1{font-size:3rem;margin-top:2rem}header u{background:linear-gradient(transparent 85%,#bac8ff 0)}.article-header{padding-top:3rem}.article-header h1{padding-top:0;font-size:2.5rem}.article-header .thumb{flex-direction:row}.article-header .description{font-size:1.8rem;line-height:1.5}}@media screen and (min-width:1100px){.article-header h1{font-size:2.5rem}}.post-thumbnail{display:block!important}code,pre{font-size:.9rem;font-family:Consolas,Monaco,Menlo,dejavu sans mono,bitstream vera sans mono,courier new,monospace;background:#373b41}:not(pre)>code{color:var(--dark-font-color);background:var(--light-background)}code{padding:3px 5px;border-radius:4px;color:#f8f8f2}pre>code{display:block}.highlight>.chroma{margin:0 0 2rem;border-radius:5px;overflow-x:auto;box-shadow:1px 1px 2px rgba(0,0,0,.125);position:relative;background:#373b41}.highlight>.chroma code{padding:30px 10px 10px}.highlight>.chroma code[data-lang]::before{position:absolute;top:0;right:0;left:0;padding:2px 10px;width:100%;height:30px;font-size:.9rem;line-height:1.9;font-weight:700;color:#b1b1b1;background:#303339;content:attr(data-lang)}.highlight>.chroma table{position:relative;border:none}.highlight>.chroma table code{padding:0}.highlight>.chroma .lntd:first-child{width:10px}.highlight>.chroma .lntd:first-child pre{margin:0;padding:30px 7px 10px}.highlight>.chroma .lntd:last-child{vertical-align:top}.highlight>.chroma .lntd:last-child pre{margin:0;padding:30px 10px 10px}.highlight>.chroma table,.highlight>.chroma td,.highlight>.chroma tr{margin:0;padding:0;width:100%;border-collapse:collapse;border:none}.highlight>.chroma .hl{display:block;width:100%;background-color:#000}.highlight>.chroma .lnt{color:#7f7f7f}.highlight>.chroma .ln{padding:0 .4em;color:#7f7f7f}.highlight>.chroma .err{color:#960050}.highlight>.chroma .c{color:#999}.highlight>.chroma .err{color:#f2777a}.highlight>.chroma .k{color:#c9c}.highlight>.chroma .l{color:#f99157}.highlight>.chroma .n{color:#ccc}.highlight>.chroma .o{color:#6cc}.highlight>.chroma .p{color:#ccc}.highlight>.chroma .cm{color:#999}.highlight>.chroma .cp{color:#999}.highlight>.chroma .c1{color:#999}.highlight>.chroma .cs{color:#999}.highlight>.chroma .gd{color:#f2777a}.highlight>.chroma .ge{font-style:italic}.highlight>.chroma .gh{color:#ccc;font-weight:700}.highlight>.chroma .gi{color:#9c9}.highlight>.chroma .gp{color:#999;font-weight:700}.highlight>.chroma .gs{font-weight:700}.highlight>.chroma .gu{color:#6cc;font-weight:700}.highlight>.chroma .kc{color:#c9c}.highlight>.chroma .kd{color:#c9c}.highlight>.chroma .kn{color:#6cc}.highlight>.chroma .kp{color:#c9c}.highlight>.chroma .kr{color:#c9c}.highlight>.chroma .kt{color:#fc6}.highlight>.chroma .ld{color:#9c9}.highlight>.chroma .m{color:#f99157}.highlight>.chroma .s{color:#9c9}.highlight>.chroma .na{color:#69c}.highlight>.chroma .nb{color:#ccc}.highlight>.chroma .nc{color:#fc6}.highlight>.chroma .no{color:#f2777a}.highlight>.chroma .nd{color:#6cc}.highlight>.chroma .ni{color:#ccc}.highlight>.chroma .ne{color:#f2777a}.highlight>.chroma .nf{color:#69c}.highlight>.chroma .nl{color:#ccc}.highlight>.chroma .nn{color:#fc6}.highlight>.chroma .nx{color:#69c}.highlight>.chroma .py{color:#ccc}.highlight>.chroma .nt{color:#6cc}.highlight>.chroma .nv{color:#f2777a}.highlight>.chroma .ow{color:#6cc}.highlight>.chroma .w{color:#ccc}.highlight>.chroma .mf{color:#f99157}.highlight>.chroma .mh{color:#f99157}.highlight>.chroma .mi{color:#f99157}.highlight>.chroma .mo{color:#f99157}.highlight>.chroma .sb{color:#9c9}.highlight>.chroma .sc{color:#ccc}.highlight>.chroma .sd{color:#999}.highlight>.chroma .s2{color:#9c9}.highlight>.chroma .se{color:#f99157}.highlight>.chroma .sh{color:#9c9}.highlight>.chroma .si{color:#f99157}.highlight>.chroma .sx{color:#9c9}.highlight>.chroma .sr{color:#9c9}.highlight>.chroma .s1{color:#9c9}.highlight>.chroma .ss{color:#9c9}.highlight>.chroma .bp{color:#ccc}.highlight>.chroma .vc{color:#f2777a}.highlight>.chroma .vg{color:#f2777a}.highlight>.chroma .vi{color:#f2777a}.highlight>.chroma .il{color:#f99157}.side{width:200px;margin:0 auto}.side p{margin:0}.side-right{float:right;clear:right;margin-right:calc(-200px - 2em);background-color:var(--background)}.side-right p{font-size:.9rem}.footnotes ol li p{margin:0}.footnotes hr{border:none;border-top:1px solid var(--border)}.footnote-ref{box-shadow:none!important}.footnote-backref{box-shadow:none!important}.note-ref{cursor:pointer;border:none;box-shadow:none!important}.note-ref:hover{box-shadow:none;border:none}.bg-number{background:var(--light-background);font-size:.9rem;color:var(--font-color);text-decoration:none;padding:1px 5px;border-radius:5px}@media(max-width:1280px){.side{width:100%;padding:0 2em}.side-right{float:none;clear:both;margin:1em auto;background:0 0}}@media(min-width:1280px){.note-ref:hover~.side{display:inline-block;position:absolute;margin-left:1rem;padding:.5rem;box-sizing:content-box}}.suggested{flex-direction:column;align-items:stretch;margin-left:-1rem;margin-right:-1rem;padding:0}.suggested span{font-weight:400;display:block;font-size:.9rem;color:var(--transparent-text)}.suggested a{background:0 0;margin:.5rem 1rem;border-bottom:none;transition:all .2s ease;padding:1.5rem;border-radius:.35rem;background:var(--light-background);color:var(--heading-color)}.suggested a:hover{transform:translate3D(0,-1px,0);background:var(--light-background-hover)}@media screen and (min-width:800px){.suggested{flex-direction:row}.suggested a{flex:0 0 calc(50% - 2rem)}.suggested a:first-of-type{text-align:right}}.projects .project:last-of-type{border-bottom-width:0}.project{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:2px solid var(--light-background)}.project .icon{font-size:1.5rem;width:40px}.project a{display:flex;align-items:center;margin-bottom:.25rem;border-width:0}.project a:hover h3{text-decoration:underline}.project a.button{margin-left:1.5rem;border-width:2px}.project h3{font-size:1.2rem;margin:0}.project .description{font-size:1.1rem;color:var(--light-font-color)}@media screen and (min-width:800px){.project{border-bottom-width:0}.project h3{font-size:1.3rem}.project .description{font-size:1rem}}.terms a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color);border-radius:.35rem}.terms a:hover{background:var(--light-background);color:var(--dark-font-color)}.pagination{display:flex}.pagination .next-page,.pagination .prev-page{flex-grow:1;flex-shrink:1;display:flex}.pagination .next-page{justify-content:flex-end}.pagination a{border-radius:.35rem;padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.pagination a:hover,.pagination a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}@media(prefers-color-scheme:dark){:root{--color-mode:dark}:root:not([data-user-color-scheme]){--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#fff;--submit-color:#fff;--comment-body-color:#343a40;--comment-meta:rgba(0 0 0 / 44%);--inkpage-li-a-h4-color:#333333}}[data-user-color-scheme=dark]{--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#706d6361;--submit-color:rgb(0 0 0 / 44%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479}.alert a,a,h1,header a{text-decoration:none}.alert a,.comment-head,cite.fn{font-weight:700}.alert{margin:1em 0;padding:4px 8px;border-radius:0}.alert a{border:0}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.info{color:#1d6fee;border:1px solid #1d6fee}p.comment-user-info{margin-bottom:.5em}.comment-list p.comment-user-info{display:block;margin-bottom:.5em}.info{color:#88b4f6;border:1px solid #88b4f6}.comment-author .avatar{float:left;margin-right:8px;border-radius:100%}.comment-meta{overflow:hidden;line-height:1.4;margin-bottom:10px}.comment .fn{color:#bc403e}.comment-body{padding:30px 0;border-bottom:1px solid #eee;position:relative}.comment-body p{font-size:14px;color:var(--comment-body-color)}.comment-body p:last-child{margin-bottom:0}.comment-body .reply{position:absolute;top:10px;right:0}.comment-body .reply .comment-reply-link{color:#fff;font-family:exoregular;display:inline-block;line-height:1.2;border-radius:3px;padding:3px 8px;background-color:#bc403e;font-size:12px}.comment-list{padding-bottom:30px}.comment-reply-title,.comments-title{font-size:18px;color:rgba(0,0,0,.44);margin-bottom:20px}.comment-form label{display:block;font-size:12px;color:#999}.comment-form p{margin-bottom:20px}.comment-form input[type=text]{line-height:32px;width:260px;padding:0 10px}#comment,.comment-form input[type=text]{border-radius:3px;background-color:var(--comment-background-color);border:1px solid #eee;font-size:14px}#comment{resize:none;padding:10px;box-sizing:border-box;width:100%}.says{display:none}.comment-meta{font-size:14px;color:var(--comment-meta)}.comments-pagination{margin-bottom:15px}#submit{background-color:var(--submit-color);display:inline-block;border:1px solid #eee;padding:4px 8px;font-size:14px;color:#999;cursor:pointer;border-radius:3px}#submit:hover{border-color:#bc403e;color:#bc403e}.says{display:none}.mark{margin:0 5px;padding:2px;background:#ffec99;border-bottom:1px solid #ffec99}.linkpage ul{color:rgba(255,255,255,.15)}.linkpage ul:after{content:" ";clear:both;display:block}.linkpage li{float:left;width:48%;position:relative;-webkit-transition:.3s ease-out;transition:.3s ease-out;border-radius:5px;line-height:1.3;height:90px;display:block}.linkpage h3{margin:15px -25px;padding:0 25px;border-left:5px solid #51aded;background-color:#f7f7f7;font-size:25px;line-height:40px}.linkpage li:hover{background:rgba(230,244,250,.5);cursor:pointer}.linkpage li a{padding:0 10px 0 90px}.linkpage li a img{width:60px;height:60px;border-radius:50%;position:absolute;top:15px;left:15px;cursor:pointer;margin:auto;border:none}.linkpage li a h4{color:var(--inkpage-li-a-h4-color);font-size:18px;margin:0 0 7px;padding-left:90px}.linkpage li a h4:hover{color:#51aded}.linkpage li a h4,.linkpage li a p{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:1.4;margin:0!important}.linkpage li a p{font-size:12px;color:#999;padding-left:90px}@media(max-width:460px){.linkpage li{width:97%}.linkpage ul{padding-left:5px}} \ No newline at end of file +/*! SmileCSS for v2.0.0 | Created by Magneto for Smiletheme| Size about 25KB */ +html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:transparent}b,strong{font-weight:bolder}kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],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{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}*,::after,::before{box-sizing:border-box}:root{--color-mode:light;--h1-color:#343a40;--font-color:#495057;--heading-color:#343a40;--background:white;--dark-font-color:#1b1d25;--medium-font-color:#60656c;--light-font-color:#858b93;--light-background:#f1f4f8;--light-background-hover:#e1e6ed;--border:#d6d9de;--link-color:#5183f5;--link-color-darker:#364fc7;--navbar-color:#1b1d25;--blockquote:#f9f9f9;--blockquote-left:#e3e6eb;--transparent-text:rgba(0,0,0,0.7);--transparent-bg:rgba(0,0,0,0.05);--light-transparent-bg:rgba(255,255,255,0.1);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#fff;--submit-color:#fff;--comment-body-color:#343a40;--comment-meta:rgba(0 0 0 / 44%);--inkpage-li-a-h4-color:#333333;--webkit-scrollbar:rgb(78 76 76 / 30%)}.flex{display:flex;align-items:center}.flex-row{display:flex;flex-direction:column}@media screen and (min-width:800px){.flex-row{flex-direction:row}}.flex-col{flex:1}.flex-two-thirds{flex:2}.justify-center{justify-content:center}html{font-family:-apple-system,BlinkMacSystemFont,helvetica neue,roboto,Roboto,Arial,noto sans,sans-serif,apple color emoji,segoe ui,segoe ui emoji,segoe ui symbol,noto color emoji;color:var(--font-color);font-weight:400;font-size:1rem;line-height:1.75}body{background:var(--background);margin:0;padding:0}section{margin:2rem 0}section:first-of-type{margin-top:0}section>h2{display:flex;align-items:center;font-size:1.6rem;margin-top:0;margin-bottom:.5rem}@media screen and (min-width:800px){section>h2{margin-bottom:2rem}}.index h2,section>h2{border-bottom-width:0}@media screen and (min-width:800px){.index h2,section>h2{border-bottom-width:4px}}a.section-button{font-weight:500;background:var(--light-background);color:var(--dark-font-color);padding:.4rem .6rem;font-size:.8rem;border-radius:.3rem;border-width:0!important;white-space:nowrap;line-height:1;margin-left:2rem;margin-top:.5rem}a.section-button:hover{background:var(--light-background-hover);color:var(--heading-color)}@media screen and (min-width:800px){section{margin:3.5rem 0}section>h2{font-size:2rem;margin:0 0 1rem}}.container{max-width:825px;padding:0 1.5rem;margin-left:auto;margin-right:auto}.container.page p{max-width:600px}@media screen and (min-width:800px){.container{padding:0 2rem}}img{display:inline-block;max-width:100%;height:auto}blockquote,dl,ol,p,table,ul{font-size:1.05rem;margin:0 0 1.5rem}ul{padding:0 1rem}@media screen and (min-width:800px){blockquote,dl,ol,p,table,ul{font-size:1.125rem}ul{padding:0 2rem}}ul li p{margin:0}ul li ul{padding-left:1rem;margin:0}ul li ul li{margin:0}ol li ol{margin-bottom:0}.task-list-item [type=checkbox]{margin-right:.5rem}blockquote{margin:2rem 0;padding:1rem;background:var(--blockquote);font-weight:400;border-left:5px solid var(--blockquote-left)}@media screen and (min-width:800px){blockquote{padding:2rem 0 2rem 2rem}}::selection{background:#3b5bdb;color:#fff}h1{color:var(--h1-color)}h3,h4{color:var(--medium-font-color)}h2,h5{color:var(--heading-color)}h1,h2,h3,h4,h5{margin:0 0 1.5rem;font-weight:700;line-height:1.2;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1:not(:first-child),h2:not(:first-child),h3:not(:first-child),h4:not(:first-child){margin-top:3rem}h1{font-size:2.5rem;line-height:1.1}h2{font-size:1.75rem;padding-bottom:.5rem;border-bottom:4px solid var(--light-background)}h3{font-size:1.5rem;color:var(--font-color);font-weight:600;margin-bottom:1rem}h4{font-size:1.3rem;color:var(--font-color);font-weight:500;margin-bottom:1rem;border-bottom:2px solid var(--light-background);padding-bottom:.25rem}h5{font-size:1.2rem;margin-bottom:1rem}@media screen and (min-width:800px){h1{font-size:3rem}h2{font-size:1.9rem}h3{font-size:1.7rem;color:var(--font-color);font-weight:600}h4{font-weight:400;font-size:1.4rem}}a.link{display:block;padding:.25rem 0;margin:.25rem 0;border-radius:.35rem;font-weight:600;color:var(--dark-font-color)}a.link:hover{color:var(--link-color)}a.button{display:inline-block;border:2px solid var(--link-color);padding:.3rem .6rem;margin-right:.75rem;font-weight:500;background:var(--link-color);color:#fff;border-radius:.35rem;font-size:.9rem}a.button.large{padding:.8rem 1rem;font-size:1.05rem}a.button.secondary{border:2px solid #edf2ff;background:#edf2ff;color:#3b5bdb}a.button.secondary:hover,a.button:hover{border:2px solid var(--link-color-darker);background:var(--link-color-darker);color:#fff}@media screen and (min-width:800px){a.button{font-size:.9rem}a.button.large{padding:1rem 1.5rem;font-size:1.1rem}}p.subtitle{color:var(--medium-font-color);font-size:1.3rem;font-weight:300;margin-bottom:0}@media screen and (min-width:800px){p.subtitle{font-size:1.5rem}}a{color:inherit;text-decoration:none}a.image-link{border-width:0}main{margin-top:50px}@media screen and (min-width:800px){main{margin-top:0}}.emoji{margin:0 .4rem 0 .1rem}.navbar{width:100%;position:fixed;top:0;left:0;background:var(--navbar-color);box-shadow:0 3px 13px rgba(100,110,140,.1),0 2px 4px rgba(100,110,140,.15);z-index:2;padding:.5rem}.navbar .flex{justify-content:space-between}.navbar a{border-radius:.35rem;margin:0 .05rem;color:rgba(255,255,255,.65);font-weight:400;font-size:.85rem;border:1px solid transparent;padding:0 .3rem;background:0 0}.navbar a:first-of-type{margin-left:-1rem}.navbar a .emoji{display:none}.navbar a.brand{font-weight:500;color:#fff;white-space:nowrap;border:none;display:flex;align-items:center;line-height:1;background:0 0}.navbar a.brand .emoji{display:inline-block!important}.navbar a.brand img{height:22px;width:22px}.navbar button{font-size:1rem;margin-right:-1rem}@media screen and (min-width:500px){.navbar a{font-size:.95rem;padding:.5rem}}@media screen and (min-width:800px){.emoji{margin:0 .5rem 0 .1rem}.navbar{position:static;padding:1.5rem 0;background:0 0;box-shadow:none}.navbar .flex{justify-content:space-between}.navbar a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.navbar a:first-of-type{margin-left:-1.5rem}.navbar a:hover,.navbar a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}.navbar a.brand{font-size:1.3rem;margin-right:3rem;border:none;background:0 0!important;color:var(--dark-font-color)}.navbar a.brand:hover{background:var(--light-background)!important}.navbar a.brand img{height:26px;width:26px;margin-right:.25rem}#dark-mode-button:hover{background:var(--light-background)}}@media print{.navbar{display:none}}#dark-mode-button{display:flex;border:none;padding:.2rem .7rem .2rem .5rem;border-radius:.35rem;box-sizing:content-box;cursor:pointer;font-size:1.1rem;background:0 0}#dark-mode-button .dark{display:none}#dark-mode-button:focus{outline:0}[data-user-color-scheme] #dark-mode-button .light{display:none}[data-user-color-scheme] #dark-mode-button .dark{display:unset}@media screen and (min-width:800px){#dark-mode-button{padding:.95rem .75rem;font-size:1.2rem}}.my{padding-top:2rem}.my a{border:none;margin-right:1rem}.my a:hover{border:none}.post-row{display:flex;align-items:center;width:100%}.post-row time{display:block;flex:0 0 65px}.post-row h3{flex:1}.posts .post:last-of-type a{border-bottom-width:0}.post a{display:flex;align-items:center;justify-content:stretch;padding:1rem 0;border-bottom:2px solid var(--light-background)}.post a:hover{border-radius:.3rem}.post h3{margin-top:.1rem;margin-bottom:0;font-size:1.1rem;font-weight:600}@media screen and (min-width:800px){.posts{margin-left:-1rem;margin-right:-1rem}.post a{padding:.75rem 1rem;border-bottom-color:transparent}.post a:hover{background:var(--light-background)}.post h3{font-size:1.3rem}.post-row time{flex:0 0 80px}}.new-post,.popular-post{display:inline-block;color:#111;padding:.3rem .4rem;border-radius:.3rem;font-size:.85rem;margin-left:1rem}.new-post{background:#d3f9d8}.popular-post{background:#dce6fd;color:var(--heading-color)}@media screen and (min-width:800px){.new-post,.popular-post{margin-bottom:0}}.footer{padding:2rem 0}.footer>.flex{flex-direction:column;align-items:center;justify-content:center}.footer img{height:30px;width:30px}.footer a{border-radius:.35rem;margin:0 .05rem;font-weight:400;font-size:1rem;border:1px solid transparent;padding:.5rem;margin:0 .5rem;color:var(--light-font-color)}.footer a:hover{color:var(--heading-color);background:var(--light-background)}.footer a.img{display:flex;align-items:center;padding:0;margin:0 .75rem;background:0 0}.footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.flex nav{padding:1rem 0}@media screen and (min-width:800px){.footer>.flex{align-items:flex-start;margin-left:-1.5rem;margin-right:-1.5rem}.footer a{padding:.75rem}.footer a.img{padding:0 .5rem;margin:0 1rem}}@media print{.footer{display:none}}.small{max-width:600px}.meta,time{color:var(--light-font-color);font-size:.85rem;white-space:nowrap;font-weight:400}.meta{color:var(--medium-font-color);font-size:1rem}table{border-collapse:separate;border-spacing:0;width:100%;max-width:100%;overflow-x:auto}tbody,thead{white-space:nowrap}th{border-bottom:2px solid var(--border)}tfoot th{border-top:1px solid var(--border)}td{border-bottom:1px solid var(--border)}td,th{text-align:left;padding:.75rem;hyphens:auto}tbody tr:nth-child(even){background-color:var(--light-background)}@media screen and (min-width:800px){table{display:table;border:1px solid var(--border)}tbody,thead{white-space:normal}}.count{font-weight:700;color:var(--link-color)}.tags{display:flex!important;flex-wrap:wrap;align-items:center;margin-left:-.5rem;margin-right:-.5rem}.tags>a{display:block;font-weight:500;background:var(--light-background);color:var(--font-color);margin:.2rem;padding:.5rem .6rem;font-size:.8rem;border-radius:.3rem;border-bottom:0;white-space:nowrap;line-height:1}.tags>a:hover{background:var(--light-background-hover);color:var(--heading-color)}mark{background:#ffec99}.utterances{margin-left:-4px;margin-right:-4px}kbd{background-color:#f7f7f7;border:2px solid rgba(0,0,0,.3);border-radius:3px;box-shadow:0 1px rgba(0,0,0,.2),inset 0 0 0 2px #fff;color:#333;display:inline-block;font-family:Helvetica Neue,Inter,-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;line-height:1.4;margin:0 .1em;padding:.1em .6em;text-shadow:0 1px 0 #fff;font-size:14px}#comments{margin-top:3rem}#comments h2{margin:0}@media print{#comments,.comments{display:none}}#search-query{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;width:100%;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem}#search-query:focus{border-color:#5183f5}#search-results{display:none}.filter-container{display:flex;justify-content:flex-start;margin-bottom:1.5rem;flex-wrap:wrap}.filter-item{font-size:.85rem;padding:.5rem .75rem;background:var(--light-background);border-radius:4px;margin-right:.5rem;margin-bottom:.5rem;font-weight:600;cursor:pointer}.filter-item:hover{background:#d8e3fd;color:#3972f4}.filter-item:last-of-type{margin-right:0}.filter-item.active{background:#5183f5;color:#fff}.filter-item.active:hover{color:#fff;background:#2161f2}header{padding:1.5rem 0}header h1{font-size:2rem;display:inline-block;font-weight:600;margin-top:1rem}header u{display:inline-block;text-decoration:none;padding:.4rem 0}.article-header{padding-top:2rem;margin-bottom:.5rem}.article-header .container{padding-left:0;padding-right:0}.article-header .thumb{display:flex;flex-direction:column}.article-header h1{font-weight:700;font-size:1.8rem;margin:0}.article-header .description{font-size:1.2rem;color:var(--light-font-color);font-weight:300;margin-top:2rem;margin-bottom:0}.post-meta{margin-top:1rem;padding:0;color:var(--light-font-color);font-size:.9rem}.post-meta a{color:var(--font-color);border-width:0}.post-meta time{margin-top:.2rem;font-size:.9rem}.post-meta .tags{margin-top:.5rem}.post-meta .tags a{text-decoration:none}.article-post{margin-bottom:2rem}.article-post img{border-radius:5px;display:block;margin-left:auto;margin-right:auto}.article-post a{box-shadow:0 -2px rgba(189,195,199,.5) inset;transition:all .3s ease}.article-post a:hover{box-shadow:0 -10px rgba(189,195,199,.7) inset}.article-post h1 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h1 .anchor .icon{visibility:hidden}.article-post h1:hover .anchor{box-shadow:none}.article-post h1:hover .anchor .icon{visibility:visible}.article-post h2 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h2 .anchor .icon{visibility:hidden}.article-post h2:hover .anchor{box-shadow:none}.article-post h2:hover .anchor .icon{visibility:visible}.article-post h3 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h3 .anchor .icon{visibility:hidden}.article-post h3:hover .anchor{box-shadow:none}.article-post h3:hover .anchor .icon{visibility:visible}.article-post h4 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h4 .anchor .icon{visibility:hidden}.article-post h4:hover .anchor{box-shadow:none}.article-post h4:hover .anchor .icon{visibility:visible}.article-post h5 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h5 .anchor .icon{visibility:hidden}.article-post h5:hover .anchor{box-shadow:none}.article-post h5:hover .anchor .icon{visibility:visible}.article-post h6 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h6 .anchor .icon{visibility:hidden}.article-post h6:hover .anchor{box-shadow:none}.article-post h6:hover .anchor .icon{visibility:visible}@media screen and (min-width:800px){.article-post{margin-bottom:3rem}.article-post h1,.article-post h2,.article-post h3,.article-post h4,.article-post h5{padding-top:1rem}.post-meta{margin-top:.5rem;padding:.5rem 0}header h1{font-size:3rem;margin-top:2rem}header u{background:linear-gradient(transparent 85%,#bac8ff 0)}.article-header{padding-top:3rem}.article-header h1{padding-top:0;font-size:2.5rem}.article-header .thumb{flex-direction:row}.article-header .description{font-size:1.8rem;line-height:1.5}}@media screen and (min-width:1100px){.article-header h1{font-size:2.5rem}}.post-thumbnail{display:block!important}.side{width:200px;margin:0 auto}.side p{margin:0}.side-right{float:right;clear:right;margin-right:calc(-200px - 2em);background-color:var(--background)}.side-right p{font-size:.9rem}.footnotes ol li p{margin:0}.footnotes hr{border:none;border-top:1px solid var(--border)}.footnote-ref{box-shadow:none!important}.footnote-backref{box-shadow:none!important}.note-ref{cursor:pointer;border:none;box-shadow:none!important}.note-ref:hover{box-shadow:none;border:none}.bg-number{background:var(--light-background);font-size:.9rem;color:var(--font-color);text-decoration:none;padding:1px 5px;border-radius:5px}@media(max-width:1280px){.side{width:100%;padding:0 2em}.side-right{float:none;clear:both;margin:1em auto;background:0 0}}@media(min-width:1280px){.note-ref:hover~.side{display:inline-block;position:absolute;margin-left:1rem;padding:.5rem;box-sizing:content-box}}.suggested{flex-direction:column;align-items:stretch;margin-left:-1rem;margin-right:-1rem;padding:0}.suggested span{font-weight:400;display:block;font-size:.9rem;color:var(--transparent-text)}.suggested a{background:0 0;margin:.5rem 1rem;border-bottom:none;transition:all .2s ease;padding:1.5rem;border-radius:.35rem;background:var(--light-background);color:var(--heading-color)}.suggested a:hover{transform:translate3D(0,-1px,0);background:var(--light-background-hover)}@media screen and (min-width:800px){.suggested{flex-direction:row}.suggested a{flex:0 0 calc(50% - 2rem)}.suggested a:first-of-type{text-align:right}}.projects .project:last-of-type{border-bottom-width:0}.project{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:2px solid var(--light-background)}.project .icon{font-size:1.5rem;width:40px}.project a{display:flex;align-items:center;margin-bottom:.25rem;border-width:0}.project a:hover h3{text-decoration:underline}.project a.button{margin-left:1.5rem;border-width:2px}.project h3{font-size:1.2rem;margin:0}.project .description{font-size:1.1rem;color:var(--light-font-color)}@media screen and (min-width:800px){.project{border-bottom-width:0}.project h3{font-size:1.3rem}.project .description{font-size:1rem}}.terms a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color);border-radius:.35rem}.terms a:hover{background:var(--light-background);color:var(--dark-font-color)}.pagination{display:flex}.pagination .next-page,.pagination .prev-page{flex-grow:1;flex-shrink:1;display:flex}.pagination .next-page{justify-content:flex-end}.pagination a{border-radius:.35rem;padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.pagination a:hover,.pagination a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}@media(prefers-color-scheme:dark){:root{--color-mode:dark}:root:not([data-user-color-scheme]){--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#706d6361;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}}[data-user-color-scheme=dark]{--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#706d6361;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}.alert a,a,h1,header a{text-decoration:none}.alert a,.comment-head,cite.fn{font-weight:700}.alert{margin:1em 0;padding:4px 8px;border-radius:0}.alert a{border:0}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.info{color:#1d6fee;border:1px solid #1d6fee}p.comment-user-info{margin-bottom:.5em}.comment-list p.comment-user-info{display:block;margin-bottom:.5em}.info{color:#88b4f6;border:1px solid #88b4f6}.comment-author .avatar{float:left;margin-right:8px;border-radius:100%}.comment-meta{overflow:hidden;line-height:1.4;margin-bottom:10px}.comment .fn{color:#bc403e}.comment-body{padding:30px 0;border-bottom:1px solid #eee;position:relative}.comment-body p{font-size:14px;color:var(--comment-body-color)}.comment-body p:last-child{margin-bottom:0}.comment-body .reply{position:absolute;top:10px;right:0}.comment-body .reply .comment-reply-link{color:#fff;font-family:exoregular;display:inline-block;line-height:1.2;border-radius:3px;padding:3px 8px;background-color:#bc403e;font-size:12px}.comment-list{padding-bottom:30px}.comment-reply-title,.comments-title{font-size:18px;color:rgba(0,0,0,.44);margin-bottom:20px}.comment-form label{display:block;font-size:12px;color:#999}.comment-form p{margin-bottom:20px}.comment-form input[type=text]{line-height:32px;width:260px;padding:0 10px}#comment,.comment-form input[type=text]{border-radius:3px;background-color:var(--comment-background-color);border:1px solid #eee;font-size:14px}#comment{resize:none;padding:10px;box-sizing:border-box;width:100%}.says{display:none}.comment-meta{font-size:14px;color:var(--comment-meta)}.comments-pagination{margin-bottom:15px}#submit{background-color:var(--submit-color);display:inline-block;border:1px solid #eee;padding:4px 8px;font-size:14px;color:#999;cursor:pointer;border-radius:3px}#submit:hover{border-color:#bc403e;color:#bc403e}.says{display:none}.mark{margin:0 5px;padding:2px;background:#ffec99;border-bottom:1px solid #ffec99}.linkpage ul{color:rgba(255,255,255,.15)}.linkpage ul:after{content:" ";clear:both;display:block}.linkpage li{float:left;width:48%;position:relative;-webkit-transition:.3s ease-out;transition:.3s ease-out;border-radius:5px;line-height:1.3;height:90px;display:block}.linkpage h3{margin:15px -25px;padding:0 25px;border-left:5px solid #51aded;background-color:#f7f7f7;font-size:25px;line-height:40px}.linkpage li:hover{background:rgba(230,244,250,.5);cursor:pointer}.linkpage li a{padding:0 10px 0 90px}.linkpage li a img{width:60px;height:60px;border-radius:50%;position:absolute;top:15px;left:15px;cursor:pointer;margin:auto;border:none}.linkpage li a h4{color:var(--inkpage-li-a-h4-color);font-size:18px;margin:0 0 7px;padding-left:90px}.linkpage li a h4:hover{color:#51aded}.linkpage li a h4,.linkpage li a p{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:1.4;margin:0!important}.linkpage li a p{font-size:12px;color:#999;padding-left:90px}@media(max-width:460px){.linkpage li{width:97%}.linkpage ul{padding-left:5px}}pre{position:relative;padding:30px 10px 10px 10px;background:#282b2e;border-radius:8px;box-shadow:rgb(0 0 0 / 30%) 0px 5px 20px;}.article-post pre code{font-family:Consolas;}pre::after{display:block;content:" ";position:absolute;border-radius:50%;background:#ff5f56;width:12px;height:12px;top:0;left:12px;margin-top:12px;-webkit-box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;}code::-webkit-scrollbar{background:transparent;height:6px;}::-webkit-scrollbar{width:10px;height:8px;background-color:rgb(0 0 0 / 0%);}code::-webkit-scrollbar-thumb{background:rgb(255 255 255 / 46%) !important;box-shadow:none !important;border:none !important;border-radius:10px;transition:background 0.3s ease;}::-webkit-scrollbar-thumb{background-color:var(--webkit-scrollbar);border-radius:100px;border:2px solid transparent;background-clip:content-box;}code::-webkit-scrollbar-track{border:none;background:transparent !important;}::-webkit-scrollbar-track{background-color:transparent;} \ No newline at end of file diff --git a/core/functions.php b/core/functions.php index 7fa3f6e..4007ed9 100755 --- a/core/functions.php +++ b/core/functions.php @@ -208,4 +208,46 @@ function Authorimg($email) $email= md5($email); echo 'https://'.$gravatar_source.'/'.$email.'?'; } -} \ No newline at end of file +} + /** + * SmileTheme - Next or Previous Post + * 上一篇文章、下一篇文章输出修订 + * 为了在 a 标签的内容中同时兼容文章标题和其它内容所写 + */ + function prev_post($archive) { + $db = Typecho_Db::get(); + $content = $db->fetchRow($db->select() + ->from('table.contents') + ->where('table.contents.created < ?', $archive->created) + ->where('table.contents.status = ?', 'publish') + ->where('table.contents.type = ?', $archive->type) + ->where('table.contents.password IS NULL') + ->order('table.contents.created', Typecho_Db::SORT_DESC) + ->limit(1)); + if ($content) { + $content = Typecho_Widget::widget('Widget_Abstract_Contents')->filter($content); + echo ''; + } + else { + echo ''; + } + } + + function next_post($archive) { + $db = Typecho_Db::get(); + $content = $db->fetchRow($db->select() + ->from('table.contents') + ->where('table.contents.created > ? AND table.contents.created < ?', $archive->created, Helper::options()->gmtTime) + ->where('table.contents.status = ?', 'publish') + ->where('table.contents.type = ?', $archive->type) + ->where('table.contents.password IS NULL') + ->order('table.contents.created', Typecho_Db::SORT_ASC) + ->limit(1)); + if ($content) { + $content = Typecho_Widget::widget('Widget_Abstract_Contents')->filter($content); + echo ''; + } + else { + echo ''; + } + } \ No newline at end of file diff --git a/footer.php b/footer.php index 1d5094b..12664a1 100755 --- a/footer.php +++ b/footer.php @@ -8,9 +8,9 @@ options->MathRender == 'KaTeX'): ?> - - - + + + options->MathRender == 'MathJax'): ?> @@ -21,7 +21,7 @@ } }; - + options->MathRender == 'Close'): ?> @@ -29,8 +29,8 @@ options->WebPjax): ?> - - + + diff --git a/header.php b/header.php index 6bc8a53..ba3eea5 100755 --- a/header.php +++ b/header.php @@ -29,10 +29,13 @@ + + + options->fancybox): ?> - - - + + + diff --git a/index.php b/index.php index e558fa0..bbc235d 100755 --- a/index.php +++ b/index.php @@ -2,11 +2,11 @@ /** * 移植自WingLimhugo-tania主题,在其基础上进行了深度修改的Smiletheme或许是你在Typecho上最好的选择 *
版本检测中...  - * + * * * @package Smile Theme * @author Magneto - * @version 1.2.9-Build22723-Dev-No.4 + * @version 2.0.0-Build22725-Dev-No.1 * @link https://www.fmcf.cc */ @@ -115,5 +115,4 @@ -need('footer.php'); ?> - \ No newline at end of file +need('footer.php'); ?> \ No newline at end of file diff --git a/page-links.php b/page-links.php index 8d9d7c8..ab86dbf 100755 --- a/page-links.php +++ b/page-links.php @@ -54,5 +54,4 @@ -need('footer.php'); ?> - \ No newline at end of file +need('footer.php'); ?> \ No newline at end of file diff --git a/page.php b/page.php index a3a7dde..fa079d3 100755 --- a/page.php +++ b/page.php @@ -52,5 +52,4 @@ -need('footer.php'); ?> - \ No newline at end of file +need('footer.php'); ?> \ No newline at end of file diff --git a/post.php b/post.php index 090cd0b..0b8b162 100755 --- a/post.php +++ b/post.php @@ -23,7 +23,7 @@
- tags(', ', true, 'NoTag'); ?> + tags(', ', true); ?>
@@ -56,12 +56,8 @@
-need('footer.php'); ?> - \ No newline at end of file +need('footer.php'); ?> \ No newline at end of file diff --git a/tag.php b/tag.php index 78e3ea2..a825a82 100755 --- a/tag.php +++ b/tag.php @@ -34,5 +34,4 @@ -need('footer.php'); ?> - \ No newline at end of file +need('footer.php'); ?> \ No newline at end of file From 8e6a7d4331b7ed0b9703599afad95cfbc9570d3b Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Sun, 24 Jul 2022 13:09:06 +0800 Subject: [PATCH 06/23] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index f56c512..7550cbe 100644 --- a/README.md +++ b/README.md @@ -27,9 +27,7 @@ - 完成所有所需页面的重构 ## 年少之梦 -本项目及开发者已加入 [「年少之梦」](https://www.teendreams.cn) 组织 - -
+本项目及开发者已加入 「年少之梦」 组织 ## 使用提示 From e5583c5ab5bc0b56f0966a18b0d85c50692e81d0 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Sun, 24 Jul 2022 13:10:50 +0800 Subject: [PATCH 07/23] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7550cbe..f56c512 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,9 @@ - 完成所有所需页面的重构 ## 年少之梦 -本项目及开发者已加入 「年少之梦」 组织 +本项目及开发者已加入 [「年少之梦」](https://www.teendreams.cn) 组织 + +
## 使用提示 From 83b3228c24d12bf7c3fc340a41eb6cf66f9c85d4 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Sun, 24 Jul 2022 13:43:05 +0800 Subject: [PATCH 08/23] Update issue templates --- .github/ISSUE_TEMPLATE/other-content.md | 2 +- .github/need-help.md | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 .github/need-help.md diff --git a/.github/ISSUE_TEMPLATE/other-content.md b/.github/ISSUE_TEMPLATE/other-content.md index 3b257bf..3cbf9b6 100644 --- a/.github/ISSUE_TEMPLATE/other-content.md +++ b/.github/ISSUE_TEMPLATE/other-content.md @@ -1,6 +1,6 @@ --- name: Other content -about: 描述你所需要的帮助 +about: 描述这些其它内容 title: '' labels: '' assignees: '' diff --git a/.github/need-help.md b/.github/need-help.md new file mode 100644 index 0000000..b3d232d --- /dev/null +++ b/.github/need-help.md @@ -0,0 +1,14 @@ +--- +name: Need Help +about: 请求帮助 +title: '' +labels: 请求帮助 +assignees: '' + +--- + +**描述你所遇到的问题** + +**浏览器及操作系统** + +**截图** From 280b6ce3a0654431225b362ef566d4c568ac47c1 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Mon, 25 Jul 2022 13:16:59 +0800 Subject: [PATCH 09/23] 2.0.0-Build22725-Dev-No.2 --- index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.php b/index.php index bbc235d..bde96a4 100755 --- a/index.php +++ b/index.php @@ -2,11 +2,11 @@ /** * 移植自WingLimhugo-tania主题,在其基础上进行了深度修改的Smiletheme或许是你在Typecho上最好的选择 *
版本检测中...  - * + * * * @package Smile Theme * @author Magneto - * @version 2.0.0-Build22725-Dev-No.1 + * @version 2.0.0-Build22725-Dev-No.2 * @link https://www.fmcf.cc */ From a2b8b41f572bdf4d9d8da8c72272dea0fc4735cf Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Mon, 25 Jul 2022 13:17:08 +0800 Subject: [PATCH 10/23] 2.0.0-Build22725-Dev-No.2 --- assets/css/style.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/css/style.css b/assets/css/style.css index 5b926f3..172f4b1 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -1,2 +1,2 @@ -/*! SmileCSS for v2.0.0 | Created by Magneto for Smiletheme| Size about 25KB */ -html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:transparent}b,strong{font-weight:bolder}kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],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{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}*,::after,::before{box-sizing:border-box}:root{--color-mode:light;--h1-color:#343a40;--font-color:#495057;--heading-color:#343a40;--background:white;--dark-font-color:#1b1d25;--medium-font-color:#60656c;--light-font-color:#858b93;--light-background:#f1f4f8;--light-background-hover:#e1e6ed;--border:#d6d9de;--link-color:#5183f5;--link-color-darker:#364fc7;--navbar-color:#1b1d25;--blockquote:#f9f9f9;--blockquote-left:#e3e6eb;--transparent-text:rgba(0,0,0,0.7);--transparent-bg:rgba(0,0,0,0.05);--light-transparent-bg:rgba(255,255,255,0.1);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#fff;--submit-color:#fff;--comment-body-color:#343a40;--comment-meta:rgba(0 0 0 / 44%);--inkpage-li-a-h4-color:#333333;--webkit-scrollbar:rgb(78 76 76 / 30%)}.flex{display:flex;align-items:center}.flex-row{display:flex;flex-direction:column}@media screen and (min-width:800px){.flex-row{flex-direction:row}}.flex-col{flex:1}.flex-two-thirds{flex:2}.justify-center{justify-content:center}html{font-family:-apple-system,BlinkMacSystemFont,helvetica neue,roboto,Roboto,Arial,noto sans,sans-serif,apple color emoji,segoe ui,segoe ui emoji,segoe ui symbol,noto color emoji;color:var(--font-color);font-weight:400;font-size:1rem;line-height:1.75}body{background:var(--background);margin:0;padding:0}section{margin:2rem 0}section:first-of-type{margin-top:0}section>h2{display:flex;align-items:center;font-size:1.6rem;margin-top:0;margin-bottom:.5rem}@media screen and (min-width:800px){section>h2{margin-bottom:2rem}}.index h2,section>h2{border-bottom-width:0}@media screen and (min-width:800px){.index h2,section>h2{border-bottom-width:4px}}a.section-button{font-weight:500;background:var(--light-background);color:var(--dark-font-color);padding:.4rem .6rem;font-size:.8rem;border-radius:.3rem;border-width:0!important;white-space:nowrap;line-height:1;margin-left:2rem;margin-top:.5rem}a.section-button:hover{background:var(--light-background-hover);color:var(--heading-color)}@media screen and (min-width:800px){section{margin:3.5rem 0}section>h2{font-size:2rem;margin:0 0 1rem}}.container{max-width:825px;padding:0 1.5rem;margin-left:auto;margin-right:auto}.container.page p{max-width:600px}@media screen and (min-width:800px){.container{padding:0 2rem}}img{display:inline-block;max-width:100%;height:auto}blockquote,dl,ol,p,table,ul{font-size:1.05rem;margin:0 0 1.5rem}ul{padding:0 1rem}@media screen and (min-width:800px){blockquote,dl,ol,p,table,ul{font-size:1.125rem}ul{padding:0 2rem}}ul li p{margin:0}ul li ul{padding-left:1rem;margin:0}ul li ul li{margin:0}ol li ol{margin-bottom:0}.task-list-item [type=checkbox]{margin-right:.5rem}blockquote{margin:2rem 0;padding:1rem;background:var(--blockquote);font-weight:400;border-left:5px solid var(--blockquote-left)}@media screen and (min-width:800px){blockquote{padding:2rem 0 2rem 2rem}}::selection{background:#3b5bdb;color:#fff}h1{color:var(--h1-color)}h3,h4{color:var(--medium-font-color)}h2,h5{color:var(--heading-color)}h1,h2,h3,h4,h5{margin:0 0 1.5rem;font-weight:700;line-height:1.2;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1:not(:first-child),h2:not(:first-child),h3:not(:first-child),h4:not(:first-child){margin-top:3rem}h1{font-size:2.5rem;line-height:1.1}h2{font-size:1.75rem;padding-bottom:.5rem;border-bottom:4px solid var(--light-background)}h3{font-size:1.5rem;color:var(--font-color);font-weight:600;margin-bottom:1rem}h4{font-size:1.3rem;color:var(--font-color);font-weight:500;margin-bottom:1rem;border-bottom:2px solid var(--light-background);padding-bottom:.25rem}h5{font-size:1.2rem;margin-bottom:1rem}@media screen and (min-width:800px){h1{font-size:3rem}h2{font-size:1.9rem}h3{font-size:1.7rem;color:var(--font-color);font-weight:600}h4{font-weight:400;font-size:1.4rem}}a.link{display:block;padding:.25rem 0;margin:.25rem 0;border-radius:.35rem;font-weight:600;color:var(--dark-font-color)}a.link:hover{color:var(--link-color)}a.button{display:inline-block;border:2px solid var(--link-color);padding:.3rem .6rem;margin-right:.75rem;font-weight:500;background:var(--link-color);color:#fff;border-radius:.35rem;font-size:.9rem}a.button.large{padding:.8rem 1rem;font-size:1.05rem}a.button.secondary{border:2px solid #edf2ff;background:#edf2ff;color:#3b5bdb}a.button.secondary:hover,a.button:hover{border:2px solid var(--link-color-darker);background:var(--link-color-darker);color:#fff}@media screen and (min-width:800px){a.button{font-size:.9rem}a.button.large{padding:1rem 1.5rem;font-size:1.1rem}}p.subtitle{color:var(--medium-font-color);font-size:1.3rem;font-weight:300;margin-bottom:0}@media screen and (min-width:800px){p.subtitle{font-size:1.5rem}}a{color:inherit;text-decoration:none}a.image-link{border-width:0}main{margin-top:50px}@media screen and (min-width:800px){main{margin-top:0}}.emoji{margin:0 .4rem 0 .1rem}.navbar{width:100%;position:fixed;top:0;left:0;background:var(--navbar-color);box-shadow:0 3px 13px rgba(100,110,140,.1),0 2px 4px rgba(100,110,140,.15);z-index:2;padding:.5rem}.navbar .flex{justify-content:space-between}.navbar a{border-radius:.35rem;margin:0 .05rem;color:rgba(255,255,255,.65);font-weight:400;font-size:.85rem;border:1px solid transparent;padding:0 .3rem;background:0 0}.navbar a:first-of-type{margin-left:-1rem}.navbar a .emoji{display:none}.navbar a.brand{font-weight:500;color:#fff;white-space:nowrap;border:none;display:flex;align-items:center;line-height:1;background:0 0}.navbar a.brand .emoji{display:inline-block!important}.navbar a.brand img{height:22px;width:22px}.navbar button{font-size:1rem;margin-right:-1rem}@media screen and (min-width:500px){.navbar a{font-size:.95rem;padding:.5rem}}@media screen and (min-width:800px){.emoji{margin:0 .5rem 0 .1rem}.navbar{position:static;padding:1.5rem 0;background:0 0;box-shadow:none}.navbar .flex{justify-content:space-between}.navbar a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.navbar a:first-of-type{margin-left:-1.5rem}.navbar a:hover,.navbar a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}.navbar a.brand{font-size:1.3rem;margin-right:3rem;border:none;background:0 0!important;color:var(--dark-font-color)}.navbar a.brand:hover{background:var(--light-background)!important}.navbar a.brand img{height:26px;width:26px;margin-right:.25rem}#dark-mode-button:hover{background:var(--light-background)}}@media print{.navbar{display:none}}#dark-mode-button{display:flex;border:none;padding:.2rem .7rem .2rem .5rem;border-radius:.35rem;box-sizing:content-box;cursor:pointer;font-size:1.1rem;background:0 0}#dark-mode-button .dark{display:none}#dark-mode-button:focus{outline:0}[data-user-color-scheme] #dark-mode-button .light{display:none}[data-user-color-scheme] #dark-mode-button .dark{display:unset}@media screen and (min-width:800px){#dark-mode-button{padding:.95rem .75rem;font-size:1.2rem}}.my{padding-top:2rem}.my a{border:none;margin-right:1rem}.my a:hover{border:none}.post-row{display:flex;align-items:center;width:100%}.post-row time{display:block;flex:0 0 65px}.post-row h3{flex:1}.posts .post:last-of-type a{border-bottom-width:0}.post a{display:flex;align-items:center;justify-content:stretch;padding:1rem 0;border-bottom:2px solid var(--light-background)}.post a:hover{border-radius:.3rem}.post h3{margin-top:.1rem;margin-bottom:0;font-size:1.1rem;font-weight:600}@media screen and (min-width:800px){.posts{margin-left:-1rem;margin-right:-1rem}.post a{padding:.75rem 1rem;border-bottom-color:transparent}.post a:hover{background:var(--light-background)}.post h3{font-size:1.3rem}.post-row time{flex:0 0 80px}}.new-post,.popular-post{display:inline-block;color:#111;padding:.3rem .4rem;border-radius:.3rem;font-size:.85rem;margin-left:1rem}.new-post{background:#d3f9d8}.popular-post{background:#dce6fd;color:var(--heading-color)}@media screen and (min-width:800px){.new-post,.popular-post{margin-bottom:0}}.footer{padding:2rem 0}.footer>.flex{flex-direction:column;align-items:center;justify-content:center}.footer img{height:30px;width:30px}.footer a{border-radius:.35rem;margin:0 .05rem;font-weight:400;font-size:1rem;border:1px solid transparent;padding:.5rem;margin:0 .5rem;color:var(--light-font-color)}.footer a:hover{color:var(--heading-color);background:var(--light-background)}.footer a.img{display:flex;align-items:center;padding:0;margin:0 .75rem;background:0 0}.footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.flex nav{padding:1rem 0}@media screen and (min-width:800px){.footer>.flex{align-items:flex-start;margin-left:-1.5rem;margin-right:-1.5rem}.footer a{padding:.75rem}.footer a.img{padding:0 .5rem;margin:0 1rem}}@media print{.footer{display:none}}.small{max-width:600px}.meta,time{color:var(--light-font-color);font-size:.85rem;white-space:nowrap;font-weight:400}.meta{color:var(--medium-font-color);font-size:1rem}table{border-collapse:separate;border-spacing:0;width:100%;max-width:100%;overflow-x:auto}tbody,thead{white-space:nowrap}th{border-bottom:2px solid var(--border)}tfoot th{border-top:1px solid var(--border)}td{border-bottom:1px solid var(--border)}td,th{text-align:left;padding:.75rem;hyphens:auto}tbody tr:nth-child(even){background-color:var(--light-background)}@media screen and (min-width:800px){table{display:table;border:1px solid var(--border)}tbody,thead{white-space:normal}}.count{font-weight:700;color:var(--link-color)}.tags{display:flex!important;flex-wrap:wrap;align-items:center;margin-left:-.5rem;margin-right:-.5rem}.tags>a{display:block;font-weight:500;background:var(--light-background);color:var(--font-color);margin:.2rem;padding:.5rem .6rem;font-size:.8rem;border-radius:.3rem;border-bottom:0;white-space:nowrap;line-height:1}.tags>a:hover{background:var(--light-background-hover);color:var(--heading-color)}mark{background:#ffec99}.utterances{margin-left:-4px;margin-right:-4px}kbd{background-color:#f7f7f7;border:2px solid rgba(0,0,0,.3);border-radius:3px;box-shadow:0 1px rgba(0,0,0,.2),inset 0 0 0 2px #fff;color:#333;display:inline-block;font-family:Helvetica Neue,Inter,-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;line-height:1.4;margin:0 .1em;padding:.1em .6em;text-shadow:0 1px 0 #fff;font-size:14px}#comments{margin-top:3rem}#comments h2{margin:0}@media print{#comments,.comments{display:none}}#search-query{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;width:100%;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem}#search-query:focus{border-color:#5183f5}#search-results{display:none}.filter-container{display:flex;justify-content:flex-start;margin-bottom:1.5rem;flex-wrap:wrap}.filter-item{font-size:.85rem;padding:.5rem .75rem;background:var(--light-background);border-radius:4px;margin-right:.5rem;margin-bottom:.5rem;font-weight:600;cursor:pointer}.filter-item:hover{background:#d8e3fd;color:#3972f4}.filter-item:last-of-type{margin-right:0}.filter-item.active{background:#5183f5;color:#fff}.filter-item.active:hover{color:#fff;background:#2161f2}header{padding:1.5rem 0}header h1{font-size:2rem;display:inline-block;font-weight:600;margin-top:1rem}header u{display:inline-block;text-decoration:none;padding:.4rem 0}.article-header{padding-top:2rem;margin-bottom:.5rem}.article-header .container{padding-left:0;padding-right:0}.article-header .thumb{display:flex;flex-direction:column}.article-header h1{font-weight:700;font-size:1.8rem;margin:0}.article-header .description{font-size:1.2rem;color:var(--light-font-color);font-weight:300;margin-top:2rem;margin-bottom:0}.post-meta{margin-top:1rem;padding:0;color:var(--light-font-color);font-size:.9rem}.post-meta a{color:var(--font-color);border-width:0}.post-meta time{margin-top:.2rem;font-size:.9rem}.post-meta .tags{margin-top:.5rem}.post-meta .tags a{text-decoration:none}.article-post{margin-bottom:2rem}.article-post img{border-radius:5px;display:block;margin-left:auto;margin-right:auto}.article-post a{box-shadow:0 -2px rgba(189,195,199,.5) inset;transition:all .3s ease}.article-post a:hover{box-shadow:0 -10px rgba(189,195,199,.7) inset}.article-post h1 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h1 .anchor .icon{visibility:hidden}.article-post h1:hover .anchor{box-shadow:none}.article-post h1:hover .anchor .icon{visibility:visible}.article-post h2 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h2 .anchor .icon{visibility:hidden}.article-post h2:hover .anchor{box-shadow:none}.article-post h2:hover .anchor .icon{visibility:visible}.article-post h3 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h3 .anchor .icon{visibility:hidden}.article-post h3:hover .anchor{box-shadow:none}.article-post h3:hover .anchor .icon{visibility:visible}.article-post h4 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h4 .anchor .icon{visibility:hidden}.article-post h4:hover .anchor{box-shadow:none}.article-post h4:hover .anchor .icon{visibility:visible}.article-post h5 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h5 .anchor .icon{visibility:hidden}.article-post h5:hover .anchor{box-shadow:none}.article-post h5:hover .anchor .icon{visibility:visible}.article-post h6 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h6 .anchor .icon{visibility:hidden}.article-post h6:hover .anchor{box-shadow:none}.article-post h6:hover .anchor .icon{visibility:visible}@media screen and (min-width:800px){.article-post{margin-bottom:3rem}.article-post h1,.article-post h2,.article-post h3,.article-post h4,.article-post h5{padding-top:1rem}.post-meta{margin-top:.5rem;padding:.5rem 0}header h1{font-size:3rem;margin-top:2rem}header u{background:linear-gradient(transparent 85%,#bac8ff 0)}.article-header{padding-top:3rem}.article-header h1{padding-top:0;font-size:2.5rem}.article-header .thumb{flex-direction:row}.article-header .description{font-size:1.8rem;line-height:1.5}}@media screen and (min-width:1100px){.article-header h1{font-size:2.5rem}}.post-thumbnail{display:block!important}.side{width:200px;margin:0 auto}.side p{margin:0}.side-right{float:right;clear:right;margin-right:calc(-200px - 2em);background-color:var(--background)}.side-right p{font-size:.9rem}.footnotes ol li p{margin:0}.footnotes hr{border:none;border-top:1px solid var(--border)}.footnote-ref{box-shadow:none!important}.footnote-backref{box-shadow:none!important}.note-ref{cursor:pointer;border:none;box-shadow:none!important}.note-ref:hover{box-shadow:none;border:none}.bg-number{background:var(--light-background);font-size:.9rem;color:var(--font-color);text-decoration:none;padding:1px 5px;border-radius:5px}@media(max-width:1280px){.side{width:100%;padding:0 2em}.side-right{float:none;clear:both;margin:1em auto;background:0 0}}@media(min-width:1280px){.note-ref:hover~.side{display:inline-block;position:absolute;margin-left:1rem;padding:.5rem;box-sizing:content-box}}.suggested{flex-direction:column;align-items:stretch;margin-left:-1rem;margin-right:-1rem;padding:0}.suggested span{font-weight:400;display:block;font-size:.9rem;color:var(--transparent-text)}.suggested a{background:0 0;margin:.5rem 1rem;border-bottom:none;transition:all .2s ease;padding:1.5rem;border-radius:.35rem;background:var(--light-background);color:var(--heading-color)}.suggested a:hover{transform:translate3D(0,-1px,0);background:var(--light-background-hover)}@media screen and (min-width:800px){.suggested{flex-direction:row}.suggested a{flex:0 0 calc(50% - 2rem)}.suggested a:first-of-type{text-align:right}}.projects .project:last-of-type{border-bottom-width:0}.project{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:2px solid var(--light-background)}.project .icon{font-size:1.5rem;width:40px}.project a{display:flex;align-items:center;margin-bottom:.25rem;border-width:0}.project a:hover h3{text-decoration:underline}.project a.button{margin-left:1.5rem;border-width:2px}.project h3{font-size:1.2rem;margin:0}.project .description{font-size:1.1rem;color:var(--light-font-color)}@media screen and (min-width:800px){.project{border-bottom-width:0}.project h3{font-size:1.3rem}.project .description{font-size:1rem}}.terms a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color);border-radius:.35rem}.terms a:hover{background:var(--light-background);color:var(--dark-font-color)}.pagination{display:flex}.pagination .next-page,.pagination .prev-page{flex-grow:1;flex-shrink:1;display:flex}.pagination .next-page{justify-content:flex-end}.pagination a{border-radius:.35rem;padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.pagination a:hover,.pagination a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}@media(prefers-color-scheme:dark){:root{--color-mode:dark}:root:not([data-user-color-scheme]){--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#706d6361;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}}[data-user-color-scheme=dark]{--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#706d6361;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}.alert a,a,h1,header a{text-decoration:none}.alert a,.comment-head,cite.fn{font-weight:700}.alert{margin:1em 0;padding:4px 8px;border-radius:0}.alert a{border:0}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.info{color:#1d6fee;border:1px solid #1d6fee}p.comment-user-info{margin-bottom:.5em}.comment-list p.comment-user-info{display:block;margin-bottom:.5em}.info{color:#88b4f6;border:1px solid #88b4f6}.comment-author .avatar{float:left;margin-right:8px;border-radius:100%}.comment-meta{overflow:hidden;line-height:1.4;margin-bottom:10px}.comment .fn{color:#bc403e}.comment-body{padding:30px 0;border-bottom:1px solid #eee;position:relative}.comment-body p{font-size:14px;color:var(--comment-body-color)}.comment-body p:last-child{margin-bottom:0}.comment-body .reply{position:absolute;top:10px;right:0}.comment-body .reply .comment-reply-link{color:#fff;font-family:exoregular;display:inline-block;line-height:1.2;border-radius:3px;padding:3px 8px;background-color:#bc403e;font-size:12px}.comment-list{padding-bottom:30px}.comment-reply-title,.comments-title{font-size:18px;color:rgba(0,0,0,.44);margin-bottom:20px}.comment-form label{display:block;font-size:12px;color:#999}.comment-form p{margin-bottom:20px}.comment-form input[type=text]{line-height:32px;width:260px;padding:0 10px}#comment,.comment-form input[type=text]{border-radius:3px;background-color:var(--comment-background-color);border:1px solid #eee;font-size:14px}#comment{resize:none;padding:10px;box-sizing:border-box;width:100%}.says{display:none}.comment-meta{font-size:14px;color:var(--comment-meta)}.comments-pagination{margin-bottom:15px}#submit{background-color:var(--submit-color);display:inline-block;border:1px solid #eee;padding:4px 8px;font-size:14px;color:#999;cursor:pointer;border-radius:3px}#submit:hover{border-color:#bc403e;color:#bc403e}.says{display:none}.mark{margin:0 5px;padding:2px;background:#ffec99;border-bottom:1px solid #ffec99}.linkpage ul{color:rgba(255,255,255,.15)}.linkpage ul:after{content:" ";clear:both;display:block}.linkpage li{float:left;width:48%;position:relative;-webkit-transition:.3s ease-out;transition:.3s ease-out;border-radius:5px;line-height:1.3;height:90px;display:block}.linkpage h3{margin:15px -25px;padding:0 25px;border-left:5px solid #51aded;background-color:#f7f7f7;font-size:25px;line-height:40px}.linkpage li:hover{background:rgba(230,244,250,.5);cursor:pointer}.linkpage li a{padding:0 10px 0 90px}.linkpage li a img{width:60px;height:60px;border-radius:50%;position:absolute;top:15px;left:15px;cursor:pointer;margin:auto;border:none}.linkpage li a h4{color:var(--inkpage-li-a-h4-color);font-size:18px;margin:0 0 7px;padding-left:90px}.linkpage li a h4:hover{color:#51aded}.linkpage li a h4,.linkpage li a p{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:1.4;margin:0!important}.linkpage li a p{font-size:12px;color:#999;padding-left:90px}@media(max-width:460px){.linkpage li{width:97%}.linkpage ul{padding-left:5px}}pre{position:relative;padding:30px 10px 10px 10px;background:#282b2e;border-radius:8px;box-shadow:rgb(0 0 0 / 30%) 0px 5px 20px;}.article-post pre code{font-family:Consolas;}pre::after{display:block;content:" ";position:absolute;border-radius:50%;background:#ff5f56;width:12px;height:12px;top:0;left:12px;margin-top:12px;-webkit-box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;}code::-webkit-scrollbar{background:transparent;height:6px;}::-webkit-scrollbar{width:10px;height:8px;background-color:rgb(0 0 0 / 0%);}code::-webkit-scrollbar-thumb{background:rgb(255 255 255 / 46%) !important;box-shadow:none !important;border:none !important;border-radius:10px;transition:background 0.3s ease;}::-webkit-scrollbar-thumb{background-color:var(--webkit-scrollbar);border-radius:100px;border:2px solid transparent;background-clip:content-box;}code::-webkit-scrollbar-track{border:none;background:transparent !important;}::-webkit-scrollbar-track{background-color:transparent;} \ No newline at end of file +/*! SmileCSS for v2.0.0 | Created by Magneto for Smiletheme| Size about 25.5KB */ +html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:transparent}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],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{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}*,::after,::before{box-sizing:border-box}:root{--color-mode:light;--h1-color:#343a40;--font-color:#495057;--heading-color:#343a40;--background:white;--dark-font-color:#1b1d25;--medium-font-color:#60656c;--light-font-color:#858b93;--light-background:#f1f4f8;--light-background-hover:#e1e6ed;--border:#d6d9de;--link-color:#5183f5;--link-color-darker:#364fc7;--navbar-color:#1b1d25;--blockquote:#f9f9f9;--blockquote-left:#e3e6eb;--transparent-text:rgba(0,0,0,0.7);--transparent-bg:rgba(0,0,0,0.05);--light-transparent-bg:rgba(255,255,255,0.1);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#fff;--submit-color:#fff;--comment-body-color:#343a40;--comment-meta:rgba(0 0 0 / 44%);--inkpage-li-a-h4-color:#333333;--webkit-scrollbar:rgb(78 76 76 / 30%)}.flex{display:flex;align-items:center}.flex-row{display:flex;flex-direction:column}@media screen and (min-width:800px){.flex-row{flex-direction:row}}.flex-col{flex:1}.flex-two-thirds{flex:2}.justify-center{justify-content:center}html{font-family:-apple-system,BlinkMacSystemFont,helvetica neue,roboto,Roboto,Arial,noto sans,sans-serif,apple color emoji,segoe ui,segoe ui emoji,segoe ui symbol,noto color emoji;color:var(--font-color);font-weight:400;font-size:1rem;line-height:1.75}body{background:var(--background);margin:0;padding:0}section{margin:2rem 0}section:first-of-type{margin-top:0}section>h2{display:flex;align-items:center;font-size:1.6rem;margin-top:0;margin-bottom:.5rem}@media screen and (min-width:800px){section>h2{margin-bottom:2rem}}.index h2,section>h2{border-bottom-width:0}@media screen and (min-width:800px){.index h2,section>h2{border-bottom-width:4px}}a.section-button{font-weight:500;background:var(--light-background);color:var(--dark-font-color);padding:.4rem .6rem;font-size:.8rem;border-radius:.3rem;border-width:0!important;white-space:nowrap;line-height:1;margin-left:2rem;margin-top:.5rem}a.section-button:hover{background:var(--light-background-hover);color:var(--heading-color)}@media screen and (min-width:800px){section{margin:3.5rem 0}section>h2{font-size:2rem;margin:0 0 1rem}}.container{max-width:825px;padding:0 1.5rem;margin-left:auto;margin-right:auto}.container.page p{max-width:600px}@media screen and (min-width:800px){.container{padding:0 2rem}}img{display:inline-block;max-width:100%;height:auto}blockquote,dl,ol,p,table,ul{font-size:1.05rem;margin:0 0 1.5rem}ul{padding:0 1rem}@media screen and (min-width:800px){blockquote,dl,ol,p,table,ul{font-size:1.125rem}ul{padding:0 2rem}}ul li p{margin:0}ul li ul{padding-left:1rem;margin:0}ul li ul li{margin:0}ol li ol{margin-bottom:0}.task-list-item [type=checkbox]{margin-right:.5rem}blockquote{margin:2rem 0;padding:1rem;background:var(--blockquote);font-weight:400;border-left:5px solid var(--blockquote-left)}@media screen and (min-width:800px){blockquote{padding:2rem 0 2rem 2rem}}::selection{background:#3b5bdb;color:#fff}h1{color:var(--h1-color)}h3,h4{color:var(--medium-font-color)}h2,h5{color:var(--heading-color)}h1,h2,h3,h4,h5{margin:0 0 1.5rem;font-weight:700;line-height:1.2;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1:not(:first-child),h2:not(:first-child),h3:not(:first-child),h4:not(:first-child){margin-top:3rem}h1{font-size:2.5rem;line-height:1.1}h2{font-size:1.75rem;padding-bottom:.5rem;border-bottom:4px solid var(--light-background)}h2 code{font-size:1.75rem!important}h3{font-size:1.5rem;color:var(--font-color);font-weight:600;margin-bottom:1rem}h3 code{font-size:1.4rem!important}h4{font-size:1.3rem;color:var(--font-color);font-weight:500;margin-bottom:1rem;border-bottom:2px solid var(--light-background);padding-bottom:.25rem}h5{font-size:1.2rem;margin-bottom:1rem}@media screen and (min-width:800px){h1{font-size:3rem}h2{font-size:1.9rem}h3{font-size:1.7rem;color:var(--font-color);font-weight:600}h4{font-weight:400;font-size:1.4rem}}a.link{display:block;padding:.25rem 0;margin:.25rem 0;border-radius:.35rem;font-weight:600;color:var(--dark-font-color)}a.link:hover{color:var(--link-color)}a.button{display:inline-block;border:2px solid var(--link-color);padding:.3rem .6rem;margin-right:.75rem;font-weight:500;background:var(--link-color);color:#fff;border-radius:.35rem;font-size:.9rem}a.button.large{padding:.8rem 1rem;font-size:1.05rem}a.button.secondary{border:2px solid #edf2ff;background:#edf2ff;color:#3b5bdb}a.button.secondary:hover,a.button:hover{border:2px solid var(--link-color-darker);background:var(--link-color-darker);color:#fff}@media screen and (min-width:800px){a.button{font-size:.9rem}a.button.large{padding:1rem 1.5rem;font-size:1.1rem}}p.subtitle{color:var(--medium-font-color);font-size:1.3rem;font-weight:300;margin-bottom:0}@media screen and (min-width:800px){p.subtitle{font-size:1.5rem}}a{color:inherit;text-decoration:none}a.image-link{border-width:0}main{margin-top:50px}@media screen and (min-width:800px){main{margin-top:0}}.emoji{margin:0 .4rem 0 .1rem}.navbar{width:100%;position:fixed;top:0;left:0;background:var(--navbar-color);box-shadow:0 3px 13px rgba(100,110,140,.1),0 2px 4px rgba(100,110,140,.15);z-index:2;padding:.5rem}.navbar .flex{justify-content:space-between}.navbar a{border-radius:.35rem;margin:0 .05rem;color:rgba(255,255,255,.65);font-weight:400;font-size:.85rem;border:1px solid transparent;padding:0 .3rem;background:0 0}.navbar a:first-of-type{margin-left:-1rem}.navbar a .emoji{display:none}.navbar a.brand{font-weight:500;color:#fff;white-space:nowrap;border:none;display:flex;align-items:center;line-height:1;background:0 0}.navbar a.brand .emoji{display:inline-block!important}.navbar a.brand img{height:22px;width:22px}.navbar button{font-size:1rem;margin-right:-1rem}@media screen and (min-width:500px){.navbar a{font-size:.95rem;padding:.5rem}}@media screen and (min-width:800px){.emoji{margin:0 .5rem 0 .1rem}.navbar{position:static;padding:1.5rem 0;background:0 0;box-shadow:none}.navbar .flex{justify-content:space-between}.navbar a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.navbar a:first-of-type{margin-left:-1.5rem}.navbar a:hover,.navbar a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}.navbar a.brand{font-size:1.3rem;margin-right:3rem;border:none;background:0 0!important;color:var(--dark-font-color)}.navbar a.brand:hover{background:var(--light-background)!important}.navbar a.brand img{height:26px;width:26px;margin-right:.25rem}#dark-mode-button:hover{background:var(--light-background)}}@media print{.navbar{display:none}}#dark-mode-button{display:flex;border:none;padding:.2rem .7rem .2rem .5rem;border-radius:.35rem;box-sizing:content-box;cursor:pointer;font-size:1.1rem;background:0 0}#dark-mode-button .dark{display:none}#dark-mode-button:focus{outline:0}[data-user-color-scheme] #dark-mode-button .light{display:none}[data-user-color-scheme] #dark-mode-button .dark{display:unset}@media screen and (min-width:800px){#dark-mode-button{padding:.95rem .75rem;font-size:1.2rem}}.my{padding-top:2rem}.my a{border:none;margin-right:1rem}.my a:hover{border:none}.post-row{display:flex;align-items:center;width:100%}.post-row time{display:block;flex:0 0 65px}.post-row h3{flex:1}.posts .post:last-of-type a{border-bottom-width:0}.post a{display:flex;align-items:center;justify-content:stretch;padding:1rem 0;border-bottom:2px solid var(--light-background)}.post a:hover{border-radius:.3rem}.post h3{margin-top:.1rem;margin-bottom:0;font-size:1.1rem;font-weight:600}@media screen and (min-width:800px){.posts{margin-left:-1rem;margin-right:-1rem}.post a{padding:.75rem 1rem;border-bottom-color:transparent}.post a:hover{background:var(--light-background)}.post h3{font-size:1.3rem}.post-row time{flex:0 0 80px}}.new-post,.popular-post{display:inline-block;color:#111;padding:.3rem .4rem;border-radius:.3rem;font-size:.85rem;margin-left:1rem}.new-post{background:#d3f9d8}.popular-post{background:#dce6fd;color:var(--heading-color)}@media screen and (min-width:800px){.new-post,.popular-post{margin-bottom:0}}.footer{padding:2rem 0}.footer>.flex{flex-direction:column;align-items:center;justify-content:center}.footer img{height:30px;width:30px}.footer a{border-radius:.35rem;margin:0 .05rem;font-weight:400;font-size:1rem;border:1px solid transparent;padding:.5rem;margin:0 .5rem;color:var(--light-font-color)}.footer a:hover{color:var(--heading-color);background:var(--light-background)}.footer a.img{display:flex;align-items:center;padding:0;margin:0 .75rem;background:0 0}.footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.flex nav{padding:1rem 0}@media screen and (min-width:800px){.footer>.flex{align-items:flex-start;margin-left:-1.5rem;margin-right:-1.5rem}.footer a{padding:.75rem}.footer a.img{padding:0 .5rem;margin:0 1rem}}@media print{.footer{display:none}}.small{max-width:600px}.meta,time{color:var(--light-font-color);font-size:.85rem;white-space:nowrap;font-weight:400}.meta{color:var(--medium-font-color);font-size:1rem}table{border-collapse:separate;border-spacing:0;width:100%;max-width:100%;overflow-x:auto}tbody,thead{white-space:nowrap}th{border-bottom:2px solid var(--border)}tfoot th{border-top:1px solid var(--border)}td{border-bottom:1px solid var(--border)}td,th{text-align:left;padding:.75rem;hyphens:auto}tbody tr:nth-child(even){background-color:var(--light-background)}@media screen and (min-width:800px){table{display:table;border:1px solid var(--border)}tbody,thead{white-space:normal}}.count{font-weight:700;color:var(--link-color)}.tags{display:flex!important;flex-wrap:wrap;align-items:center;margin-left:-.5rem;margin-right:-.5rem}.tags>a{display:block;font-weight:500;background:var(--light-background);color:var(--font-color);margin:.2rem;padding:.5rem .6rem;font-size:.8rem;border-radius:.3rem;border-bottom:0;white-space:nowrap;line-height:1}.tags>a:hover{background:var(--light-background-hover);color:var(--heading-color)}mark{background:#ffec99}.utterances{margin-left:-4px;margin-right:-4px}kbd{background-color:#f7f7f7;border:2px solid rgba(0,0,0,.3);border-radius:3px;box-shadow:0 1px rgba(0,0,0,.2),inset 0 0 0 2px #fff;color:#333;display:inline-block;font-family:Helvetica Neue,Inter,-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;line-height:1.4;margin:0 .1em;padding:.1em .6em;text-shadow:0 1px 0 #fff;font-size:14px}#comments{margin-top:3rem}#comments h2{margin:0}@media print{#comments,.comments{display:none}}#search-query{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;width:100%;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem}#search-query:focus{border-color:#5183f5}#search-results{display:none}.filter-container{display:flex;justify-content:flex-start;margin-bottom:1.5rem;flex-wrap:wrap}.filter-item{font-size:.85rem;padding:.5rem .75rem;background:var(--light-background);border-radius:4px;margin-right:.5rem;margin-bottom:.5rem;font-weight:600;cursor:pointer}.filter-item:hover{background:#d8e3fd;color:#3972f4}.filter-item:last-of-type{margin-right:0}.filter-item.active{background:#5183f5;color:#fff}.filter-item.active:hover{color:#fff;background:#2161f2}header{padding:1.5rem 0}header h1{font-size:2rem;display:inline-block;font-weight:600;margin-top:1rem}header u{display:inline-block;text-decoration:none;padding:.4rem 0}.article-header{padding-top:2rem;margin-bottom:.5rem}.article-header .container{padding-left:0;padding-right:0}.article-header .thumb{display:flex;flex-direction:column}.article-header h1{font-weight:700;font-size:1.8rem;margin:0}.article-header .description{font-size:1.2rem;color:var(--light-font-color);font-weight:300;margin-top:2rem;margin-bottom:0}.post-meta{margin-top:1rem;padding:0;color:var(--light-font-color);font-size:.9rem}.post-meta a{color:var(--font-color);border-width:0}.post-meta time{margin-top:.2rem;font-size:.9rem}.post-meta .tags{margin-top:.5rem}.post-meta .tags a{text-decoration:none}.article-post{margin-bottom:2rem}.article-post img{border-radius:5px;display:block;margin-left:auto;margin-right:auto}.article-post a{box-shadow:0 -2px rgba(189,195,199,.5) inset;transition:all .3s ease}.article-post a:hover{box-shadow:0 -10px rgba(189,195,199,.7) inset}.article-post code{overflow-x:auto}.article-post h1 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h1 .anchor .icon{visibility:hidden}.article-post h1:hover .anchor{box-shadow:none}.article-post h1:hover .anchor .icon{visibility:visible}.article-post h2 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h2 .anchor .icon{visibility:hidden}.article-post h2:hover .anchor{box-shadow:none}.article-post h2:hover .anchor .icon{visibility:visible}.article-post h3 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h3 .anchor .icon{visibility:hidden}.article-post h3:hover .anchor{box-shadow:none}.article-post h3:hover .anchor .icon{visibility:visible}.article-post h4 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h4 .anchor .icon{visibility:hidden}.article-post h4:hover .anchor{box-shadow:none}.article-post h4:hover .anchor .icon{visibility:visible}.article-post h5 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h5 .anchor .icon{visibility:hidden}.article-post h5:hover .anchor{box-shadow:none}.article-post h5:hover .anchor .icon{visibility:visible}.article-post h6 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h6 .anchor .icon{visibility:hidden}.article-post h6:hover .anchor{box-shadow:none}.article-post h6:hover .anchor .icon{visibility:visible}@media screen and (min-width:800px){.article-post{margin-bottom:3rem}.article-post h1,.article-post h2,.article-post h3,.article-post h4,.article-post h5{padding-top:1rem}.post-meta{margin-top:.5rem;padding:.5rem 0}header h1{font-size:3rem;margin-top:2rem}header u{background:linear-gradient(transparent 85%,#bac8ff 0)}.article-header{padding-top:3rem}.article-header h1{padding-top:0;font-size:2.5rem}.article-header .thumb{flex-direction:row}.article-header .description{font-size:1.8rem;line-height:1.5}}@media screen and (min-width:1100px){.article-header h1{font-size:2.5rem}}.post-thumbnail{display:block!important}code,pre{font-size:.9rem;font-family:Consolas,Monaco,Menlo,dejavu sans mono,bitstream vera sans mono,courier new,monospace;background:#373b41}:not(pre)>code{color:var(--dark-font-color);background:var(--light-background)}code{padding:3px 5px;border-radius:4px;color:#f8f8f2}pre>code{display:block}.side{width:200px;margin:0 auto}.side p{margin:0}.side-right{float:right;clear:right;margin-right:calc(-200px - 2em);background-color:var(--background)}.side-right p{font-size:.9rem}.footnotes ol li p{margin:0}.footnotes hr{border:none;border-top:1px solid var(--border)}.footnote-ref{box-shadow:none!important}.footnote-backref{box-shadow:none!important}.note-ref{cursor:pointer;border:none;box-shadow:none!important}.note-ref:hover{box-shadow:none;border:none}.bg-number{background:var(--light-background);font-size:.9rem;color:var(--font-color);text-decoration:none;padding:1px 5px;border-radius:5px}@media(max-width:1280px){.side{width:100%;padding:0 2em}.side-right{float:none;clear:both;margin:1em auto;background:0 0}}@media(min-width:1280px){.note-ref:hover~.side{display:inline-block;position:absolute;margin-left:1rem;padding:.5rem;box-sizing:content-box}}.suggested{flex-direction:column;align-items:stretch;margin-left:-1rem;margin-right:-1rem;padding:0}.suggested span{font-weight:400;display:block;font-size:.9rem;color:var(--transparent-text)}.suggested a{background:0 0;margin:.5rem 1rem;border-bottom:none;transition:all .2s ease;padding:1.5rem;border-radius:.35rem;background:var(--light-background);color:var(--heading-color)}.suggested a:hover{transform:translate3D(0,-1px,0);background:var(--light-background-hover)}@media screen and (min-width:800px){.suggested{flex-direction:row}.suggested a{flex:0 0 calc(50% - 2rem)}.suggested a:first-of-type{text-align:right}}.projects .project:last-of-type{border-bottom-width:0}.project{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:2px solid var(--light-background)}.project .icon{font-size:1.5rem;width:40px}.project a{display:flex;align-items:center;margin-bottom:.25rem;border-width:0}.project a:hover h3{text-decoration:underline}.project a.button{margin-left:1.5rem;border-width:2px}.project h3{font-size:1.2rem;margin:0}.project .description{font-size:1.1rem;color:var(--light-font-color)}@media screen and (min-width:800px){.project{border-bottom-width:0}.project h3{font-size:1.3rem}.project .description{font-size:1rem}}.terms a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color);border-radius:.35rem}.terms a:hover{background:var(--light-background);color:var(--dark-font-color)}.pagination{display:flex}.pagination .next-page,.pagination .prev-page{flex-grow:1;flex-shrink:1;display:flex}.pagination .next-page{justify-content:flex-end}.pagination a{border-radius:.35rem;padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.pagination a:hover,.pagination a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}@media(prefers-color-scheme:dark){:root{--color-mode:dark}:root:not([data-user-color-scheme]){--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#706d6361;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}}[data-user-color-scheme=dark]{--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#706d6361;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}.alert a,a,h1,header a{text-decoration:none}.alert a,.comment-head,cite.fn{font-weight:700}.alert{margin:1em 0;padding:4px 8px;border-radius:0}.alert a{border:0}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.info{color:#1d6fee;border:1px solid #1d6fee}p.comment-user-info{margin-bottom:.5em}.comment-list p.comment-user-info{display:block;margin-bottom:.5em}.info{color:#88b4f6;border:1px solid #88b4f6}.comment-author .avatar{float:left;margin-right:8px;border-radius:100%}.comment-meta{overflow:hidden;line-height:1.4;margin-bottom:10px}.comment .fn{color:#bc403e}.comment-body{padding:30px 0;border-bottom:1px solid #eee;position:relative}.comment-body p{font-size:14px;color:var(--comment-body-color)}.comment-body p:last-child{margin-bottom:0}.comment-body .reply{position:absolute;top:10px;right:0}.comment-body .reply .comment-reply-link{color:#fff;font-family:exoregular;display:inline-block;line-height:1.2;border-radius:3px;padding:3px 8px;background-color:#bc403e;font-size:12px}.comment-list{padding-bottom:30px}.comment-reply-title,.comments-title{font-size:18px;color:rgba(0,0,0,.44);margin-bottom:20px}.comment-form label{display:block;font-size:12px;color:#999}.comment-form p{margin-bottom:20px}.comment-form input[type=text]{line-height:32px;width:260px;padding:0 10px}#comment,.comment-form input[type=text]{border-radius:3px;background-color:var(--comment-background-color);border:1px solid #eee;font-size:14px}#comment{resize:none;padding:10px;box-sizing:border-box;width:100%}.says{display:none}.comment-meta{font-size:14px;color:var(--comment-meta)}.comments-pagination{margin-bottom:15px}#submit{background-color:var(--submit-color);display:inline-block;border:1px solid #eee;padding:4px 8px;font-size:14px;color:#999;cursor:pointer;border-radius:3px}#submit:hover{border-color:#bc403e;color:#bc403e}.says{display:none}.mark{margin:0 5px;padding:2px;background:#ffec99;border-bottom:1px solid #ffec99}.linkpage ul{color:rgba(255,255,255,.15)}.linkpage ul:after{content:" ";clear:both;display:block}.linkpage li{float:left;width:48%;position:relative;-webkit-transition:.3s ease-out;transition:.3s ease-out;border-radius:5px;line-height:1.3;height:90px;display:block}.linkpage h3{margin:15px -25px;padding:0 25px;border-left:5px solid #51aded;background-color:#f7f7f7;font-size:25px;line-height:40px}.linkpage li:hover{background:rgba(230,244,250,.5);cursor:pointer}.linkpage li a{padding:0 10px 0 90px}.linkpage li a img{width:60px;height:60px;border-radius:50%;position:absolute;top:15px;left:15px;cursor:pointer;margin:auto;border:none}.linkpage li a h4{color:var(--inkpage-li-a-h4-color);font-size:18px;margin:0 0 7px;padding-left:90px}.linkpage li a h4:hover{color:#51aded}.linkpage li a h4,.linkpage li a p{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:1.4;margin:0!important}.linkpage li a p{font-size:12px;color:#999;padding-left:90px}@media(max-width:460px){.linkpage li{width:97%}.linkpage ul{padding-left:5px}}pre{position:relative;padding:30px 10px 10px 10px;background:#282b2e;border-radius:8px;box-shadow:rgb(0 0 0 / 30%) 0px 5px 20px;}.article-post pre code{font-family:Consolas;}pre::after{display:block;content:" ";position:absolute;border-radius:50%;background:#ff5f56;width:12px;height:12px;top:0;left:12px;margin-top:12px;-webkit-box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;}code::-webkit-scrollbar{background:transparent;height:6px;}::-webkit-scrollbar{width:10px;height:8px;background-color:rgb(0 0 0 / 0%);}code::-webkit-scrollbar-thumb{background:rgb(255 255 255 / 46%) !important;box-shadow:none !important;border:none !important;border-radius:10px;transition:background 0.3s ease;}::-webkit-scrollbar-thumb{background-color:var(--webkit-scrollbar);border-radius:100px;border:2px solid transparent;background-clip:content-box;}code::-webkit-scrollbar-track{border:none;background:transparent !important;}::-webkit-scrollbar-track{background-color:transparent;} \ No newline at end of file From 71dd16d66fa709daee5e4e02cfb51cdac1b24025 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Tue, 26 Jul 2022 13:04:58 +0800 Subject: [PATCH 11/23] 2.0.0-Build22725-Dev-No.2(TinaTheme) --- README.md | 31 +++++++++++++++++-------------- assets/css/cursor.css | 1 + assets/css/style.css | 4 ++-- assets/favicon.ico | Bin 15406 -> 20468 bytes assets/js/cursor.js | 3 ++- assets/js/features.js | 4 ++-- assets/js/katex.support.js | 2 +- comments.php | 5 +---- core/functions.php | 16 ++++++++-------- footer.php | 2 +- functions.php | 8 ++++---- index.php | 6 +++--- 12 files changed, 42 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index f56c512..7992f74 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ -## SmileTheme +## TinaTheme -一个为typecho移植的主题,源自于[hugo-tania](https://github.com/WingLim/hugo-tania)主题,原本是Hugo的主题,被移植到Typecho上在其基础上进行了深度修改的Smiletheme或许是你在Typecho上最好的选择 +一个为typecho移植的主题,源自于[hugo-tania](https://github.com/WingLim/hugo-tania)主题,原本是Hugo的主题,被移植到Typecho上在其基础上进行了深度修改的TinaTheme或许是你在Typecho上最好的选择 -[![AdminMD](https://img.shields.io/badge/Magneto-SmileTheme-brightgreen?style=for-the-badge)](https://fmcf.cc/technology/523/) +[![AdminMD](https://img.shields.io/badge/Magneto-TinaTheme-brightgreen?style=for-the-badge)](https://fmcf.cc/technology/523/) ![Version](https://img.shields.io/badge/Version-2.0.0-critical?style=for-the-badge) -![Repo-size](https://img.shields.io/github/languages/code-size/ouyangyanhuo/SmileTheme?style=for-the-badge) -![License](https://img.shields.io/github/license/ouyangyanhuo/SmileTheme?style=for-the-badge) -![Stars](https://img.shields.io/github/stars/ouyangyanhuo/SmileTheme?style=for-the-badge) -![Forks](https://img.shields.io/github/forks/ouyangyanhuo/SmileTheme?style=for-the-badge&k) +![Repo-size](https://img.shields.io/github/languages/code-size/ouyangyanhuo/TinaTheme?style=for-the-badge) +![License](https://img.shields.io/github/license/ouyangyanhuo/TinaTheme?style=for-the-badge) +![Stars](https://img.shields.io/github/stars/ouyangyanhuo/TinaTheme?style=for-the-badge) +![Forks](https://img.shields.io/github/forks/ouyangyanhuo/TinaTheme?style=for-the-badge&k) 原主题:[https://github.com/WingLim/hugo-tania](https://github.com/WingLim/hugo-tania) @@ -25,6 +25,9 @@ - 重写了上一篇、下一篇按钮 - 新增了针对上一篇、下一篇按钮的核心内容 - 完成所有所需页面的重构 +- 由 SmileTheme 更名为 TinaTheme +- 调整评论区 取消回复 按钮位置 +- 新增了加密文章的输入框、提交按钮的样式。 ## 年少之梦 本项目及开发者已加入 [「年少之梦」](https://www.teendreams.cn) 组织 @@ -56,25 +59,25 @@ 欢迎提 Issues 和 PRs,欢迎提出建议 ## 使用 -下载主题包并解压 ( 若是从 GitHub 或 Gitee 下载,请把解压出来的文件夹改名为 `SmileTheme` ) ,将文件夹上传至网站文件主题目录 ( `/usr/theme` ) 下,进入网站后台 - 控制台 - 外观 - 启用主题即可。 +下载主题包并解压 ( 若是从 GitHub 或 Gitee 下载,请把解压出来的文件夹改名为 `TinaTheme` ) ,将文件夹上传至网站文件主题目录 ( `/usr/theme` ) 下,进入网站后台 - 控制台 - 外观 - 启用主题即可。 ## 文档 -SmileTheme 文档 : [https://smiletheme.docs.fmcf.cc](https://smiletheme.docs.fmcf.cc) +TinaTheme 文档 : [https://TinaTheme.docs.fmcf.cc](https://TinaTheme.docs.fmcf.cc) ## Demo 主题效果预览 -SmileTheme主题演示站:[https://smiletheme.fmcf.cc](https://smiletheme.fmcf.cc) +TinaTheme主题演示站:[https://TinaTheme.fmcf.cc](https://TinaTheme.fmcf.cc) ## 注意 -SmileTheme 使用 [GPL V3.0](https://github.com/ouyangyanhuo/SmileTheme/blob/main/LICENSE) 协议开源,请遵守此协议进行二次开发等。 +TinaTheme 使用 [GPL V3.0](https://github.com/ouyangyanhuo/TinaTheme/blob/main/LICENSE) 协议开源,请遵守此协议进行二次开发等。 -您必须在页脚保留 SmileTheme 主题的名称及其指向链接,否则请不要使用 SmileTheme 主题。 +您必须在页脚保留 TinaTheme 主题的名称及其指向链接,否则请不要使用 TinaTheme 主题。 -您可以删除页脚的作者版权信息,但是不能删除 SmileTheme 主题的名称及其指向链接。 +您可以删除页脚的作者版权信息,但是不能删除 TinaTheme 主题的名称及其指向链接。 ## 捐赠 @@ -82,7 +85,7 @@ SmileTheme 使用 [GPL V3.0](https://github.com/ouyangyanhuo/SmileTheme/blob/mai ## 下载渠道 -1.GitHub [https://github.com/ouyangyanhuo/SmileTheme](https://github.com/ouyangyanhuo/SmileTheme) 适合国外(主仓库) +1.GitHub [https://github.com/ouyangyanhuo/TinaTheme](https://github.com/ouyangyanhuo/TinaTheme) 适合国外(主仓库) 2.取消 Gitee 下载 因为它真的比 Shit 还烂,Gitee仓库会保留,但不会同步、更新。 diff --git a/assets/css/cursor.css b/assets/css/cursor.css index d075ceb..2ad139a 100644 --- a/assets/css/cursor.css +++ b/assets/css/cursor.css @@ -1 +1,2 @@ +/*! CursorCSS for v2.0.0 | Created by Magneto for TinaTheme */ #cursor{position:fixed;width:16px;height:16px;background:#fd3b27;border-radius:8px;opacity:0.25;z-index:10086;pointer-events:none;transition:0.2s ease-in-out;transition-property:background,opacity,transform}#cursor.hidden{opacity:0}#cursor.hover{opacity:0.1;transform:scale(2.5)}#cursor.active{opacity:0.5;transform:scale(0.5)}#clickME{cursor:pointer;display:inline-block;border:1px solid #fd3b27} \ No newline at end of file diff --git a/assets/css/style.css b/assets/css/style.css index 172f4b1..c6dc023 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -1,2 +1,2 @@ -/*! SmileCSS for v2.0.0 | Created by Magneto for Smiletheme| Size about 25.5KB */ -html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:transparent}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],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{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}*,::after,::before{box-sizing:border-box}:root{--color-mode:light;--h1-color:#343a40;--font-color:#495057;--heading-color:#343a40;--background:white;--dark-font-color:#1b1d25;--medium-font-color:#60656c;--light-font-color:#858b93;--light-background:#f1f4f8;--light-background-hover:#e1e6ed;--border:#d6d9de;--link-color:#5183f5;--link-color-darker:#364fc7;--navbar-color:#1b1d25;--blockquote:#f9f9f9;--blockquote-left:#e3e6eb;--transparent-text:rgba(0,0,0,0.7);--transparent-bg:rgba(0,0,0,0.05);--light-transparent-bg:rgba(255,255,255,0.1);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#fff;--submit-color:#fff;--comment-body-color:#343a40;--comment-meta:rgba(0 0 0 / 44%);--inkpage-li-a-h4-color:#333333;--webkit-scrollbar:rgb(78 76 76 / 30%)}.flex{display:flex;align-items:center}.flex-row{display:flex;flex-direction:column}@media screen and (min-width:800px){.flex-row{flex-direction:row}}.flex-col{flex:1}.flex-two-thirds{flex:2}.justify-center{justify-content:center}html{font-family:-apple-system,BlinkMacSystemFont,helvetica neue,roboto,Roboto,Arial,noto sans,sans-serif,apple color emoji,segoe ui,segoe ui emoji,segoe ui symbol,noto color emoji;color:var(--font-color);font-weight:400;font-size:1rem;line-height:1.75}body{background:var(--background);margin:0;padding:0}section{margin:2rem 0}section:first-of-type{margin-top:0}section>h2{display:flex;align-items:center;font-size:1.6rem;margin-top:0;margin-bottom:.5rem}@media screen and (min-width:800px){section>h2{margin-bottom:2rem}}.index h2,section>h2{border-bottom-width:0}@media screen and (min-width:800px){.index h2,section>h2{border-bottom-width:4px}}a.section-button{font-weight:500;background:var(--light-background);color:var(--dark-font-color);padding:.4rem .6rem;font-size:.8rem;border-radius:.3rem;border-width:0!important;white-space:nowrap;line-height:1;margin-left:2rem;margin-top:.5rem}a.section-button:hover{background:var(--light-background-hover);color:var(--heading-color)}@media screen and (min-width:800px){section{margin:3.5rem 0}section>h2{font-size:2rem;margin:0 0 1rem}}.container{max-width:825px;padding:0 1.5rem;margin-left:auto;margin-right:auto}.container.page p{max-width:600px}@media screen and (min-width:800px){.container{padding:0 2rem}}img{display:inline-block;max-width:100%;height:auto}blockquote,dl,ol,p,table,ul{font-size:1.05rem;margin:0 0 1.5rem}ul{padding:0 1rem}@media screen and (min-width:800px){blockquote,dl,ol,p,table,ul{font-size:1.125rem}ul{padding:0 2rem}}ul li p{margin:0}ul li ul{padding-left:1rem;margin:0}ul li ul li{margin:0}ol li ol{margin-bottom:0}.task-list-item [type=checkbox]{margin-right:.5rem}blockquote{margin:2rem 0;padding:1rem;background:var(--blockquote);font-weight:400;border-left:5px solid var(--blockquote-left)}@media screen and (min-width:800px){blockquote{padding:2rem 0 2rem 2rem}}::selection{background:#3b5bdb;color:#fff}h1{color:var(--h1-color)}h3,h4{color:var(--medium-font-color)}h2,h5{color:var(--heading-color)}h1,h2,h3,h4,h5{margin:0 0 1.5rem;font-weight:700;line-height:1.2;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1:not(:first-child),h2:not(:first-child),h3:not(:first-child),h4:not(:first-child){margin-top:3rem}h1{font-size:2.5rem;line-height:1.1}h2{font-size:1.75rem;padding-bottom:.5rem;border-bottom:4px solid var(--light-background)}h2 code{font-size:1.75rem!important}h3{font-size:1.5rem;color:var(--font-color);font-weight:600;margin-bottom:1rem}h3 code{font-size:1.4rem!important}h4{font-size:1.3rem;color:var(--font-color);font-weight:500;margin-bottom:1rem;border-bottom:2px solid var(--light-background);padding-bottom:.25rem}h5{font-size:1.2rem;margin-bottom:1rem}@media screen and (min-width:800px){h1{font-size:3rem}h2{font-size:1.9rem}h3{font-size:1.7rem;color:var(--font-color);font-weight:600}h4{font-weight:400;font-size:1.4rem}}a.link{display:block;padding:.25rem 0;margin:.25rem 0;border-radius:.35rem;font-weight:600;color:var(--dark-font-color)}a.link:hover{color:var(--link-color)}a.button{display:inline-block;border:2px solid var(--link-color);padding:.3rem .6rem;margin-right:.75rem;font-weight:500;background:var(--link-color);color:#fff;border-radius:.35rem;font-size:.9rem}a.button.large{padding:.8rem 1rem;font-size:1.05rem}a.button.secondary{border:2px solid #edf2ff;background:#edf2ff;color:#3b5bdb}a.button.secondary:hover,a.button:hover{border:2px solid var(--link-color-darker);background:var(--link-color-darker);color:#fff}@media screen and (min-width:800px){a.button{font-size:.9rem}a.button.large{padding:1rem 1.5rem;font-size:1.1rem}}p.subtitle{color:var(--medium-font-color);font-size:1.3rem;font-weight:300;margin-bottom:0}@media screen and (min-width:800px){p.subtitle{font-size:1.5rem}}a{color:inherit;text-decoration:none}a.image-link{border-width:0}main{margin-top:50px}@media screen and (min-width:800px){main{margin-top:0}}.emoji{margin:0 .4rem 0 .1rem}.navbar{width:100%;position:fixed;top:0;left:0;background:var(--navbar-color);box-shadow:0 3px 13px rgba(100,110,140,.1),0 2px 4px rgba(100,110,140,.15);z-index:2;padding:.5rem}.navbar .flex{justify-content:space-between}.navbar a{border-radius:.35rem;margin:0 .05rem;color:rgba(255,255,255,.65);font-weight:400;font-size:.85rem;border:1px solid transparent;padding:0 .3rem;background:0 0}.navbar a:first-of-type{margin-left:-1rem}.navbar a .emoji{display:none}.navbar a.brand{font-weight:500;color:#fff;white-space:nowrap;border:none;display:flex;align-items:center;line-height:1;background:0 0}.navbar a.brand .emoji{display:inline-block!important}.navbar a.brand img{height:22px;width:22px}.navbar button{font-size:1rem;margin-right:-1rem}@media screen and (min-width:500px){.navbar a{font-size:.95rem;padding:.5rem}}@media screen and (min-width:800px){.emoji{margin:0 .5rem 0 .1rem}.navbar{position:static;padding:1.5rem 0;background:0 0;box-shadow:none}.navbar .flex{justify-content:space-between}.navbar a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.navbar a:first-of-type{margin-left:-1.5rem}.navbar a:hover,.navbar a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}.navbar a.brand{font-size:1.3rem;margin-right:3rem;border:none;background:0 0!important;color:var(--dark-font-color)}.navbar a.brand:hover{background:var(--light-background)!important}.navbar a.brand img{height:26px;width:26px;margin-right:.25rem}#dark-mode-button:hover{background:var(--light-background)}}@media print{.navbar{display:none}}#dark-mode-button{display:flex;border:none;padding:.2rem .7rem .2rem .5rem;border-radius:.35rem;box-sizing:content-box;cursor:pointer;font-size:1.1rem;background:0 0}#dark-mode-button .dark{display:none}#dark-mode-button:focus{outline:0}[data-user-color-scheme] #dark-mode-button .light{display:none}[data-user-color-scheme] #dark-mode-button .dark{display:unset}@media screen and (min-width:800px){#dark-mode-button{padding:.95rem .75rem;font-size:1.2rem}}.my{padding-top:2rem}.my a{border:none;margin-right:1rem}.my a:hover{border:none}.post-row{display:flex;align-items:center;width:100%}.post-row time{display:block;flex:0 0 65px}.post-row h3{flex:1}.posts .post:last-of-type a{border-bottom-width:0}.post a{display:flex;align-items:center;justify-content:stretch;padding:1rem 0;border-bottom:2px solid var(--light-background)}.post a:hover{border-radius:.3rem}.post h3{margin-top:.1rem;margin-bottom:0;font-size:1.1rem;font-weight:600}@media screen and (min-width:800px){.posts{margin-left:-1rem;margin-right:-1rem}.post a{padding:.75rem 1rem;border-bottom-color:transparent}.post a:hover{background:var(--light-background)}.post h3{font-size:1.3rem}.post-row time{flex:0 0 80px}}.new-post,.popular-post{display:inline-block;color:#111;padding:.3rem .4rem;border-radius:.3rem;font-size:.85rem;margin-left:1rem}.new-post{background:#d3f9d8}.popular-post{background:#dce6fd;color:var(--heading-color)}@media screen and (min-width:800px){.new-post,.popular-post{margin-bottom:0}}.footer{padding:2rem 0}.footer>.flex{flex-direction:column;align-items:center;justify-content:center}.footer img{height:30px;width:30px}.footer a{border-radius:.35rem;margin:0 .05rem;font-weight:400;font-size:1rem;border:1px solid transparent;padding:.5rem;margin:0 .5rem;color:var(--light-font-color)}.footer a:hover{color:var(--heading-color);background:var(--light-background)}.footer a.img{display:flex;align-items:center;padding:0;margin:0 .75rem;background:0 0}.footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.flex nav{padding:1rem 0}@media screen and (min-width:800px){.footer>.flex{align-items:flex-start;margin-left:-1.5rem;margin-right:-1.5rem}.footer a{padding:.75rem}.footer a.img{padding:0 .5rem;margin:0 1rem}}@media print{.footer{display:none}}.small{max-width:600px}.meta,time{color:var(--light-font-color);font-size:.85rem;white-space:nowrap;font-weight:400}.meta{color:var(--medium-font-color);font-size:1rem}table{border-collapse:separate;border-spacing:0;width:100%;max-width:100%;overflow-x:auto}tbody,thead{white-space:nowrap}th{border-bottom:2px solid var(--border)}tfoot th{border-top:1px solid var(--border)}td{border-bottom:1px solid var(--border)}td,th{text-align:left;padding:.75rem;hyphens:auto}tbody tr:nth-child(even){background-color:var(--light-background)}@media screen and (min-width:800px){table{display:table;border:1px solid var(--border)}tbody,thead{white-space:normal}}.count{font-weight:700;color:var(--link-color)}.tags{display:flex!important;flex-wrap:wrap;align-items:center;margin-left:-.5rem;margin-right:-.5rem}.tags>a{display:block;font-weight:500;background:var(--light-background);color:var(--font-color);margin:.2rem;padding:.5rem .6rem;font-size:.8rem;border-radius:.3rem;border-bottom:0;white-space:nowrap;line-height:1}.tags>a:hover{background:var(--light-background-hover);color:var(--heading-color)}mark{background:#ffec99}.utterances{margin-left:-4px;margin-right:-4px}kbd{background-color:#f7f7f7;border:2px solid rgba(0,0,0,.3);border-radius:3px;box-shadow:0 1px rgba(0,0,0,.2),inset 0 0 0 2px #fff;color:#333;display:inline-block;font-family:Helvetica Neue,Inter,-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;line-height:1.4;margin:0 .1em;padding:.1em .6em;text-shadow:0 1px 0 #fff;font-size:14px}#comments{margin-top:3rem}#comments h2{margin:0}@media print{#comments,.comments{display:none}}#search-query{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;width:100%;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem}#search-query:focus{border-color:#5183f5}#search-results{display:none}.filter-container{display:flex;justify-content:flex-start;margin-bottom:1.5rem;flex-wrap:wrap}.filter-item{font-size:.85rem;padding:.5rem .75rem;background:var(--light-background);border-radius:4px;margin-right:.5rem;margin-bottom:.5rem;font-weight:600;cursor:pointer}.filter-item:hover{background:#d8e3fd;color:#3972f4}.filter-item:last-of-type{margin-right:0}.filter-item.active{background:#5183f5;color:#fff}.filter-item.active:hover{color:#fff;background:#2161f2}header{padding:1.5rem 0}header h1{font-size:2rem;display:inline-block;font-weight:600;margin-top:1rem}header u{display:inline-block;text-decoration:none;padding:.4rem 0}.article-header{padding-top:2rem;margin-bottom:.5rem}.article-header .container{padding-left:0;padding-right:0}.article-header .thumb{display:flex;flex-direction:column}.article-header h1{font-weight:700;font-size:1.8rem;margin:0}.article-header .description{font-size:1.2rem;color:var(--light-font-color);font-weight:300;margin-top:2rem;margin-bottom:0}.post-meta{margin-top:1rem;padding:0;color:var(--light-font-color);font-size:.9rem}.post-meta a{color:var(--font-color);border-width:0}.post-meta time{margin-top:.2rem;font-size:.9rem}.post-meta .tags{margin-top:.5rem}.post-meta .tags a{text-decoration:none}.article-post{margin-bottom:2rem}.article-post img{border-radius:5px;display:block;margin-left:auto;margin-right:auto}.article-post a{box-shadow:0 -2px rgba(189,195,199,.5) inset;transition:all .3s ease}.article-post a:hover{box-shadow:0 -10px rgba(189,195,199,.7) inset}.article-post code{overflow-x:auto}.article-post h1 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h1 .anchor .icon{visibility:hidden}.article-post h1:hover .anchor{box-shadow:none}.article-post h1:hover .anchor .icon{visibility:visible}.article-post h2 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h2 .anchor .icon{visibility:hidden}.article-post h2:hover .anchor{box-shadow:none}.article-post h2:hover .anchor .icon{visibility:visible}.article-post h3 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h3 .anchor .icon{visibility:hidden}.article-post h3:hover .anchor{box-shadow:none}.article-post h3:hover .anchor .icon{visibility:visible}.article-post h4 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h4 .anchor .icon{visibility:hidden}.article-post h4:hover .anchor{box-shadow:none}.article-post h4:hover .anchor .icon{visibility:visible}.article-post h5 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h5 .anchor .icon{visibility:hidden}.article-post h5:hover .anchor{box-shadow:none}.article-post h5:hover .anchor .icon{visibility:visible}.article-post h6 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h6 .anchor .icon{visibility:hidden}.article-post h6:hover .anchor{box-shadow:none}.article-post h6:hover .anchor .icon{visibility:visible}@media screen and (min-width:800px){.article-post{margin-bottom:3rem}.article-post h1,.article-post h2,.article-post h3,.article-post h4,.article-post h5{padding-top:1rem}.post-meta{margin-top:.5rem;padding:.5rem 0}header h1{font-size:3rem;margin-top:2rem}header u{background:linear-gradient(transparent 85%,#bac8ff 0)}.article-header{padding-top:3rem}.article-header h1{padding-top:0;font-size:2.5rem}.article-header .thumb{flex-direction:row}.article-header .description{font-size:1.8rem;line-height:1.5}}@media screen and (min-width:1100px){.article-header h1{font-size:2.5rem}}.post-thumbnail{display:block!important}code,pre{font-size:.9rem;font-family:Consolas,Monaco,Menlo,dejavu sans mono,bitstream vera sans mono,courier new,monospace;background:#373b41}:not(pre)>code{color:var(--dark-font-color);background:var(--light-background)}code{padding:3px 5px;border-radius:4px;color:#f8f8f2}pre>code{display:block}.side{width:200px;margin:0 auto}.side p{margin:0}.side-right{float:right;clear:right;margin-right:calc(-200px - 2em);background-color:var(--background)}.side-right p{font-size:.9rem}.footnotes ol li p{margin:0}.footnotes hr{border:none;border-top:1px solid var(--border)}.footnote-ref{box-shadow:none!important}.footnote-backref{box-shadow:none!important}.note-ref{cursor:pointer;border:none;box-shadow:none!important}.note-ref:hover{box-shadow:none;border:none}.bg-number{background:var(--light-background);font-size:.9rem;color:var(--font-color);text-decoration:none;padding:1px 5px;border-radius:5px}@media(max-width:1280px){.side{width:100%;padding:0 2em}.side-right{float:none;clear:both;margin:1em auto;background:0 0}}@media(min-width:1280px){.note-ref:hover~.side{display:inline-block;position:absolute;margin-left:1rem;padding:.5rem;box-sizing:content-box}}.suggested{flex-direction:column;align-items:stretch;margin-left:-1rem;margin-right:-1rem;padding:0}.suggested span{font-weight:400;display:block;font-size:.9rem;color:var(--transparent-text)}.suggested a{background:0 0;margin:.5rem 1rem;border-bottom:none;transition:all .2s ease;padding:1.5rem;border-radius:.35rem;background:var(--light-background);color:var(--heading-color)}.suggested a:hover{transform:translate3D(0,-1px,0);background:var(--light-background-hover)}@media screen and (min-width:800px){.suggested{flex-direction:row}.suggested a{flex:0 0 calc(50% - 2rem)}.suggested a:first-of-type{text-align:right}}.projects .project:last-of-type{border-bottom-width:0}.project{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:2px solid var(--light-background)}.project .icon{font-size:1.5rem;width:40px}.project a{display:flex;align-items:center;margin-bottom:.25rem;border-width:0}.project a:hover h3{text-decoration:underline}.project a.button{margin-left:1.5rem;border-width:2px}.project h3{font-size:1.2rem;margin:0}.project .description{font-size:1.1rem;color:var(--light-font-color)}@media screen and (min-width:800px){.project{border-bottom-width:0}.project h3{font-size:1.3rem}.project .description{font-size:1rem}}.terms a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color);border-radius:.35rem}.terms a:hover{background:var(--light-background);color:var(--dark-font-color)}.pagination{display:flex}.pagination .next-page,.pagination .prev-page{flex-grow:1;flex-shrink:1;display:flex}.pagination .next-page{justify-content:flex-end}.pagination a{border-radius:.35rem;padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.pagination a:hover,.pagination a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}@media(prefers-color-scheme:dark){:root{--color-mode:dark}:root:not([data-user-color-scheme]){--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#706d6361;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}}[data-user-color-scheme=dark]{--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#706d6361;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}.alert a,a,h1,header a{text-decoration:none}.alert a,.comment-head,cite.fn{font-weight:700}.alert{margin:1em 0;padding:4px 8px;border-radius:0}.alert a{border:0}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.info{color:#1d6fee;border:1px solid #1d6fee}p.comment-user-info{margin-bottom:.5em}.comment-list p.comment-user-info{display:block;margin-bottom:.5em}.info{color:#88b4f6;border:1px solid #88b4f6}.comment-author .avatar{float:left;margin-right:8px;border-radius:100%}.comment-meta{overflow:hidden;line-height:1.4;margin-bottom:10px}.comment .fn{color:#bc403e}.comment-body{padding:30px 0;border-bottom:1px solid #eee;position:relative}.comment-body p{font-size:14px;color:var(--comment-body-color)}.comment-body p:last-child{margin-bottom:0}.comment-body .reply{position:absolute;top:10px;right:0}.comment-body .reply .comment-reply-link{color:#fff;font-family:exoregular;display:inline-block;line-height:1.2;border-radius:3px;padding:3px 8px;background-color:#bc403e;font-size:12px}.comment-list{padding-bottom:30px}.comment-reply-title,.comments-title{font-size:18px;color:rgba(0,0,0,.44);margin-bottom:20px}.comment-form label{display:block;font-size:12px;color:#999}.comment-form p{margin-bottom:20px}.comment-form input[type=text]{line-height:32px;width:260px;padding:0 10px}#comment,.comment-form input[type=text]{border-radius:3px;background-color:var(--comment-background-color);border:1px solid #eee;font-size:14px}#comment{resize:none;padding:10px;box-sizing:border-box;width:100%}.says{display:none}.comment-meta{font-size:14px;color:var(--comment-meta)}.comments-pagination{margin-bottom:15px}#submit{background-color:var(--submit-color);display:inline-block;border:1px solid #eee;padding:4px 8px;font-size:14px;color:#999;cursor:pointer;border-radius:3px}#submit:hover{border-color:#bc403e;color:#bc403e}.says{display:none}.mark{margin:0 5px;padding:2px;background:#ffec99;border-bottom:1px solid #ffec99}.linkpage ul{color:rgba(255,255,255,.15)}.linkpage ul:after{content:" ";clear:both;display:block}.linkpage li{float:left;width:48%;position:relative;-webkit-transition:.3s ease-out;transition:.3s ease-out;border-radius:5px;line-height:1.3;height:90px;display:block}.linkpage h3{margin:15px -25px;padding:0 25px;border-left:5px solid #51aded;background-color:#f7f7f7;font-size:25px;line-height:40px}.linkpage li:hover{background:rgba(230,244,250,.5);cursor:pointer}.linkpage li a{padding:0 10px 0 90px}.linkpage li a img{width:60px;height:60px;border-radius:50%;position:absolute;top:15px;left:15px;cursor:pointer;margin:auto;border:none}.linkpage li a h4{color:var(--inkpage-li-a-h4-color);font-size:18px;margin:0 0 7px;padding-left:90px}.linkpage li a h4:hover{color:#51aded}.linkpage li a h4,.linkpage li a p{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:1.4;margin:0!important}.linkpage li a p{font-size:12px;color:#999;padding-left:90px}@media(max-width:460px){.linkpage li{width:97%}.linkpage ul{padding-left:5px}}pre{position:relative;padding:30px 10px 10px 10px;background:#282b2e;border-radius:8px;box-shadow:rgb(0 0 0 / 30%) 0px 5px 20px;}.article-post pre code{font-family:Consolas;}pre::after{display:block;content:" ";position:absolute;border-radius:50%;background:#ff5f56;width:12px;height:12px;top:0;left:12px;margin-top:12px;-webkit-box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;}code::-webkit-scrollbar{background:transparent;height:6px;}::-webkit-scrollbar{width:10px;height:8px;background-color:rgb(0 0 0 / 0%);}code::-webkit-scrollbar-thumb{background:rgb(255 255 255 / 46%) !important;box-shadow:none !important;border:none !important;border-radius:10px;transition:background 0.3s ease;}::-webkit-scrollbar-thumb{background-color:var(--webkit-scrollbar);border-radius:100px;border:2px solid transparent;background-clip:content-box;}code::-webkit-scrollbar-track{border:none;background:transparent !important;}::-webkit-scrollbar-track{background-color:transparent;} \ No newline at end of file +/*! TinaCSS for v2.0.0 | Created by Magneto for TinaTheme| Size about 25.5KB */ +html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:transparent}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],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{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}*,::after,::before{box-sizing:border-box}:root{--color-mode:light;--h1-color:#343a40;--font-color:#495057;--heading-color:#343a40;--background:white;--dark-font-color:#1b1d25;--medium-font-color:#60656c;--light-font-color:#858b93;--light-background:#f1f4f8;--light-background-hover:#e1e6ed;--border:#d6d9de;--link-color:#5183f5;--link-color-darker:#364fc7;--navbar-color:#1b1d25;--blockquote:#f9f9f9;--blockquote-left:#e3e6eb;--transparent-text:rgba(0,0,0,0.7);--transparent-bg:rgba(0,0,0,0.05);--light-transparent-bg:rgba(255,255,255,0.1);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#fff;--submit-color:#fff;--comment-body-color:#343a40;--comment-meta:rgba(0 0 0 / 44%);--inkpage-li-a-h4-color:#333333;--webkit-scrollbar:rgb(78 76 76 / 30%)}.flex{display:flex;align-items:center}.flex-row{display:flex;flex-direction:column}@media screen and (min-width:800px){.flex-row{flex-direction:row}}.flex-col{flex:1}.flex-two-thirds{flex:2}.justify-center{justify-content:center}html{font-family:-apple-system,BlinkMacSystemFont,helvetica neue,roboto,Roboto,Arial,noto sans,sans-serif,apple color emoji,segoe ui,segoe ui emoji,segoe ui symbol,noto color emoji;color:var(--font-color);font-weight:400;font-size:1rem;line-height:1.75}body{background:var(--background);margin:0;padding:0}section{margin:2rem 0}section:first-of-type{margin-top:0}section>h2{display:flex;align-items:center;font-size:1.6rem;margin-top:0;margin-bottom:.5rem}@media screen and (min-width:800px){section>h2{margin-bottom:2rem}}.index h2,section>h2{border-bottom-width:0}@media screen and (min-width:800px){.index h2,section>h2{border-bottom-width:4px}}a.section-button{font-weight:500;background:var(--light-background);color:var(--dark-font-color);padding:.4rem .6rem;font-size:.8rem;border-radius:.3rem;border-width:0!important;white-space:nowrap;line-height:1;margin-left:2rem;margin-top:.5rem}a.section-button:hover{background:var(--light-background-hover);color:var(--heading-color)}@media screen and (min-width:800px){section{margin:3.5rem 0}section>h2{font-size:2rem;margin:0 0 1rem}}.container{max-width:825px;padding:0 1.5rem;margin-left:auto;margin-right:auto}.container.page p{max-width:600px}@media screen and (min-width:800px){.container{padding:0 2rem}}img{display:inline-block;max-width:100%;height:auto}blockquote,dl,ol,p,table,ul{font-size:1.05rem;margin:0 0 1.5rem}ul{padding:0 1rem}@media screen and (min-width:800px){blockquote,dl,ol,p,table,ul{font-size:1.125rem}ul{padding:0 2rem}}ul li p{margin:0}ul li ul{padding-left:1rem;margin:0}ul li ul li{margin:0}ol li ol{margin-bottom:0}.task-list-item [type=checkbox]{margin-right:.5rem}blockquote{margin:2rem 0;padding:1rem;background:var(--blockquote);font-weight:400;border-left:5px solid var(--blockquote-left)}@media screen and (min-width:800px){blockquote{padding:2rem 0 2rem 2rem}}::selection{background:#3b5bdb;color:#fff}h1{color:var(--h1-color)}h3,h4{color:var(--medium-font-color)}h2,h5{color:var(--heading-color)}h1,h2,h3,h4,h5{margin:0 0 1.5rem;font-weight:700;line-height:1.2;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1:not(:first-child),h2:not(:first-child),h3:not(:first-child),h4:not(:first-child){margin-top:3rem}h1{font-size:2.5rem;line-height:1.1}h2{font-size:1.75rem;padding-bottom:.5rem;border-bottom:4px solid var(--light-background)}h2 code{font-size:1.75rem!important}h3{font-size:1.5rem;color:var(--font-color);font-weight:600;margin-bottom:1rem}h3 code{font-size:1.4rem!important}h4{font-size:1.3rem;color:var(--font-color);font-weight:500;margin-bottom:1rem;border-bottom:2px solid var(--light-background);padding-bottom:.25rem}h5{font-size:1.2rem;margin-bottom:1rem}@media screen and (min-width:800px){h1{font-size:3rem}h2{font-size:1.9rem}h3{font-size:1.7rem;color:var(--font-color);font-weight:600}h4{font-weight:400;font-size:1.4rem}}a.link{display:block;padding:.25rem 0;margin:.25rem 0;border-radius:.35rem;font-weight:600;color:var(--dark-font-color)}a.link:hover{color:var(--link-color)}a.button{display:inline-block;border:2px solid var(--link-color);padding:.3rem .6rem;margin-right:.75rem;font-weight:500;background:var(--link-color);color:#fff;border-radius:.35rem;font-size:.9rem}a.button.large{padding:.8rem 1rem;font-size:1.05rem}a.button.secondary{border:2px solid #edf2ff;background:#edf2ff;color:#3b5bdb}a.button.secondary:hover,a.button:hover{border:2px solid var(--link-color-darker);background:var(--link-color-darker);color:#fff}@media screen and (min-width:800px){a.button{font-size:.9rem}a.button.large{padding:1rem 1.5rem;font-size:1.1rem}}p.subtitle{color:var(--medium-font-color);font-size:1.3rem;font-weight:300;margin-bottom:0}@media screen and (min-width:800px){p.subtitle{font-size:1.5rem}}a{color:inherit;text-decoration:none}a.image-link{border-width:0}main{margin-top:50px}@media screen and (min-width:800px){main{margin-top:0}}.emoji{margin:0 .4rem 0 .1rem}.navbar{width:100%;position:fixed;top:0;left:0;background:var(--navbar-color);box-shadow:0 3px 13px rgba(100,110,140,.1),0 2px 4px rgba(100,110,140,.15);z-index:2;padding:.5rem}.navbar .flex{justify-content:space-between}.navbar a{border-radius:.35rem;margin:0 .05rem;color:rgba(255,255,255,.65);font-weight:400;font-size:.85rem;border:1px solid transparent;padding:0 .3rem;background:0 0}.navbar a:first-of-type{margin-left:-1rem}.navbar a .emoji{display:none}.navbar a.brand{font-weight:500;color:#fff;white-space:nowrap;border:none;display:flex;align-items:center;line-height:1;background:0 0}.navbar a.brand .emoji{display:inline-block!important}.navbar a.brand img{height:22px;width:22px}.navbar button{font-size:1rem;margin-right:-1rem}@media screen and (min-width:500px){.navbar a{font-size:.95rem;padding:.5rem}}@media screen and (min-width:800px){.emoji{margin:0 .5rem 0 .1rem}.navbar{position:static;padding:1.5rem 0;background:0 0;box-shadow:none}.navbar .flex{justify-content:space-between}.navbar a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.navbar a:first-of-type{margin-left:-1.5rem}.navbar a:hover,.navbar a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}.navbar a.brand{font-size:1.3rem;margin-right:3rem;border:none;background:0 0!important;color:var(--dark-font-color)}.navbar a.brand:hover{background:var(--light-background)!important}.navbar a.brand img{height:26px;width:26px;margin-right:.25rem}#dark-mode-button:hover{background:var(--light-background)}}@media print{.navbar{display:none}}#dark-mode-button{display:flex;border:none;padding:.2rem .7rem .2rem .5rem;border-radius:.35rem;box-sizing:content-box;cursor:pointer;font-size:1.1rem;background:0 0}#dark-mode-button .dark{display:none}#dark-mode-button:focus{outline:0}[data-user-color-scheme] #dark-mode-button .light{display:none}[data-user-color-scheme] #dark-mode-button .dark{display:unset}@media screen and (min-width:800px){#dark-mode-button{padding:.95rem .75rem;font-size:1.2rem}}.my{padding-top:2rem}.my a{border:none;margin-right:1rem}.my a:hover{border:none}.post-row{display:flex;align-items:center;width:100%}.post-row time{display:block;flex:0 0 65px}.post-row h3{flex:1}.posts .post:last-of-type a{border-bottom-width:0}.post a{display:flex;align-items:center;justify-content:stretch;padding:1rem 0;border-bottom:2px solid var(--light-background)}.post a:hover{border-radius:.3rem}.post h3{margin-top:.1rem;margin-bottom:0;font-size:1.1rem;font-weight:600}@media screen and (min-width:800px){.posts{margin-left:-1rem;margin-right:-1rem}.post a{padding:.75rem 1rem;border-bottom-color:transparent}.post a:hover{background:var(--light-background)}.post h3{font-size:1.3rem}.post-row time{flex:0 0 80px}}.new-post,.popular-post{display:inline-block;color:#111;padding:.3rem .4rem;border-radius:.3rem;font-size:.85rem;margin-left:1rem}.new-post{background:#d3f9d8}.popular-post{background:#dce6fd;color:var(--heading-color)}@media screen and (min-width:800px){.new-post,.popular-post{margin-bottom:0}}.footer{padding:2rem 0}.footer>.flex{flex-direction:column;align-items:center;justify-content:center}.footer img{height:30px;width:30px}.footer a{border-radius:.35rem;margin:0 .05rem;font-weight:400;font-size:1rem;border:1px solid transparent;padding:.5rem;margin:0 .5rem;color:var(--light-font-color)}.footer a:hover{color:var(--heading-color);background:var(--light-background)}.footer a.img{display:flex;align-items:center;padding:0;margin:0 .75rem;background:0 0}.footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.flex nav{padding:1rem 0}@media screen and (min-width:800px){.footer>.flex{align-items:flex-start;margin-left:-1.5rem;margin-right:-1.5rem}.footer a{padding:.75rem}.footer a.img{padding:0 .5rem;margin:0 1rem}}@media print{.footer{display:none}}.small{max-width:600px}.meta,time{color:var(--light-font-color);font-size:.85rem;white-space:nowrap;font-weight:400}.meta{color:var(--medium-font-color);font-size:1rem}table{border-collapse:separate;border-spacing:0;width:100%;max-width:100%;overflow-x:auto}tbody,thead{white-space:nowrap}th{border-bottom:2px solid var(--border)}tfoot th{border-top:1px solid var(--border)}td{border-bottom:1px solid var(--border)}td,th{text-align:left;padding:.75rem;hyphens:auto}tbody tr:nth-child(even){background-color:var(--light-background)}@media screen and (min-width:800px){table{display:table;border:1px solid var(--border)}tbody,thead{white-space:normal}}.count{font-weight:700;color:var(--link-color)}.tags{display:flex!important;flex-wrap:wrap;align-items:center;margin-left:-.5rem;margin-right:-.5rem}.tags>a{display:block;font-weight:500;background:var(--light-background);color:var(--font-color);margin:.2rem;padding:.5rem .6rem;font-size:.8rem;border-radius:.3rem;border-bottom:0;white-space:nowrap;line-height:1}.tags>a:hover{background:var(--light-background-hover);color:var(--heading-color)}mark{background:#ffec99}.utterances{margin-left:-4px;margin-right:-4px}kbd{background-color:#f7f7f7;border:2px solid rgba(0,0,0,.3);border-radius:3px;box-shadow:0 1px rgba(0,0,0,.2),inset 0 0 0 2px #fff;color:#333;display:inline-block;font-family:Helvetica Neue,Inter,-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;line-height:1.4;margin:0 .1em;padding:.1em .6em;text-shadow:0 1px 0 #fff;font-size:14px}#comments{margin-top:3rem}#comments h2{margin:0}@media print{#comments,.comments{display:none}}#search-query{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;width:100%;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem}#search-query:focus{border-color:#5183f5}#search-results{display:none}.filter-container{display:flex;justify-content:flex-start;margin-bottom:1.5rem;flex-wrap:wrap}.filter-item{font-size:.85rem;padding:.5rem .75rem;background:var(--light-background);border-radius:4px;margin-right:.5rem;margin-bottom:.5rem;font-weight:600;cursor:pointer}.filter-item:hover{background:#d8e3fd;color:#3972f4}.filter-item:last-of-type{margin-right:0}.filter-item.active{background:#5183f5;color:#fff}.filter-item.active:hover{color:#fff;background:#2161f2}header{padding:1.5rem 0}header h1{font-size:2rem;display:inline-block;font-weight:600;margin-top:1rem}header u{display:inline-block;text-decoration:none;padding:.4rem 0}.article-header{padding-top:2rem;margin-bottom:.5rem}.article-header .container{padding-left:0;padding-right:0}.article-header .thumb{display:flex;flex-direction:column}.article-header h1{font-weight:700;font-size:1.8rem;margin:0}.article-header .description{font-size:1.2rem;color:var(--light-font-color);font-weight:300;margin-top:2rem;margin-bottom:0}.post-meta{margin-top:1rem;padding:0;color:var(--light-font-color);font-size:.9rem}.post-meta a{color:var(--font-color);border-width:0}.post-meta time{margin-top:.2rem;font-size:.9rem}.post-meta .tags{margin-top:.5rem}.post-meta .tags a{text-decoration:none}.article-post{margin-bottom:2rem}.article-post img{border-radius:5px;display:block;margin-left:auto;margin-right:auto}.article-post a{box-shadow:0 -2px rgba(189,195,199,.5) inset;transition:all .3s ease}.article-post a:hover{box-shadow:0 -10px rgba(189,195,199,.7) inset}.article-post code{overflow-x:auto}.article-post h1 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h1 .anchor .icon{visibility:hidden}.article-post h1:hover .anchor{box-shadow:none}.article-post h1:hover .anchor .icon{visibility:visible}.article-post h2 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h2 .anchor .icon{visibility:hidden}.article-post h2:hover .anchor{box-shadow:none}.article-post h2:hover .anchor .icon{visibility:visible}.article-post h3 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h3 .anchor .icon{visibility:hidden}.article-post h3:hover .anchor{box-shadow:none}.article-post h3:hover .anchor .icon{visibility:visible}.article-post h4 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h4 .anchor .icon{visibility:hidden}.article-post h4:hover .anchor{box-shadow:none}.article-post h4:hover .anchor .icon{visibility:visible}.article-post h5 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h5 .anchor .icon{visibility:hidden}.article-post h5:hover .anchor{box-shadow:none}.article-post h5:hover .anchor .icon{visibility:visible}.article-post h6 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h6 .anchor .icon{visibility:hidden}.article-post h6:hover .anchor{box-shadow:none}.article-post h6:hover .anchor .icon{visibility:visible}@media screen and (min-width:800px){.article-post{margin-bottom:3rem}.article-post h1,.article-post h2,.article-post h3,.article-post h4,.article-post h5{padding-top:1rem}.post-meta{margin-top:.5rem;padding:.5rem 0}header h1{font-size:3rem;margin-top:2rem}header u{background:linear-gradient(transparent 85%,#bac8ff 0)}.article-header{padding-top:3rem}.article-header h1{padding-top:0;font-size:2.5rem}.article-header .thumb{flex-direction:row}.article-header .description{font-size:1.8rem;line-height:1.5}}@media screen and (min-width:1100px){.article-header h1{font-size:2.5rem}}.post-thumbnail{display:block!important}code,pre{font-size:.9rem;font-family:Consolas,Monaco,Menlo,dejavu sans mono,bitstream vera sans mono,courier new,monospace;background:#373b41}:not(pre)>code{color:var(--dark-font-color);background:var(--light-background)}code{padding:3px 5px;border-radius:4px;color:#f8f8f2}pre>code{display:block}.side{width:200px;margin:0 auto}.side p{margin:0}.side-right{float:right;clear:right;margin-right:calc(-200px - 2em);background-color:var(--background)}.side-right p{font-size:.9rem}.footnotes ol li p{margin:0}.footnotes hr{border:none;border-top:1px solid var(--border)}.footnote-ref{box-shadow:none!important}.footnote-backref{box-shadow:none!important}.note-ref{cursor:pointer;border:none;box-shadow:none!important}.note-ref:hover{box-shadow:none;border:none}.bg-number{background:var(--light-background);font-size:.9rem;color:var(--font-color);text-decoration:none;padding:1px 5px;border-radius:5px}@media(max-width:1280px){.side{width:100%;padding:0 2em}.side-right{float:none;clear:both;margin:1em auto;background:0 0}}@media(min-width:1280px){.note-ref:hover~.side{display:inline-block;position:absolute;margin-left:1rem;padding:.5rem;box-sizing:content-box}}.suggested{flex-direction:column;align-items:stretch;margin-left:-1rem;margin-right:-1rem;padding:0}.suggested span{font-weight:400;display:block;font-size:.9rem;color:var(--transparent-text)}.suggested a{background:0 0;margin:.5rem 1rem;border-bottom:none;transition:all .2s ease;padding:1.5rem;border-radius:.35rem;background:var(--light-background);color:var(--heading-color)}.suggested a:hover{transform:translate3D(0,-1px,0);background:var(--light-background-hover)}@media screen and (min-width:800px){.suggested{flex-direction:row}.suggested a{flex:0 0 calc(50% - 2rem)}.suggested a:first-of-type{text-align:right}}.projects .project:last-of-type{border-bottom-width:0}.project{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:2px solid var(--light-background)}.project .icon{font-size:1.5rem;width:40px}.project a{display:flex;align-items:center;margin-bottom:.25rem;border-width:0}.project a:hover h3{text-decoration:underline}.project a.button{margin-left:1.5rem;border-width:2px}.project h3{font-size:1.2rem;margin:0}.project .description{font-size:1.1rem;color:var(--light-font-color)}@media screen and (min-width:800px){.project{border-bottom-width:0}.project h3{font-size:1.3rem}.project .description{font-size:1rem}}.terms a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color);border-radius:.35rem}.terms a:hover{background:var(--light-background);color:var(--dark-font-color)}.pagination{display:flex}.pagination .next-page,.pagination .prev-page{flex-grow:1;flex-shrink:1;display:flex}.pagination .next-page{justify-content:flex-end}.pagination a{border-radius:.35rem;padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.pagination a:hover,.pagination a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}@media(prefers-color-scheme:dark){:root{--color-mode:dark}:root:not([data-user-color-scheme]){--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#706d6361;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}}[data-user-color-scheme=dark]{--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#706d6361;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}.alert a,a,h1,header a{text-decoration:none}.alert a,.comment-head,cite.fn{font-weight:700}.alert{margin:1em 0;padding:4px 8px;border-radius:0}.alert a{border:0}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.info{color:#1d6fee;border:1px solid #1d6fee}p.comment-user-info{margin-bottom:.5em}.comment-list p.comment-user-info{display:block;margin-bottom:.5em}.info{color:#88b4f6;border:1px solid #88b4f6}.comment-author .avatar{float:left;margin-right:8px;border-radius:100%}.comment-meta{overflow:hidden;line-height:1.4;margin-bottom:10px}.comment .fn{color:#bc403e}.comment-body{padding:30px 0;border-bottom:1px solid #eee;position:relative}.comment-body p{font-size:14px;color:var(--comment-body-color)}.comment-body p:last-child{margin-bottom:0}.comment-body .reply{position:absolute;top:10px;right:0}.comment-body .reply .comment-reply-link{color:#fff;font-family:exoregular;display:inline-block;line-height:1.2;border-radius:3px;padding:3px 8px;background-color:#bc403e;font-size:12px}.comment-list{padding-bottom:30px}.comment-reply-title,.comments-title{font-size:18px;color:rgba(0,0,0,.44);margin-bottom:20px}.comment-form label{display:block;font-size:12px;color:#999}.comment-form p{margin-bottom:20px}.comment-form input[type=text]{line-height:32px;width:260px;padding:0 10px}#comment,.comment-form input[type=text]{border-radius:3px;background-color:var(--comment-background-color);border:1px solid #eee;font-size:14px}#comment{resize:none;padding:10px;box-sizing:border-box;width:100%}.says{display:none}.comment-meta{font-size:14px;color:var(--comment-meta)}.comments-pagination{margin-bottom:15px}#submit{background-color:var(--submit-color);display:inline-block;border:1px solid #eee;padding:4px 8px;font-size:14px;color:#999;cursor:pointer;border-radius:3px}#submit:hover{border-color:#bc403e;color:#bc403e}.says{display:none}.mark{margin:0 5px;padding:2px;background:#ffec99;border-bottom:1px solid #ffec99}.linkpage ul{color:rgba(255,255,255,.15)}.linkpage ul:after{content:" ";clear:both;display:block}.linkpage li{float:left;width:48%;position:relative;-webkit-transition:.3s ease-out;transition:.3s ease-out;border-radius:5px;line-height:1.3;height:90px;display:block}.linkpage h3{margin:15px -25px;padding:0 25px;border-left:5px solid #51aded;background-color:#f7f7f7;font-size:25px;line-height:40px}.linkpage li:hover{background:rgba(230,244,250,.5);cursor:pointer}.linkpage li a{padding:0 10px 0 90px}.linkpage li a img{width:60px;height:60px;border-radius:50%;position:absolute;top:15px;left:15px;cursor:pointer;margin:auto;border:none}.linkpage li a h4{color:var(--inkpage-li-a-h4-color);font-size:18px;margin:0 0 7px;padding-left:90px}.linkpage li a h4:hover{color:#51aded}.linkpage li a h4,.linkpage li a p{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:1.4;margin:0!important}.linkpage li a p{font-size:12px;color:#999;padding-left:90px}@media(max-width:460px){.linkpage li{width:97%}.linkpage ul{padding-left:5px}}pre{position:relative;padding:30px 10px 10px 10px;background:#282b2e;border-radius:8px;box-shadow:rgb(0 0 0 / 30%) 0px 5px 20px;}.article-post pre code{font-family:Consolas;}pre::after{display:block;content:" ";position:absolute;border-radius:50%;background:#ff5f56;width:12px;height:12px;top:0;left:12px;margin-top:12px;-webkit-box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;}code::-webkit-scrollbar{background:transparent;height:6px;}::-webkit-scrollbar{width:10px;height:8px;background-color:rgb(0 0 0 / 0%);}code::-webkit-scrollbar-thumb{background:rgb(255 255 255 / 46%) !important;box-shadow:none !important;border:none !important;border-radius:10px;transition:background 0.3s ease;}::-webkit-scrollbar-thumb{background-color:var(--webkit-scrollbar);border-radius:100px;border:2px solid transparent;background-clip:content-box;}code::-webkit-scrollbar-track{border:none;background:transparent !important;}::-webkit-scrollbar-track{background-color:transparent;}input[type=password]{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;width:40%;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem;}input.submit{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem;} \ No newline at end of file diff --git a/assets/favicon.ico b/assets/favicon.ico index b9545fa3eb8eb7f887ee493671cbd927bbb32122..fa02fe72667c53cdd5dcae81361698814e0ca876 100755 GIT binary patch literal 20468 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 diff --git a/assets/js/cursor.js b/assets/js/cursor.js index 269a439..cd59585 100644 --- a/assets/js/cursor.js +++ b/assets/js/cursor.js @@ -1 +1,2 @@ -var CURSOR;Math.lerp=(a,b,n)=>(1-n)*a+n*b;const getStyle=(el,attr)=>{try{return window.getComputedStyle?window.getComputedStyle(el)[attr]:el.currentStyle[attr]}catch(e){}return""};class Cursor{constructor(){this.pos={curr:null,prev:null};this.pt=[];this.create();this.init();this.render()}move(left,top){this.cursor.style["left"]=`${left}px`;this.cursor.style["top"]=`${top}px`}create(){if(!this.cursor){this.cursor=document.createElement("div");this.cursor.id="cursor";this.cursor.classList.add("hidden");document.body.append(this.cursor)}var el=document.getElementsByTagName('*');for(let i=0;i")4 4,auto!important}`}refresh(){this.scr.remove();this.cursor.classList.remove("hover");this.cursor.classList.remove("active");this.pos={curr:null,prev:null};this.pt=[];this.create();this.init();this.render()}init(){document.onmouseover=e=>this.pt.includes(e.target.outerHTML)&&this.cursor.classList.add("hover");document.onmouseout=e=>this.pt.includes(e.target.outerHTML)&&this.cursor.classList.remove("hover");document.onmousemove=e=>{(this.pos.curr==null)&&this.move(e.clientX-8,e.clientY-8);this.pos.curr={x:e.clientX-8,y:e.clientY-8};this.cursor.classList.remove("hidden")};document.onmouseenter=e=>this.cursor.classList.remove("hidden");document.onmouseleave=e=>this.cursor.classList.add("hidden");document.onmousedown=e=>this.cursor.classList.add("active");document.onmouseup=e=>this.cursor.classList.remove("active")}render(){if(this.pos.prev){this.pos.prev.x=Math.lerp(this.pos.prev.x,this.pos.curr.x,0.15);this.pos.prev.y=Math.lerp(this.pos.prev.y,this.pos.curr.y,0.15);this.move(this.pos.prev.x,this.pos.prev.y)}else{this.pos.prev=this.pos.curr}requestAnimationFrame(()=>this.render())}}(()=>{CURSOR=new Cursor()})(); +/*! CursorJS for v2.0.0 | Created by Magneto for TinaTheme */ +var CURSOR;Math.lerp=(a,b,n)=>(1-n)*a+n*b;const getStyle=(el,attr)=>{try{return window.getComputedStyle?window.getComputedStyle(el)[attr]:el.currentStyle[attr]}catch(e){}return""};class Cursor{constructor(){this.pos={curr:null,prev:null};this.pt=[];this.create();this.init();this.render()}move(left,top){this.cursor.style["left"]=`${left}px`;this.cursor.style["top"]=`${top}px`}create(){if(!this.cursor){this.cursor=document.createElement("div");this.cursor.id="cursor";this.cursor.classList.add("hidden");document.body.append(this.cursor)}var el=document.getElementsByTagName('*');for(let i=0;i")4 4,auto!important}`}refresh(){this.scr.remove();this.cursor.classList.remove("hover");this.cursor.classList.remove("active");this.pos={curr:null,prev:null};this.pt=[];this.create();this.init();this.render()}init(){document.onmouseover=e=>this.pt.includes(e.target.outerHTML)&&this.cursor.classList.add("hover");document.onmouseout=e=>this.pt.includes(e.target.outerHTML)&&this.cursor.classList.remove("hover");document.onmousemove=e=>{(this.pos.curr==null)&&this.move(e.clientX-8,e.clientY-8);this.pos.curr={x:e.clientX-8,y:e.clientY-8};this.cursor.classList.remove("hidden")};document.onmouseenter=e=>this.cursor.classList.remove("hidden");document.onmouseleave=e=>this.cursor.classList.add("hidden");document.onmousedown=e=>this.cursor.classList.add("active");document.onmouseup=e=>this.cursor.classList.remove("active")}render(){if(this.pos.prev){this.pos.prev.x=Math.lerp(this.pos.prev.x,this.pos.curr.x,0.15);this.pos.prev.y=Math.lerp(this.pos.prev.y,this.pos.curr.y,0.15);this.move(this.pos.prev.x,this.pos.prev.y)}else{this.pos.prev=this.pos.curr}requestAnimationFrame(()=>this.render())}}(()=>{CURSOR=new Cursor()})(); \ No newline at end of file diff --git a/assets/js/features.js b/assets/js/features.js index c3ffcf3..813dfa0 100644 --- a/assets/js/features.js +++ b/assets/js/features.js @@ -1,2 +1,2 @@ -/*! SmileJS for v1.2.8 | Created by Magneto for Smiletheme| Size about 2.2KB */ -(()=>{(function(l){let c=!1;l.currentScript&&(c=l.currentScript.dataset.enableFootnotes=="true"),c&&function(){let i=e=>{!e||(e.remove?e.remove():e.parentNode.removeChild(e))},d=(e,t)=>{e.after?e.after(t):e.parentNode.insertBefore(t,e.nextSibling)},h=e=>{var t=e.parentNode,o=e.innerHTML,r=document.createElement("div");d(t,r),r.appendChild(e),e.innerHTML="",e.appendChild(t),t.innerHTML=o,d(r,r.firstElementChild),i(r)};document.querySelectorAll('.footnotes > ol > li[id^="fn"], #refs > div[id^="ref-"]').forEach(function(e){let t=document.querySelectorAll('a[href="#'+e.id+'"]');if(t.length===0)return;t.forEach(function(u){u.removeAttribute("href")});let o=t[0],r=document.createElement("div");if(r.className="side side-right",/^fn/.test(e.id)){r.innerHTML=e.innerHTML;var m=o.innerHTML;r.firstElementChild.innerHTML=''+m+" "+r.firstElementChild.innerHTML,i(r.querySelector('a[href^="#fnref"]')),o.parentNode.tagName==="SUP"&&h(o)}else r.innerHTML=e.outerHTML,o=o.parentNode;d(o,r),o.classList.add("note-ref"),i(e)}),document.querySelectorAll(".footnotes, #refs").forEach(function(e){var t=e.children;if(e.id==="refs")return t.length===0&&i(e);t.length!==2||t[0].tagName!=="HR"||t[1].tagName!=="OL"||t[1].childElementCount===0&&i(e)})}()})(document);var M=function(){for(let l=1;l<=6;l++){let c=document.querySelectorAll(".article-post>h"+l);for(let s=0;s${i.innerHTML}`}}}(),S=function(){let l=document.documentElement,c="user-color-scheme",s="data-user-color-scheme",i=document.getElementById("dark-mode-button"),d=(n,a)=>{try{localStorage.setItem(n,a)}catch(g){}},h=n=>{try{localStorage.removeItem(n)}catch(a){}},e=n=>{try{return localStorage.getItem(n)}catch(a){return null}},t=()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",o=()=>{l.removeAttribute(s),h(c)},r={dark:!0,light:!0},m=n=>{let a=n||e(c);a===t()?o():r[a]?l.setAttribute(s,a):o()},u={dark:"light",light:"dark"},f=()=>{let n=e(c);if(r[n])n=u[n];else if(n===null)n=u[t()];else return;return d(c,n),n};m(),i.addEventListener("click",()=>{m(f())})}();})(); +/*! TinaJS for v2.0.0 | Created by Magneto for TinaTheme| Size about 2.2KB */ +(()=>{(function(l){let c=!1;l.currentScript&&(c=l.currentScript.dataset.enableFootnotes=="true"),c&&function(){let i=e=>{!e||(e.remove?e.remove():e.parentNode.removeChild(e))},d=(e,t)=>{e.after?e.after(t):e.parentNode.insertBefore(t,e.nextSibling)},h=e=>{var t=e.parentNode,o=e.innerHTML,r=document.createElement("div");d(t,r),r.appendChild(e),e.innerHTML="",e.appendChild(t),t.innerHTML=o,d(r,r.firstElementChild),i(r)};document.querySelectorAll('.footnotes > ol > li[id^="fn"], #refs > div[id^="ref-"]').forEach(function(e){let t=document.querySelectorAll('a[href="#'+e.id+'"]');if(t.length===0)return;t.forEach(function(u){u.removeAttribute("href")});let o=t[0],r=document.createElement("div");if(r.className="side side-right",/^fn/.test(e.id)){r.innerHTML=e.innerHTML;var m=o.innerHTML;r.firstElementChild.innerHTML=''+m+" "+r.firstElementChild.innerHTML,i(r.querySelector('a[href^="#fnref"]')),o.parentNode.tagName==="SUP"&&h(o)}else r.innerHTML=e.outerHTML,o=o.parentNode;d(o,r),o.classList.add("note-ref"),i(e)}),document.querySelectorAll(".footnotes, #refs").forEach(function(e){var t=e.children;if(e.id==="refs")return t.length===0&&i(e);t.length!==2||t[0].tagName!=="HR"||t[1].tagName!=="OL"||t[1].childElementCount===0&&i(e)})}()})(document);var M=function(){for(let l=1;l<=6;l++){let c=document.querySelectorAll(".article-post>h"+l);for(let s=0;s${i.innerHTML}`}}}(),S=function(){let l=document.documentElement,c="user-color-scheme",s="data-user-color-scheme",i=document.getElementById("dark-mode-button"),d=(n,a)=>{try{localStorage.setItem(n,a)}catch(g){}},h=n=>{try{localStorage.removeItem(n)}catch(a){}},e=n=>{try{return localStorage.getItem(n)}catch(a){return null}},t=()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",o=()=>{l.removeAttribute(s),h(c)},r={dark:!0,light:!0},m=n=>{let a=n||e(c);a===t()?o():r[a]?l.setAttribute(s,a):o()},u={dark:"light",light:"dark"},f=()=>{let n=e(c);if(r[n])n=u[n];else if(n===null)n=u[t()];else return;return d(c,n),n};m(),i.addEventListener("click",()=>{m(f())})}();})(); \ No newline at end of file diff --git a/assets/js/katex.support.js b/assets/js/katex.support.js index 2602b3e..74a8da3 100644 --- a/assets/js/katex.support.js +++ b/assets/js/katex.support.js @@ -1,2 +1,2 @@ -/*! SmileJS for v1.2.9 | Created by Magneto for Smiletheme */ +/*! KateXJS for v2.0.0 | Created by Magneto for TinaTheme */ renderMathInElement(document.body,{delimiters:[{left:"$$",right:"$$",display:true},{left:"$",right:"$",display:false},{left:'\\(',right:'\\)',display:false},{left:'\\[',right:'\\]',display:true}]}); \ No newline at end of file diff --git a/comments.php b/comments.php index 5880e27..a8ab131 100755 --- a/comments.php +++ b/comments.php @@ -47,10 +47,7 @@ comments()->to($comments); ?> allow('comment')): ?>
-
- cancelReply(); ?> -
-

+

cancelReply(); ?>

user->hasLogin()): ?>

user->screenName(); ?>. »

diff --git a/core/functions.php b/core/functions.php index 4007ed9..2c81188 100755 --- a/core/functions.php +++ b/core/functions.php @@ -1,6 +1,6 @@ fetchAll($select, array(Typecho_Widget::widget('Widget_Abstract_Contents'), 'filter')); } /** - * SmileTheme - compressHtml + * TinaTheme - compressHtml * 代码压缩 */ function compressHtml($html_source) @@ -72,7 +72,7 @@ function compressHtml($html_source) return $compress; } /** - * SmileTheme - Links + * TinaTheme - Links * 友情链接 */ function Links_list() @@ -123,7 +123,7 @@ function Links($short = false) echo $link ? $link : '暂无链接' . "\n"; } /** - * SmileTheme - Verification + * TinaTheme - Verification * 验证系统 */ function themeInit($comment){ @@ -151,7 +151,7 @@ function spam_protection_pre($comment, $post, $result){ return $comment; } /** - * SmileTheme - ShortCode + * TinaTheme - ShortCode * 短代码 */ function getContentTest($content) { @@ -179,7 +179,7 @@ function getContentTest($content) { return $content; } /** - * SmileTheme - Words Count + * TinaTheme - Words Count * 字数统计 */ function word_count($cid){ @@ -188,7 +188,7 @@ function word_count($cid){ return mb_strlen($rs['text'], 'UTF-8'); } /** - * SmileTheme - Comment avatar optimization + * TinaTheme - Comment avatar optimization * 评论头像优化 * 为 Gravatar 头像加速,为提供 QQ 邮箱的评论使用 QQ 头像 * 实验功能 @@ -210,7 +210,7 @@ function Authorimg($email) } } /** - * SmileTheme - Next or Previous Post + * TinaTheme - Next or Previous Post * 上一篇文章、下一篇文章输出修订 * 为了在 a 标签的内容中同时兼容文章标题和其它内容所写 */ diff --git a/footer.php b/footer.php index 12664a1..861fa88 100755 --- a/footer.php +++ b/footer.php @@ -1,7 +1,7 @@
options->FooterHTML): ?> options->FooterHTML() ?> diff --git a/functions.php b/functions.php index bb239d0..cc3fbf7 100755 --- a/functions.php +++ b/functions.php @@ -10,7 +10,7 @@ function themeConfig($form) { $TheNotice->input->setAttribute('style', 'display:none'); $form->addInput($TheNotice); - $favicon = new Typecho_Widget_Helper_Form_Element_Text('favicon', NULL, '/usr/themes/SmileTheme/assets/favicon.ico', _t('Favicon 图标'), _t('在这里填入一个图片 URL 地址, 以添加一个 Favicon,留空则不单独设置 Favicon,主题默认 Favicon 地址为 /usr/themes/SmileTheme/assets/favicon.ico')); + $favicon = new Typecho_Widget_Helper_Form_Element_Text('favicon', NULL, '/usr/themes/TinaTheme/assets/favicon.ico', _t('Favicon 图标'), _t('在这里填入一个图片 URL 地址, 以添加一个 Favicon,留空则不单独设置 Favicon,主题默认 Favicon 地址为 /usr/themes/TinaTheme/assets/favicon.ico')); $form->addInput($favicon); $articles = new Typecho_Widget_Helper_Form_Element_Text('articles', NULL, '/index.php/articles.html', _t('Articles URL'), _t('首页全部文章按钮[查看示例图片]指向的链接,需要创建Articles的自定义页面,并在此填入自定义页面的URL才可正常使用,不填则不显示,强烈推荐开启,因为首页不支持文章翻页,一次仅能浏览有限数量文章。')); @@ -242,13 +242,13 @@ function themeConfig($form) { _t('开启后可在首页见到第一个项目推荐,若想要显示,请首先开启项目推荐') ); $form->addInput($Project_1); - $Project_1_Name = new Typecho_Widget_Helper_Form_Element_Text('Project_1_Name', NULL, 'SmileTheme', _t('第一个项目的名称'), _t('')); + $Project_1_Name = new Typecho_Widget_Helper_Form_Element_Text('Project_1_Name', NULL, 'TinaTheme', _t('第一个项目的名称'), _t('')); $form->addInput($Project_1_Name); - $Project_1_URL = new Typecho_Widget_Helper_Form_Element_Text('Project_1_URL', NULL, 'https://www.github.com/ouyangyanhuo/SmileTheme', _t('第一个项目的链接'), _t('这里写第一个项目的链接地址,不填则代表留空')); + $Project_1_URL = new Typecho_Widget_Helper_Form_Element_Text('Project_1_URL', NULL, 'https://www.github.com/ouyangyanhuo/TinaTheme', _t('第一个项目的链接'), _t('这里写第一个项目的链接地址,不填则代表留空')); $form->addInput($Project_1_URL); $Project_1_Describe = new Typecho_Widget_Helper_Form_Element_Textarea('Project_1_Describe', NULL, 'A theme for Typecho', _t('第一个项目的描述'), _t('这里写第一个项目的描述内容,不推荐超过50字,不填则代表留空')); $form->addInput($Project_1_Describe); - $Project_1_Icon = new Typecho_Widget_Helper_Form_Element_Text('Project_1_Icon', NULL, '/usr/themes/SmileTheme/assets/favicon.ico', _t('第一个项目的图标'), _t('这里填入第一个项目的图标的链接,由于未知原因,暂不支持Emoji、Windows表情,若有需要请修改本地代码')); + $Project_1_Icon = new Typecho_Widget_Helper_Form_Element_Text('Project_1_Icon', NULL, '/usr/themes/TinaTheme/assets/favicon.ico', _t('第一个项目的图标'), _t('这里填入第一个项目的图标的链接,由于未知原因,暂不支持Emoji、Windows表情,若有需要请修改本地代码')); $form->addInput($Project_1_Icon); $Project_2 = new Typecho_Widget_Helper_Form_Element_Radio( diff --git a/index.php b/index.php index bde96a4..94a7f8f 100755 --- a/index.php +++ b/index.php @@ -1,8 +1,8 @@ WingLim的hugo-tania主题,在其基础上进行了深度修改的Smiletheme或许是你在Typecho上最好的选择 - *
版本检测中... 
- * + * 移植自WingLimhugo-tania主题,在其基础上进行了深度修改的TinaTheme或许是你在Typecho上最好的选择 + *
版本检测中...  + * * * @package Smile Theme * @author Magneto From 499a1c50746febfdb17ae106f0974bbebc364d73 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Tue, 26 Jul 2022 13:24:39 +0800 Subject: [PATCH 12/23] up readme.md --- .github/{ => ISSUE_TEMPLATE}/need-help.md | 0 README.md | 10 ++++++++++ 2 files changed, 10 insertions(+) rename .github/{ => ISSUE_TEMPLATE}/need-help.md (100%) diff --git a/.github/need-help.md b/.github/ISSUE_TEMPLATE/need-help.md similarity index 100% rename from .github/need-help.md rename to .github/ISSUE_TEMPLATE/need-help.md diff --git a/README.md b/README.md index 7992f74..c664779 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,13 @@ +

+ Haku +

+ +
+ +# Tina + +_Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_ + ## TinaTheme 一个为typecho移植的主题,源自于[hugo-tania](https://github.com/WingLim/hugo-tania)主题,原本是Hugo的主题,被移植到Typecho上在其基础上进行了深度修改的TinaTheme或许是你在Typecho上最好的选择 From f6766362ead5e0e6079dd405eb81b57ec14c1ca9 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Tue, 26 Jul 2022 13:29:41 +0800 Subject: [PATCH 13/23] README.md --- README.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index c664779..a9af274 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,13 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_ +## 年少之梦 + + + ## TinaTheme 一个为typecho移植的主题,源自于[hugo-tania](https://github.com/WingLim/hugo-tania)主题,原本是Hugo的主题,被移植到Typecho上在其基础上进行了深度修改的TinaTheme或许是你在Typecho上最好的选择 @@ -37,12 +44,8 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_ - 完成所有所需页面的重构 - 由 SmileTheme 更名为 TinaTheme - 调整评论区 取消回复 按钮位置 -- 新增了加密文章的输入框、提交按钮的样式。 - -## 年少之梦 -本项目及开发者已加入 [「年少之梦」](https://www.teendreams.cn) 组织 - -
+- 新增了加密文章的输入框、提交按钮的样式 +- 当前Dev分支由于主题暂未更名,部分内容暂时无法显示 ## 使用提示 From 5f21c7461b2ef2be24cdb2fced7fb35556889e2e Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Tue, 26 Jul 2022 13:30:12 +0800 Subject: [PATCH 14/23] README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a9af274..883e0ff 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_
本项目及开发者已加入 [「年少之梦」](https://www.teendreams.cn) 组织 - +
## TinaTheme From 5d70d4a19ed39a2398f95854109c9d85ef9d3841 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Tue, 26 Jul 2022 13:31:42 +0800 Subject: [PATCH 15/23] readme.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 883e0ff..c7ee941 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,14 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_ +
+ ## 年少之梦
+ 本项目及开发者已加入 [「年少之梦」](https://www.teendreams.cn) 组织 +
@@ -107,4 +111,4 @@ TinaTheme 使用 [GPL V3.0](https://github.com/ouyangyanhuo/TinaTheme/blob/main/ ![](https://i.loli.net/2021/08/16/sARYjilgO9MF2H1.png) ![](https://i.loli.net/2021/08/16/rcXL5KjbueZ6zQp.png) ![](https://i.loli.net/2021/08/16/wLxGjiPm6pZoyBt.png) -![](https://i.loli.net/2021/08/16/Cq1Dymtsur4eTAV.png) +![](https://i.loli.net/2021/08/16/Cq1Dymtsur4eTAV.png) \ No newline at end of file From 4d2ea55038e08e750398c6a530375ffaa55e3f73 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Wed, 27 Jul 2022 11:51:54 +0800 Subject: [PATCH 16/23] 2.0.0-Build22725-Dev-No.3 --- index.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/index.php b/index.php index 94a7f8f..9bf8bf2 100755 --- a/index.php +++ b/index.php @@ -1,12 +1,12 @@ WingLim的hugo-tania主题,在其基础上进行了深度修改的TinaTheme或许是你在Typecho上最好的选择 - *
版本检测中...  - * + * 移植自WingLimhugo-tania主题,在其基础上进行了深度修改的 Tinatheme 或许是你在Typecho上最好的选择 + *
版本检测中... 
+ * * * @package Smile Theme * @author Magneto - * @version 2.0.0-Build22725-Dev-No.2 + * @version 2.0.0-Build22725-Dev-No.3 * @link https://www.fmcf.cc */ From c4ec46baaaefda65c86dc369398530cc8a69aad8 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Wed, 27 Jul 2022 11:52:18 +0800 Subject: [PATCH 17/23] 2.0.0-Build22725-Dev-No.3 --- README.md | 38 ++++++++++++++++++++++---------------- assets/css/style.css | 2 +- functions.php | 8 ++++---- 3 files changed, 27 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index c7ee941..5311ec7 100644 --- a/README.md +++ b/README.md @@ -19,16 +19,16 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_ -## TinaTheme +## Tinatheme -一个为typecho移植的主题,源自于[hugo-tania](https://github.com/WingLim/hugo-tania)主题,原本是Hugo的主题,被移植到Typecho上在其基础上进行了深度修改的TinaTheme或许是你在Typecho上最好的选择 +一个为typecho移植的主题,源自于[hugo-tania](https://github.com/WingLim/hugo-tania)主题,原本是Hugo的主题,被移植到Typecho上在其基础上进行了深度修改的Tinatheme或许是你在Typecho上最好的选择 -[![AdminMD](https://img.shields.io/badge/Magneto-TinaTheme-brightgreen?style=for-the-badge)](https://fmcf.cc/technology/523/) +[![AdminMD](https://img.shields.io/badge/Magneto-Tinatheme-brightgreen?style=for-the-badge)](https://fmcf.cc/technology/523/) ![Version](https://img.shields.io/badge/Version-2.0.0-critical?style=for-the-badge) -![Repo-size](https://img.shields.io/github/languages/code-size/ouyangyanhuo/TinaTheme?style=for-the-badge) -![License](https://img.shields.io/github/license/ouyangyanhuo/TinaTheme?style=for-the-badge) -![Stars](https://img.shields.io/github/stars/ouyangyanhuo/TinaTheme?style=for-the-badge) -![Forks](https://img.shields.io/github/forks/ouyangyanhuo/TinaTheme?style=for-the-badge&k) +![Repo-size](https://img.shields.io/github/languages/code-size/ouyangyanhuo/Tinatheme?style=for-the-badge) +![License](https://img.shields.io/github/license/ouyangyanhuo/Tinatheme?style=for-the-badge) +![Stars](https://img.shields.io/github/stars/ouyangyanhuo/Tinatheme?style=for-the-badge) +![Forks](https://img.shields.io/github/forks/ouyangyanhuo/Tinatheme?style=for-the-badge&k) 原主题:[https://github.com/WingLim/hugo-tania](https://github.com/WingLim/hugo-tania) @@ -46,14 +46,20 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_ - 重写了上一篇、下一篇按钮 - 新增了针对上一篇、下一篇按钮的核心内容 - 完成所有所需页面的重构 -- 由 SmileTheme 更名为 TinaTheme +- 由 SmileTheme 更名为 Tinatheme - 调整评论区 取消回复 按钮位置 - 新增了加密文章的输入框、提交按钮的样式 - 当前Dev分支由于主题暂未更名,部分内容暂时无法显示 +- 将更新检测请求由 GitHub 移至 Assets-FMCF +- 优化更新检测请求的UI +- 修复评论过长,导致文本溢出的问题 +- 优化夜间模式评论区输入内容的显示效果 ## 使用提示 -- 在1.2.7版本更新时,添加了评论区头像优化,使得评论区头像可以通过QQ邮箱解析,并且更改了默认头像源,评论区头像优化是一项无法关闭的内容,如果需要关闭或修改 Gravatar 的代理地址,请前往 `/主题所在目录/core/functions.php` 第 190-211 行 进行修改。 +- 在 1.2.7 版本更新时,添加了评论区头像优化,使得评论区头像可以通过QQ邮箱解析,并且更改了默认头像源,评论区头像优化是一项无法关闭的内容,如果需要关闭或修改 Gravatar 的代理地址,请前往 `/主题所在目录/core/functions.php` 第 190-211 行 进行修改。 + +- 在 2.0.0 版本更新时,更新检测请求由 Assets-FMCF 接管,隐私政策更改,隐私管理得以加强,Assets-FMCF 请求中心只会记录请求URL和请求时间,不会记录更多别的内容。 ## 功能与特性 @@ -76,25 +82,25 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_ 欢迎提 Issues 和 PRs,欢迎提出建议 ## 使用 -下载主题包并解压 ( 若是从 GitHub 或 Gitee 下载,请把解压出来的文件夹改名为 `TinaTheme` ) ,将文件夹上传至网站文件主题目录 ( `/usr/theme` ) 下,进入网站后台 - 控制台 - 外观 - 启用主题即可。 +下载主题包并解压 ( 若是从 GitHub 或 Gitee 下载,请把解压出来的文件夹改名为 `Tinatheme` ) ,将文件夹上传至网站文件主题目录 ( `/usr/theme` ) 下,进入网站后台 - 控制台 - 外观 - 启用主题即可。 ## 文档 -TinaTheme 文档 : [https://TinaTheme.docs.fmcf.cc](https://TinaTheme.docs.fmcf.cc) +Tinatheme 文档 : [https://Tinatheme.docs.fmcf.cc](https://Tinatheme.docs.fmcf.cc) ## Demo 主题效果预览 -TinaTheme主题演示站:[https://TinaTheme.fmcf.cc](https://TinaTheme.fmcf.cc) +Tinatheme主题演示站:[https://Tinatheme.fmcf.cc](https://Tinatheme.fmcf.cc) ## 注意 -TinaTheme 使用 [GPL V3.0](https://github.com/ouyangyanhuo/TinaTheme/blob/main/LICENSE) 协议开源,请遵守此协议进行二次开发等。 +Tinatheme 使用 [GPL V3.0](https://github.com/ouyangyanhuo/Tinatheme/blob/main/LICENSE) 协议开源,请遵守此协议进行二次开发等。 -您必须在页脚保留 TinaTheme 主题的名称及其指向链接,否则请不要使用 TinaTheme 主题。 +您必须在页脚保留 Tinatheme 主题的名称及其指向链接,否则请不要使用 Tinatheme 主题。 -您可以删除页脚的作者版权信息,但是不能删除 TinaTheme 主题的名称及其指向链接。 +您可以删除页脚的作者版权信息,但是不能删除 Tinatheme 主题的名称及其指向链接。 ## 捐赠 @@ -102,7 +108,7 @@ TinaTheme 使用 [GPL V3.0](https://github.com/ouyangyanhuo/TinaTheme/blob/main/ ## 下载渠道 -1.GitHub [https://github.com/ouyangyanhuo/TinaTheme](https://github.com/ouyangyanhuo/TinaTheme) 适合国外(主仓库) +1.GitHub [https://github.com/ouyangyanhuo/Tinatheme](https://github.com/ouyangyanhuo/Tinatheme) 适合国外(主仓库) 2.取消 Gitee 下载 因为它真的比 Shit 还烂,Gitee仓库会保留,但不会同步、更新。 diff --git a/assets/css/style.css b/assets/css/style.css index c6dc023..38fd3d3 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -1,2 +1,2 @@ /*! TinaCSS for v2.0.0 | Created by Magneto for TinaTheme| Size about 25.5KB */ -html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:transparent}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],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{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}*,::after,::before{box-sizing:border-box}:root{--color-mode:light;--h1-color:#343a40;--font-color:#495057;--heading-color:#343a40;--background:white;--dark-font-color:#1b1d25;--medium-font-color:#60656c;--light-font-color:#858b93;--light-background:#f1f4f8;--light-background-hover:#e1e6ed;--border:#d6d9de;--link-color:#5183f5;--link-color-darker:#364fc7;--navbar-color:#1b1d25;--blockquote:#f9f9f9;--blockquote-left:#e3e6eb;--transparent-text:rgba(0,0,0,0.7);--transparent-bg:rgba(0,0,0,0.05);--light-transparent-bg:rgba(255,255,255,0.1);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#fff;--submit-color:#fff;--comment-body-color:#343a40;--comment-meta:rgba(0 0 0 / 44%);--inkpage-li-a-h4-color:#333333;--webkit-scrollbar:rgb(78 76 76 / 30%)}.flex{display:flex;align-items:center}.flex-row{display:flex;flex-direction:column}@media screen and (min-width:800px){.flex-row{flex-direction:row}}.flex-col{flex:1}.flex-two-thirds{flex:2}.justify-center{justify-content:center}html{font-family:-apple-system,BlinkMacSystemFont,helvetica neue,roboto,Roboto,Arial,noto sans,sans-serif,apple color emoji,segoe ui,segoe ui emoji,segoe ui symbol,noto color emoji;color:var(--font-color);font-weight:400;font-size:1rem;line-height:1.75}body{background:var(--background);margin:0;padding:0}section{margin:2rem 0}section:first-of-type{margin-top:0}section>h2{display:flex;align-items:center;font-size:1.6rem;margin-top:0;margin-bottom:.5rem}@media screen and (min-width:800px){section>h2{margin-bottom:2rem}}.index h2,section>h2{border-bottom-width:0}@media screen and (min-width:800px){.index h2,section>h2{border-bottom-width:4px}}a.section-button{font-weight:500;background:var(--light-background);color:var(--dark-font-color);padding:.4rem .6rem;font-size:.8rem;border-radius:.3rem;border-width:0!important;white-space:nowrap;line-height:1;margin-left:2rem;margin-top:.5rem}a.section-button:hover{background:var(--light-background-hover);color:var(--heading-color)}@media screen and (min-width:800px){section{margin:3.5rem 0}section>h2{font-size:2rem;margin:0 0 1rem}}.container{max-width:825px;padding:0 1.5rem;margin-left:auto;margin-right:auto}.container.page p{max-width:600px}@media screen and (min-width:800px){.container{padding:0 2rem}}img{display:inline-block;max-width:100%;height:auto}blockquote,dl,ol,p,table,ul{font-size:1.05rem;margin:0 0 1.5rem}ul{padding:0 1rem}@media screen and (min-width:800px){blockquote,dl,ol,p,table,ul{font-size:1.125rem}ul{padding:0 2rem}}ul li p{margin:0}ul li ul{padding-left:1rem;margin:0}ul li ul li{margin:0}ol li ol{margin-bottom:0}.task-list-item [type=checkbox]{margin-right:.5rem}blockquote{margin:2rem 0;padding:1rem;background:var(--blockquote);font-weight:400;border-left:5px solid var(--blockquote-left)}@media screen and (min-width:800px){blockquote{padding:2rem 0 2rem 2rem}}::selection{background:#3b5bdb;color:#fff}h1{color:var(--h1-color)}h3,h4{color:var(--medium-font-color)}h2,h5{color:var(--heading-color)}h1,h2,h3,h4,h5{margin:0 0 1.5rem;font-weight:700;line-height:1.2;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1:not(:first-child),h2:not(:first-child),h3:not(:first-child),h4:not(:first-child){margin-top:3rem}h1{font-size:2.5rem;line-height:1.1}h2{font-size:1.75rem;padding-bottom:.5rem;border-bottom:4px solid var(--light-background)}h2 code{font-size:1.75rem!important}h3{font-size:1.5rem;color:var(--font-color);font-weight:600;margin-bottom:1rem}h3 code{font-size:1.4rem!important}h4{font-size:1.3rem;color:var(--font-color);font-weight:500;margin-bottom:1rem;border-bottom:2px solid var(--light-background);padding-bottom:.25rem}h5{font-size:1.2rem;margin-bottom:1rem}@media screen and (min-width:800px){h1{font-size:3rem}h2{font-size:1.9rem}h3{font-size:1.7rem;color:var(--font-color);font-weight:600}h4{font-weight:400;font-size:1.4rem}}a.link{display:block;padding:.25rem 0;margin:.25rem 0;border-radius:.35rem;font-weight:600;color:var(--dark-font-color)}a.link:hover{color:var(--link-color)}a.button{display:inline-block;border:2px solid var(--link-color);padding:.3rem .6rem;margin-right:.75rem;font-weight:500;background:var(--link-color);color:#fff;border-radius:.35rem;font-size:.9rem}a.button.large{padding:.8rem 1rem;font-size:1.05rem}a.button.secondary{border:2px solid #edf2ff;background:#edf2ff;color:#3b5bdb}a.button.secondary:hover,a.button:hover{border:2px solid var(--link-color-darker);background:var(--link-color-darker);color:#fff}@media screen and (min-width:800px){a.button{font-size:.9rem}a.button.large{padding:1rem 1.5rem;font-size:1.1rem}}p.subtitle{color:var(--medium-font-color);font-size:1.3rem;font-weight:300;margin-bottom:0}@media screen and (min-width:800px){p.subtitle{font-size:1.5rem}}a{color:inherit;text-decoration:none}a.image-link{border-width:0}main{margin-top:50px}@media screen and (min-width:800px){main{margin-top:0}}.emoji{margin:0 .4rem 0 .1rem}.navbar{width:100%;position:fixed;top:0;left:0;background:var(--navbar-color);box-shadow:0 3px 13px rgba(100,110,140,.1),0 2px 4px rgba(100,110,140,.15);z-index:2;padding:.5rem}.navbar .flex{justify-content:space-between}.navbar a{border-radius:.35rem;margin:0 .05rem;color:rgba(255,255,255,.65);font-weight:400;font-size:.85rem;border:1px solid transparent;padding:0 .3rem;background:0 0}.navbar a:first-of-type{margin-left:-1rem}.navbar a .emoji{display:none}.navbar a.brand{font-weight:500;color:#fff;white-space:nowrap;border:none;display:flex;align-items:center;line-height:1;background:0 0}.navbar a.brand .emoji{display:inline-block!important}.navbar a.brand img{height:22px;width:22px}.navbar button{font-size:1rem;margin-right:-1rem}@media screen and (min-width:500px){.navbar a{font-size:.95rem;padding:.5rem}}@media screen and (min-width:800px){.emoji{margin:0 .5rem 0 .1rem}.navbar{position:static;padding:1.5rem 0;background:0 0;box-shadow:none}.navbar .flex{justify-content:space-between}.navbar a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.navbar a:first-of-type{margin-left:-1.5rem}.navbar a:hover,.navbar a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}.navbar a.brand{font-size:1.3rem;margin-right:3rem;border:none;background:0 0!important;color:var(--dark-font-color)}.navbar a.brand:hover{background:var(--light-background)!important}.navbar a.brand img{height:26px;width:26px;margin-right:.25rem}#dark-mode-button:hover{background:var(--light-background)}}@media print{.navbar{display:none}}#dark-mode-button{display:flex;border:none;padding:.2rem .7rem .2rem .5rem;border-radius:.35rem;box-sizing:content-box;cursor:pointer;font-size:1.1rem;background:0 0}#dark-mode-button .dark{display:none}#dark-mode-button:focus{outline:0}[data-user-color-scheme] #dark-mode-button .light{display:none}[data-user-color-scheme] #dark-mode-button .dark{display:unset}@media screen and (min-width:800px){#dark-mode-button{padding:.95rem .75rem;font-size:1.2rem}}.my{padding-top:2rem}.my a{border:none;margin-right:1rem}.my a:hover{border:none}.post-row{display:flex;align-items:center;width:100%}.post-row time{display:block;flex:0 0 65px}.post-row h3{flex:1}.posts .post:last-of-type a{border-bottom-width:0}.post a{display:flex;align-items:center;justify-content:stretch;padding:1rem 0;border-bottom:2px solid var(--light-background)}.post a:hover{border-radius:.3rem}.post h3{margin-top:.1rem;margin-bottom:0;font-size:1.1rem;font-weight:600}@media screen and (min-width:800px){.posts{margin-left:-1rem;margin-right:-1rem}.post a{padding:.75rem 1rem;border-bottom-color:transparent}.post a:hover{background:var(--light-background)}.post h3{font-size:1.3rem}.post-row time{flex:0 0 80px}}.new-post,.popular-post{display:inline-block;color:#111;padding:.3rem .4rem;border-radius:.3rem;font-size:.85rem;margin-left:1rem}.new-post{background:#d3f9d8}.popular-post{background:#dce6fd;color:var(--heading-color)}@media screen and (min-width:800px){.new-post,.popular-post{margin-bottom:0}}.footer{padding:2rem 0}.footer>.flex{flex-direction:column;align-items:center;justify-content:center}.footer img{height:30px;width:30px}.footer a{border-radius:.35rem;margin:0 .05rem;font-weight:400;font-size:1rem;border:1px solid transparent;padding:.5rem;margin:0 .5rem;color:var(--light-font-color)}.footer a:hover{color:var(--heading-color);background:var(--light-background)}.footer a.img{display:flex;align-items:center;padding:0;margin:0 .75rem;background:0 0}.footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.flex nav{padding:1rem 0}@media screen and (min-width:800px){.footer>.flex{align-items:flex-start;margin-left:-1.5rem;margin-right:-1.5rem}.footer a{padding:.75rem}.footer a.img{padding:0 .5rem;margin:0 1rem}}@media print{.footer{display:none}}.small{max-width:600px}.meta,time{color:var(--light-font-color);font-size:.85rem;white-space:nowrap;font-weight:400}.meta{color:var(--medium-font-color);font-size:1rem}table{border-collapse:separate;border-spacing:0;width:100%;max-width:100%;overflow-x:auto}tbody,thead{white-space:nowrap}th{border-bottom:2px solid var(--border)}tfoot th{border-top:1px solid var(--border)}td{border-bottom:1px solid var(--border)}td,th{text-align:left;padding:.75rem;hyphens:auto}tbody tr:nth-child(even){background-color:var(--light-background)}@media screen and (min-width:800px){table{display:table;border:1px solid var(--border)}tbody,thead{white-space:normal}}.count{font-weight:700;color:var(--link-color)}.tags{display:flex!important;flex-wrap:wrap;align-items:center;margin-left:-.5rem;margin-right:-.5rem}.tags>a{display:block;font-weight:500;background:var(--light-background);color:var(--font-color);margin:.2rem;padding:.5rem .6rem;font-size:.8rem;border-radius:.3rem;border-bottom:0;white-space:nowrap;line-height:1}.tags>a:hover{background:var(--light-background-hover);color:var(--heading-color)}mark{background:#ffec99}.utterances{margin-left:-4px;margin-right:-4px}kbd{background-color:#f7f7f7;border:2px solid rgba(0,0,0,.3);border-radius:3px;box-shadow:0 1px rgba(0,0,0,.2),inset 0 0 0 2px #fff;color:#333;display:inline-block;font-family:Helvetica Neue,Inter,-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;line-height:1.4;margin:0 .1em;padding:.1em .6em;text-shadow:0 1px 0 #fff;font-size:14px}#comments{margin-top:3rem}#comments h2{margin:0}@media print{#comments,.comments{display:none}}#search-query{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;width:100%;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem}#search-query:focus{border-color:#5183f5}#search-results{display:none}.filter-container{display:flex;justify-content:flex-start;margin-bottom:1.5rem;flex-wrap:wrap}.filter-item{font-size:.85rem;padding:.5rem .75rem;background:var(--light-background);border-radius:4px;margin-right:.5rem;margin-bottom:.5rem;font-weight:600;cursor:pointer}.filter-item:hover{background:#d8e3fd;color:#3972f4}.filter-item:last-of-type{margin-right:0}.filter-item.active{background:#5183f5;color:#fff}.filter-item.active:hover{color:#fff;background:#2161f2}header{padding:1.5rem 0}header h1{font-size:2rem;display:inline-block;font-weight:600;margin-top:1rem}header u{display:inline-block;text-decoration:none;padding:.4rem 0}.article-header{padding-top:2rem;margin-bottom:.5rem}.article-header .container{padding-left:0;padding-right:0}.article-header .thumb{display:flex;flex-direction:column}.article-header h1{font-weight:700;font-size:1.8rem;margin:0}.article-header .description{font-size:1.2rem;color:var(--light-font-color);font-weight:300;margin-top:2rem;margin-bottom:0}.post-meta{margin-top:1rem;padding:0;color:var(--light-font-color);font-size:.9rem}.post-meta a{color:var(--font-color);border-width:0}.post-meta time{margin-top:.2rem;font-size:.9rem}.post-meta .tags{margin-top:.5rem}.post-meta .tags a{text-decoration:none}.article-post{margin-bottom:2rem}.article-post img{border-radius:5px;display:block;margin-left:auto;margin-right:auto}.article-post a{box-shadow:0 -2px rgba(189,195,199,.5) inset;transition:all .3s ease}.article-post a:hover{box-shadow:0 -10px rgba(189,195,199,.7) inset}.article-post code{overflow-x:auto}.article-post h1 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h1 .anchor .icon{visibility:hidden}.article-post h1:hover .anchor{box-shadow:none}.article-post h1:hover .anchor .icon{visibility:visible}.article-post h2 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h2 .anchor .icon{visibility:hidden}.article-post h2:hover .anchor{box-shadow:none}.article-post h2:hover .anchor .icon{visibility:visible}.article-post h3 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h3 .anchor .icon{visibility:hidden}.article-post h3:hover .anchor{box-shadow:none}.article-post h3:hover .anchor .icon{visibility:visible}.article-post h4 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h4 .anchor .icon{visibility:hidden}.article-post h4:hover .anchor{box-shadow:none}.article-post h4:hover .anchor .icon{visibility:visible}.article-post h5 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h5 .anchor .icon{visibility:hidden}.article-post h5:hover .anchor{box-shadow:none}.article-post h5:hover .anchor .icon{visibility:visible}.article-post h6 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h6 .anchor .icon{visibility:hidden}.article-post h6:hover .anchor{box-shadow:none}.article-post h6:hover .anchor .icon{visibility:visible}@media screen and (min-width:800px){.article-post{margin-bottom:3rem}.article-post h1,.article-post h2,.article-post h3,.article-post h4,.article-post h5{padding-top:1rem}.post-meta{margin-top:.5rem;padding:.5rem 0}header h1{font-size:3rem;margin-top:2rem}header u{background:linear-gradient(transparent 85%,#bac8ff 0)}.article-header{padding-top:3rem}.article-header h1{padding-top:0;font-size:2.5rem}.article-header .thumb{flex-direction:row}.article-header .description{font-size:1.8rem;line-height:1.5}}@media screen and (min-width:1100px){.article-header h1{font-size:2.5rem}}.post-thumbnail{display:block!important}code,pre{font-size:.9rem;font-family:Consolas,Monaco,Menlo,dejavu sans mono,bitstream vera sans mono,courier new,monospace;background:#373b41}:not(pre)>code{color:var(--dark-font-color);background:var(--light-background)}code{padding:3px 5px;border-radius:4px;color:#f8f8f2}pre>code{display:block}.side{width:200px;margin:0 auto}.side p{margin:0}.side-right{float:right;clear:right;margin-right:calc(-200px - 2em);background-color:var(--background)}.side-right p{font-size:.9rem}.footnotes ol li p{margin:0}.footnotes hr{border:none;border-top:1px solid var(--border)}.footnote-ref{box-shadow:none!important}.footnote-backref{box-shadow:none!important}.note-ref{cursor:pointer;border:none;box-shadow:none!important}.note-ref:hover{box-shadow:none;border:none}.bg-number{background:var(--light-background);font-size:.9rem;color:var(--font-color);text-decoration:none;padding:1px 5px;border-radius:5px}@media(max-width:1280px){.side{width:100%;padding:0 2em}.side-right{float:none;clear:both;margin:1em auto;background:0 0}}@media(min-width:1280px){.note-ref:hover~.side{display:inline-block;position:absolute;margin-left:1rem;padding:.5rem;box-sizing:content-box}}.suggested{flex-direction:column;align-items:stretch;margin-left:-1rem;margin-right:-1rem;padding:0}.suggested span{font-weight:400;display:block;font-size:.9rem;color:var(--transparent-text)}.suggested a{background:0 0;margin:.5rem 1rem;border-bottom:none;transition:all .2s ease;padding:1.5rem;border-radius:.35rem;background:var(--light-background);color:var(--heading-color)}.suggested a:hover{transform:translate3D(0,-1px,0);background:var(--light-background-hover)}@media screen and (min-width:800px){.suggested{flex-direction:row}.suggested a{flex:0 0 calc(50% - 2rem)}.suggested a:first-of-type{text-align:right}}.projects .project:last-of-type{border-bottom-width:0}.project{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:2px solid var(--light-background)}.project .icon{font-size:1.5rem;width:40px}.project a{display:flex;align-items:center;margin-bottom:.25rem;border-width:0}.project a:hover h3{text-decoration:underline}.project a.button{margin-left:1.5rem;border-width:2px}.project h3{font-size:1.2rem;margin:0}.project .description{font-size:1.1rem;color:var(--light-font-color)}@media screen and (min-width:800px){.project{border-bottom-width:0}.project h3{font-size:1.3rem}.project .description{font-size:1rem}}.terms a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color);border-radius:.35rem}.terms a:hover{background:var(--light-background);color:var(--dark-font-color)}.pagination{display:flex}.pagination .next-page,.pagination .prev-page{flex-grow:1;flex-shrink:1;display:flex}.pagination .next-page{justify-content:flex-end}.pagination a{border-radius:.35rem;padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.pagination a:hover,.pagination a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}@media(prefers-color-scheme:dark){:root{--color-mode:dark}:root:not([data-user-color-scheme]){--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#706d6361;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}}[data-user-color-scheme=dark]{--h1-color:white;--font-color:#b3b9c5;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#706d6361;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}.alert a,a,h1,header a{text-decoration:none}.alert a,.comment-head,cite.fn{font-weight:700}.alert{margin:1em 0;padding:4px 8px;border-radius:0}.alert a{border:0}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.info{color:#1d6fee;border:1px solid #1d6fee}p.comment-user-info{margin-bottom:.5em}.comment-list p.comment-user-info{display:block;margin-bottom:.5em}.info{color:#88b4f6;border:1px solid #88b4f6}.comment-author .avatar{float:left;margin-right:8px;border-radius:100%}.comment-meta{overflow:hidden;line-height:1.4;margin-bottom:10px}.comment .fn{color:#bc403e}.comment-body{padding:30px 0;border-bottom:1px solid #eee;position:relative}.comment-body p{font-size:14px;color:var(--comment-body-color)}.comment-body p:last-child{margin-bottom:0}.comment-body .reply{position:absolute;top:10px;right:0}.comment-body .reply .comment-reply-link{color:#fff;font-family:exoregular;display:inline-block;line-height:1.2;border-radius:3px;padding:3px 8px;background-color:#bc403e;font-size:12px}.comment-list{padding-bottom:30px}.comment-reply-title,.comments-title{font-size:18px;color:rgba(0,0,0,.44);margin-bottom:20px}.comment-form label{display:block;font-size:12px;color:#999}.comment-form p{margin-bottom:20px}.comment-form input[type=text]{line-height:32px;width:260px;padding:0 10px}#comment,.comment-form input[type=text]{border-radius:3px;background-color:var(--comment-background-color);border:1px solid #eee;font-size:14px}#comment{resize:none;padding:10px;box-sizing:border-box;width:100%}.says{display:none}.comment-meta{font-size:14px;color:var(--comment-meta)}.comments-pagination{margin-bottom:15px}#submit{background-color:var(--submit-color);display:inline-block;border:1px solid #eee;padding:4px 8px;font-size:14px;color:#999;cursor:pointer;border-radius:3px}#submit:hover{border-color:#bc403e;color:#bc403e}.says{display:none}.mark{margin:0 5px;padding:2px;background:#ffec99;border-bottom:1px solid #ffec99}.linkpage ul{color:rgba(255,255,255,.15)}.linkpage ul:after{content:" ";clear:both;display:block}.linkpage li{float:left;width:48%;position:relative;-webkit-transition:.3s ease-out;transition:.3s ease-out;border-radius:5px;line-height:1.3;height:90px;display:block}.linkpage h3{margin:15px -25px;padding:0 25px;border-left:5px solid #51aded;background-color:#f7f7f7;font-size:25px;line-height:40px}.linkpage li:hover{background:rgba(230,244,250,.5);cursor:pointer}.linkpage li a{padding:0 10px 0 90px}.linkpage li a img{width:60px;height:60px;border-radius:50%;position:absolute;top:15px;left:15px;cursor:pointer;margin:auto;border:none}.linkpage li a h4{color:var(--inkpage-li-a-h4-color);font-size:18px;margin:0 0 7px;padding-left:90px}.linkpage li a h4:hover{color:#51aded}.linkpage li a h4,.linkpage li a p{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:1.4;margin:0!important}.linkpage li a p{font-size:12px;color:#999;padding-left:90px}@media(max-width:460px){.linkpage li{width:97%}.linkpage ul{padding-left:5px}}pre{position:relative;padding:30px 10px 10px 10px;background:#282b2e;border-radius:8px;box-shadow:rgb(0 0 0 / 30%) 0px 5px 20px;}.article-post pre code{font-family:Consolas;}pre::after{display:block;content:" ";position:absolute;border-radius:50%;background:#ff5f56;width:12px;height:12px;top:0;left:12px;margin-top:12px;-webkit-box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;}code::-webkit-scrollbar{background:transparent;height:6px;}::-webkit-scrollbar{width:10px;height:8px;background-color:rgb(0 0 0 / 0%);}code::-webkit-scrollbar-thumb{background:rgb(255 255 255 / 46%) !important;box-shadow:none !important;border:none !important;border-radius:10px;transition:background 0.3s ease;}::-webkit-scrollbar-thumb{background-color:var(--webkit-scrollbar);border-radius:100px;border:2px solid transparent;background-clip:content-box;}code::-webkit-scrollbar-track{border:none;background:transparent !important;}::-webkit-scrollbar-track{background-color:transparent;}input[type=password]{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;width:40%;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem;}input.submit{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem;} \ No newline at end of file +html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:transparent}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],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{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}*,::after,::before{box-sizing:border-box}:root{--color-mode:light;--h1-color:#343a40;--font-color:#495057;--heading-color:#343a40;--background:white;--dark-font-color:#1b1d25;--medium-font-color:#60656c;--light-font-color:#858b93;--light-background:#f1f4f8;--light-background-hover:#e1e6ed;--border:#d6d9de;--link-color:#5183f5;--link-color-darker:#364fc7;--navbar-color:#1b1d25;--blockquote:#f9f9f9;--blockquote-left:#e3e6eb;--transparent-text:rgba(0,0,0,0.7);--transparent-bg:rgba(0,0,0,0.05);--light-transparent-bg:rgba(255,255,255,0.1);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#fff;--submit-color:#fff;--comment-body-color:#343a40;--comment-meta:rgba(0 0 0 / 44%);--inkpage-li-a-h4-color:#333333;--webkit-scrollbar:rgb(78 76 76 / 30%)}.flex{display:flex;align-items:center}.flex-row{display:flex;flex-direction:column}@media screen and (min-width:800px){.flex-row{flex-direction:row}}.flex-col{flex:1}.flex-two-thirds{flex:2}.justify-center{justify-content:center}html{font-family:-apple-system,BlinkMacSystemFont,helvetica neue,roboto,Roboto,Arial,noto sans,sans-serif,apple color emoji,segoe ui,segoe ui emoji,segoe ui symbol,noto color emoji;color:var(--font-color);font-weight:400;font-size:1rem;line-height:1.75}body{background:var(--background);margin:0;padding:0}section{margin:2rem 0}section:first-of-type{margin-top:0}section>h2{display:flex;align-items:center;font-size:1.6rem;margin-top:0;margin-bottom:.5rem}@media screen and (min-width:800px){section>h2{margin-bottom:2rem}}.index h2,section>h2{border-bottom-width:0}@media screen and (min-width:800px){.index h2,section>h2{border-bottom-width:4px}}a.section-button{font-weight:500;background:var(--light-background);color:var(--dark-font-color);padding:.4rem .6rem;font-size:.8rem;border-radius:.3rem;border-width:0!important;white-space:nowrap;line-height:1;margin-left:2rem;margin-top:.5rem}a.section-button:hover{background:var(--light-background-hover);color:var(--heading-color)}@media screen and (min-width:800px){section{margin:3.5rem 0}section>h2{font-size:2rem;margin:0 0 1rem}}.container{max-width:825px;padding:0 1.5rem;margin-left:auto;margin-right:auto}.container.page p{max-width:600px}@media screen and (min-width:800px){.container{padding:0 2rem}}img{display:inline-block;max-width:100%;height:auto}blockquote,dl,ol,p,table,ul{font-size:1.05rem;margin:0 0 1.5rem}ul{padding:0 1rem}@media screen and (min-width:800px){blockquote,dl,ol,p,table,ul{font-size:1.125rem}ul{padding:0 2rem}}ul li p{margin:0}ul li ul{padding-left:1rem;margin:0}ul li ul li{margin:0}ol li ol{margin-bottom:0}.task-list-item [type=checkbox]{margin-right:.5rem}blockquote{margin:2rem 0;padding:1rem;background:var(--blockquote);font-weight:400;border-left:5px solid var(--blockquote-left)}@media screen and (min-width:800px){blockquote{padding:2rem 0 2rem 2rem}}::selection{background:#3b5bdb;color:#fff}h1{color:var(--h1-color)}h3,h4{color:var(--medium-font-color)}h2,h5{color:var(--heading-color)}h1,h2,h3,h4,h5{margin:0 0 1.5rem;font-weight:700;line-height:1.2;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1:not(:first-child),h2:not(:first-child),h3:not(:first-child),h4:not(:first-child){margin-top:3rem}h1{font-size:2.5rem;line-height:1.1}h2{font-size:1.75rem;padding-bottom:.5rem;border-bottom:4px solid var(--light-background)}h2 code{font-size:1.75rem!important}h3{font-size:1.5rem;color:var(--font-color);font-weight:600;margin-bottom:1rem}h3 code{font-size:1.4rem!important}h4{font-size:1.3rem;color:var(--font-color);font-weight:500;margin-bottom:1rem;border-bottom:2px solid var(--light-background);padding-bottom:.25rem}h5{font-size:1.2rem;margin-bottom:1rem}@media screen and (min-width:800px){h1{font-size:3rem}h2{font-size:1.9rem}h3{font-size:1.7rem;color:var(--font-color);font-weight:600}h4{font-weight:400;font-size:1.4rem}}a.link{display:block;padding:.25rem 0;margin:.25rem 0;border-radius:.35rem;font-weight:600;color:var(--dark-font-color)}a.link:hover{color:var(--link-color)}a.button{display:inline-block;border:2px solid var(--link-color);padding:.3rem .6rem;margin-right:.75rem;font-weight:500;background:var(--link-color);color:#fff;border-radius:.35rem;font-size:.9rem}a.button.large{padding:.8rem 1rem;font-size:1.05rem}a.button.secondary{border:2px solid #edf2ff;background:#edf2ff;color:#3b5bdb}a.button.secondary:hover,a.button:hover{border:2px solid var(--link-color-darker);background:var(--link-color-darker);color:#fff}@media screen and (min-width:800px){a.button{font-size:.9rem}a.button.large{padding:1rem 1.5rem;font-size:1.1rem}}p.subtitle{color:var(--medium-font-color);font-size:1.3rem;font-weight:300;margin-bottom:0}@media screen and (min-width:800px){p.subtitle{font-size:1.5rem}}a{color:inherit;text-decoration:none}a.image-link{border-width:0}main{margin-top:50px}@media screen and (min-width:800px){main{margin-top:0}}.emoji{margin:0 .4rem 0 .1rem}.navbar{width:100%;position:fixed;top:0;left:0;background:var(--navbar-color);box-shadow:0 3px 13px rgba(100,110,140,.1),0 2px 4px rgba(100,110,140,.15);z-index:2;padding:.5rem}.navbar .flex{justify-content:space-between}.navbar a{border-radius:.35rem;margin:0 .05rem;color:rgba(255,255,255,.65);font-weight:400;font-size:.85rem;border:1px solid transparent;padding:0 .3rem;background:0 0}.navbar a:first-of-type{margin-left:-1rem}.navbar a .emoji{display:none}.navbar a.brand{font-weight:500;color:#fff;white-space:nowrap;border:none;display:flex;align-items:center;line-height:1;background:0 0}.navbar a.brand .emoji{display:inline-block!important}.navbar a.brand img{height:22px;width:22px}.navbar button{font-size:1rem;margin-right:-1rem}@media screen and (min-width:500px){.navbar a{font-size:.95rem;padding:.5rem}}@media screen and (min-width:800px){.emoji{margin:0 .5rem 0 .1rem}.navbar{position:static;padding:1.5rem 0;background:0 0;box-shadow:none}.navbar .flex{justify-content:space-between}.navbar a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.navbar a:first-of-type{margin-left:-1.5rem}.navbar a:hover,.navbar a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}.navbar a.brand{font-size:1.3rem;margin-right:3rem;border:none;background:0 0!important;color:var(--dark-font-color)}.navbar a.brand:hover{background:var(--light-background)!important}.navbar a.brand img{height:26px;width:26px;margin-right:.25rem}#dark-mode-button:hover{background:var(--light-background)}}@media print{.navbar{display:none}}#dark-mode-button{display:flex;border:none;padding:.2rem .7rem .2rem .5rem;border-radius:.35rem;box-sizing:content-box;cursor:pointer;font-size:1.1rem;background:0 0}#dark-mode-button .dark{display:none}#dark-mode-button:focus{outline:0}[data-user-color-scheme] #dark-mode-button .light{display:none}[data-user-color-scheme] #dark-mode-button .dark{display:unset}@media screen and (min-width:800px){#dark-mode-button{padding:.95rem .75rem;font-size:1.2rem}}.my{padding-top:2rem}.my a{border:none;margin-right:1rem}.my a:hover{border:none}.post-row{display:flex;align-items:center;width:100%}.post-row time{display:block;flex:0 0 65px}.post-row h3{flex:1}.posts .post:last-of-type a{border-bottom-width:0}.post a{display:flex;align-items:center;justify-content:stretch;padding:1rem 0;border-bottom:2px solid var(--light-background)}.post a:hover{border-radius:.3rem}.post h3{margin-top:.1rem;margin-bottom:0;font-size:1.1rem;font-weight:600}@media screen and (min-width:800px){.posts{margin-left:-1rem;margin-right:-1rem}.post a{padding:.75rem 1rem;border-bottom-color:transparent}.post a:hover{background:var(--light-background)}.post h3{font-size:1.3rem}.post-row time{flex:0 0 80px}}.new-post,.popular-post{display:inline-block;color:#111;padding:.3rem .4rem;border-radius:.3rem;font-size:.85rem;margin-left:1rem}.new-post{background:#d3f9d8}.popular-post{background:#dce6fd;color:var(--heading-color)}@media screen and (min-width:800px){.new-post,.popular-post{margin-bottom:0}}.footer{padding:2rem 0}.footer>.flex{flex-direction:column;align-items:center;justify-content:center}.footer img{height:30px;width:30px}.footer a{border-radius:.35rem;margin:0 .05rem;font-weight:400;font-size:1rem;border:1px solid transparent;padding:.5rem;margin:0 .5rem;color:var(--light-font-color)}.footer a:hover{color:var(--heading-color);background:var(--light-background)}.footer a.img{display:flex;align-items:center;padding:0;margin:0 .75rem;background:0 0}.footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.flex nav{padding:1rem 0}@media screen and (min-width:800px){.footer>.flex{align-items:flex-start;margin-left:-1.5rem;margin-right:-1.5rem}.footer a{padding:.75rem}.footer a.img{padding:0 .5rem;margin:0 1rem}}@media print{.footer{display:none}}.small{max-width:600px}.meta,time{color:var(--light-font-color);font-size:.85rem;white-space:nowrap;font-weight:400}.meta{color:var(--medium-font-color);font-size:1rem}table{border-collapse:separate;border-spacing:0;width:100%;max-width:100%;overflow-x:auto}tbody,thead{white-space:nowrap}th{border-bottom:2px solid var(--border)}tfoot th{border-top:1px solid var(--border)}td{border-bottom:1px solid var(--border)}td,th{text-align:left;padding:.75rem;hyphens:auto}tbody tr:nth-child(even){background-color:var(--light-background)}@media screen and (min-width:800px){table{display:table;border:1px solid var(--border)}tbody,thead{white-space:normal}}.count{font-weight:700;color:var(--link-color)}.tags{display:flex!important;flex-wrap:wrap;align-items:center;margin-left:-.5rem;margin-right:-.5rem}.tags>a{display:block;font-weight:500;background:var(--light-background);color:var(--font-color);margin:.2rem;padding:.5rem .6rem;font-size:.8rem;border-radius:.3rem;border-bottom:0;white-space:nowrap;line-height:1}.tags>a:hover{background:var(--light-background-hover);color:var(--heading-color)}mark{background:#ffec99}.utterances{margin-left:-4px;margin-right:-4px}kbd{background-color:#f7f7f7;border:2px solid rgba(0,0,0,.3);border-radius:3px;box-shadow:0 1px rgba(0,0,0,.2),inset 0 0 0 2px #fff;color:#333;display:inline-block;font-family:Helvetica Neue,Inter,-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;line-height:1.4;margin:0 .1em;padding:.1em .6em;text-shadow:0 1px 0 #fff;font-size:14px}#comments{margin-top:3rem}#comments h2{margin:0}@media print{#comments,.comments{display:none}}#search-query{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;width:100%;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem}#search-query:focus{border-color:#5183f5}#search-results{display:none}.filter-container{display:flex;justify-content:flex-start;margin-bottom:1.5rem;flex-wrap:wrap}.filter-item{font-size:.85rem;padding:.5rem .75rem;background:var(--light-background);border-radius:4px;margin-right:.5rem;margin-bottom:.5rem;font-weight:600;cursor:pointer}.filter-item:hover{background:#d8e3fd;color:#3972f4}.filter-item:last-of-type{margin-right:0}.filter-item.active{background:#5183f5;color:#fff}.filter-item.active:hover{color:#fff;background:#2161f2}header{padding:1.5rem 0}header h1{font-size:2rem;display:inline-block;font-weight:600;margin-top:1rem}header u{display:inline-block;text-decoration:none;padding:.4rem 0}.article-header{padding-top:2rem;margin-bottom:.5rem}.article-header .container{padding-left:0;padding-right:0}.article-header .thumb{display:flex;flex-direction:column}.article-header h1{font-weight:700;font-size:1.8rem;margin:0}.article-header .description{font-size:1.2rem;color:var(--light-font-color);font-weight:300;margin-top:2rem;margin-bottom:0}.post-meta{margin-top:1rem;padding:0;color:var(--light-font-color);font-size:.9rem}.post-meta a{color:var(--font-color);border-width:0}.post-meta time{margin-top:.2rem;font-size:.9rem}.post-meta .tags{margin-top:.5rem}.post-meta .tags a{text-decoration:none}.article-post{margin-bottom:2rem}.article-post img{border-radius:5px;display:block;margin-left:auto;margin-right:auto}.article-post a{box-shadow:0 -2px rgba(189,195,199,.5) inset;transition:all .3s ease}.article-post a:hover{box-shadow:0 -10px rgba(189,195,199,.7) inset}.article-post code{overflow-x:auto}.article-post h1 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h1 .anchor .icon{visibility:hidden}.article-post h1:hover .anchor{box-shadow:none}.article-post h1:hover .anchor .icon{visibility:visible}.article-post h2 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h2 .anchor .icon{visibility:hidden}.article-post h2:hover .anchor{box-shadow:none}.article-post h2:hover .anchor .icon{visibility:visible}.article-post h3 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h3 .anchor .icon{visibility:hidden}.article-post h3:hover .anchor{box-shadow:none}.article-post h3:hover .anchor .icon{visibility:visible}.article-post h4 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h4 .anchor .icon{visibility:hidden}.article-post h4:hover .anchor{box-shadow:none}.article-post h4:hover .anchor .icon{visibility:visible}.article-post h5 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h5 .anchor .icon{visibility:hidden}.article-post h5:hover .anchor{box-shadow:none}.article-post h5:hover .anchor .icon{visibility:visible}.article-post h6 .anchor{stroke:var(--link-color);stroke-width:1px;fill:var(--link-color);font-weight:700;left:-.25rem;border-width:0;float:left;line-height:1;margin-left:-20px;padding-right:4px;box-shadow:none;transition:none}.article-post h6 .anchor .icon{visibility:hidden}.article-post h6:hover .anchor{box-shadow:none}.article-post h6:hover .anchor .icon{visibility:visible}@media screen and (min-width:800px){.article-post{margin-bottom:3rem}.article-post h1,.article-post h2,.article-post h3,.article-post h4,.article-post h5{padding-top:1rem}.post-meta{margin-top:.5rem;padding:.5rem 0}header h1{font-size:3rem;margin-top:2rem}header u{background:linear-gradient(transparent 85%,#bac8ff 0)}.article-header{padding-top:3rem}.article-header h1{padding-top:0;font-size:2.5rem}.article-header .thumb{flex-direction:row}.article-header .description{font-size:1.8rem;line-height:1.5}}@media screen and (min-width:1100px){.article-header h1{font-size:2.5rem}}.post-thumbnail{display:block!important}code,pre{font-size:.9rem;font-family:Consolas,Monaco,Menlo,dejavu sans mono,bitstream vera sans mono,courier new,monospace;background:#373b41}:not(pre)>code{color:var(--dark-font-color);background:var(--light-background)}code{padding:3px 5px;border-radius:4px;color:#f8f8f2}pre>code{display:block}.side{width:200px;margin:0 auto}.side p{margin:0}.side-right{float:right;clear:right;margin-right:calc(-200px - 2em);background-color:var(--background)}.side-right p{font-size:.9rem}.footnotes ol li p{margin:0}.footnotes hr{border:none;border-top:1px solid var(--border)}.footnote-ref{box-shadow:none!important}.footnote-backref{box-shadow:none!important}.note-ref{cursor:pointer;border:none;box-shadow:none!important}.note-ref:hover{box-shadow:none;border:none}.bg-number{background:var(--light-background);font-size:.9rem;color:var(--font-color);text-decoration:none;padding:1px 5px;border-radius:5px}@media(max-width:1280px){.side{width:100%;padding:0 2em}.side-right{float:none;clear:both;margin:1em auto;background:0 0}}@media(min-width:1280px){.note-ref:hover~.side{display:inline-block;position:absolute;margin-left:1rem;padding:.5rem;box-sizing:content-box}}.suggested{flex-direction:column;align-items:stretch;margin-left:-1rem;margin-right:-1rem;padding:0}.suggested span{font-weight:400;display:block;font-size:.9rem;color:var(--transparent-text)}.suggested a{background:0 0;margin:.5rem 1rem;border-bottom:none;transition:all .2s ease;padding:1.5rem;border-radius:.35rem;background:var(--light-background);color:var(--heading-color)}.suggested a:hover{transform:translate3D(0,-1px,0);background:var(--light-background-hover)}@media screen and (min-width:800px){.suggested{flex-direction:row}.suggested a{flex:0 0 calc(50% - 2rem)}.suggested a:first-of-type{text-align:right}}.projects .project:last-of-type{border-bottom-width:0}.project{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:2px solid var(--light-background)}.project .icon{font-size:1.5rem;width:40px}.project a{display:flex;align-items:center;margin-bottom:.25rem;border-width:0}.project a:hover h3{text-decoration:underline}.project a.button{margin-left:1.5rem;border-width:2px}.project h3{font-size:1.2rem;margin:0}.project .description{font-size:1.1rem;color:var(--light-font-color)}@media screen and (min-width:800px){.project{border-bottom-width:0}.project h3{font-size:1.3rem}.project .description{font-size:1rem}}.terms a{padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color);border-radius:.35rem}.terms a:hover{background:var(--light-background);color:var(--dark-font-color)}.pagination{display:flex}.pagination .next-page,.pagination .prev-page{flex-grow:1;flex-shrink:1;display:flex}.pagination .next-page{justify-content:flex-end}.pagination a{border-radius:.35rem;padding:.75rem 1.25rem;margin:0 .25rem;font-size:1.2rem;font-weight:400;color:var(--font-color)}.pagination a:hover,.pagination a[aria-current=page]{background:var(--light-background);color:var(--dark-font-color)}@media(prefers-color-scheme:dark){:root{--color-mode:dark}:root:not([data-user-color-scheme]){--h1-color:white;--font-color:#dfdfdf;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#1f2022;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}}[data-user-color-scheme=dark]{--h1-color:white;--font-color:#dfdfdf;--heading-color:#ffd479;--dark-font-color:#ced4da;--background:#1f2022;--medium-font-color:#dee2e6;--light-font-color:#868e96;--light-background:#2D2D31;--light-background-hover:#3b3b3e;--code-background-color:#2e2e30;--border:#404040;--link-color:#6ab0f3;--link-color-darker:#4a72a5;--link-hover-color:#e1a6f2;--navbar-color:#1d1d1d;--blockquote:#2b2b2b;--blockquote-left:#191919;--transparent-text:rgba(255,255,255,0.7);--transparent-bg:rgba(0,0,0,0.2);--light-transparent-bg:rgba(255,255,255,0.05);--comment-background-color:#1f2022;--submit-color:rgb(0 0 0 / 0%);--comment-body-color:#ffd479;--comment-meta:rgba(255 255 255 / 71%);--inkpage-li-a-h4-color:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}.alert a,a,h1,header a{text-decoration:none}.alert a,.comment-head,cite.fn{font-weight:700}.alert{margin:1em 0;padding:4px 8px;border-radius:0}.alert a{border:0}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.info{color:#1d6fee;border:1px solid #1d6fee}p.comment-user-info{margin-bottom:.5em}.comment-list p.comment-user-info{display:block;margin-bottom:.5em}.info{color:#88b4f6;border:1px solid #88b4f6}.comment-author .avatar{float:left;margin-right:8px;border-radius:100%}.comment-meta{overflow:hidden;line-height:1.4;margin-bottom:10px}.comment .fn{color:#bc403e}.comment-body{padding:30px 0;border-bottom:1px solid #eee;position:relative}.comment-body p{font-size:14px;color:var(--comment-body-color)}.comment-body p:last-child{margin-bottom:0}.comment-body .reply{position:absolute;top:10px;right:0}.comment-body .reply .comment-reply-link{color:#fff;font-family:exoregular;display:inline-block;line-height:1.2;border-radius:3px;padding:3px 8px;background-color:#bc403e;font-size:12px}.comment-list{word-wrap:break-word;padding-bottom:30px}.comment-reply-title,.comments-title{font-size:18px;color:rgba(0,0,0,.44);margin-bottom:20px}.comment-form label{display:block;font-size:12px;color:#999}.comment-form p{margin-bottom:20px}.comment-form input[type=text]{line-height:32px;width:260px;padding:0 10px}#comment,.comment-form input[type=text]{border-radius:3px;background-color:var(--comment-background-color);border:1px solid #fff;font-size:14px;color:var(--font-color)}#comment{resize:none;padding:10px;box-sizing:border-box;width:100%}.says{display:none}.comment-meta{font-size:14px;color:var(--comment-meta)}.comments-pagination{margin-bottom:15px}#submit{background-color:var(--submit-color);display:inline-block;border:1px solid #eee;padding:4px 8px;font-size:14px;color:#999;cursor:pointer;border-radius:3px}#submit:hover{border-color:#bc403e;color:#bc403e}.says{display:none}.mark{margin:0 5px;padding:2px;background:#ffec99;border-bottom:1px solid #ffec99}.linkpage ul{color:rgba(255,255,255,.15)}.linkpage ul:after{content:" ";clear:both;display:block}.linkpage li{float:left;width:48%;position:relative;-webkit-transition:.3s ease-out;transition:.3s ease-out;border-radius:5px;line-height:1.3;height:90px;display:block}.linkpage h3{margin:15px -25px;padding:0 25px;border-left:5px solid #51aded;background-color:#f7f7f7;font-size:25px;line-height:40px}.linkpage li:hover{background:rgba(230,244,250,.5);cursor:pointer}.linkpage li a{padding:0 10px 0 90px}.linkpage li a img{width:60px;height:60px;border-radius:50%;position:absolute;top:15px;left:15px;cursor:pointer;margin:auto;border:none}.linkpage li a h4{color:var(--inkpage-li-a-h4-color);font-size:18px;margin:0 0 7px;padding-left:90px}.linkpage li a h4:hover{color:#51aded}.linkpage li a h4,.linkpage li a p{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:1.4;margin:0!important}.linkpage li a p{font-size:12px;color:#999;padding-left:90px}@media(max-width:460px){.linkpage li{width:97%}.linkpage ul{padding-left:5px}}pre{position:relative;padding:30px 10px 10px 10px;background:#282b2e;border-radius:8px;box-shadow:rgb(0 0 0 / 30%) 0px 5px 20px;}.article-post pre code{font-family:Consolas;}pre::after{display:block;content:" ";position:absolute;border-radius:50%;background:#ff5f56;width:12px;height:12px;top:0;left:12px;margin-top:12px;-webkit-box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;box-shadow:20px 0 #ffbd2e,40px 0 #27c93f;}code::-webkit-scrollbar{background:transparent;height:6px;}::-webkit-scrollbar{width:10px;height:8px;background-color:rgb(0 0 0 / 0%);}code::-webkit-scrollbar-thumb{background:rgb(255 255 255 / 46%) !important;box-shadow:none !important;border:none !important;border-radius:10px;transition:background 0.3s ease;}::-webkit-scrollbar-thumb{background-color:var(--webkit-scrollbar);border-radius:100px;border:2px solid transparent;background-clip:content-box;}code::-webkit-scrollbar-track{border:none;background:transparent !important;}::-webkit-scrollbar-track{background-color:transparent;}input[type=password]{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;width:40%;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem;}input.submit{padding:.8rem 1rem;background:var(--light-background);color:var(--input-color);border:2px solid var(--border);outline:0;border-radius:.35rem;font-size:1rem;margin-left:auto;margin-right:auto;margin-bottom:4rem;} \ No newline at end of file diff --git a/functions.php b/functions.php index cc3fbf7..1bf17e1 100755 --- a/functions.php +++ b/functions.php @@ -10,7 +10,7 @@ function themeConfig($form) { $TheNotice->input->setAttribute('style', 'display:none'); $form->addInput($TheNotice); - $favicon = new Typecho_Widget_Helper_Form_Element_Text('favicon', NULL, '/usr/themes/TinaTheme/assets/favicon.ico', _t('Favicon 图标'), _t('在这里填入一个图片 URL 地址, 以添加一个 Favicon,留空则不单独设置 Favicon,主题默认 Favicon 地址为 /usr/themes/TinaTheme/assets/favicon.ico')); + $favicon = new Typecho_Widget_Helper_Form_Element_Text('favicon', NULL, '/usr/themes/Tinatheme/assets/favicon.ico', _t('Favicon 图标'), _t('在这里填入一个图片 URL 地址, 以添加一个 Favicon,留空则不单独设置 Favicon,主题默认 Favicon 地址为 /usr/themes/Tinatheme/assets/favicon.ico')); $form->addInput($favicon); $articles = new Typecho_Widget_Helper_Form_Element_Text('articles', NULL, '/index.php/articles.html', _t('Articles URL'), _t('首页全部文章按钮[查看示例图片]指向的链接,需要创建Articles的自定义页面,并在此填入自定义页面的URL才可正常使用,不填则不显示,强烈推荐开启,因为首页不支持文章翻页,一次仅能浏览有限数量文章。')); @@ -242,13 +242,13 @@ function themeConfig($form) { _t('开启后可在首页见到第一个项目推荐,若想要显示,请首先开启项目推荐') ); $form->addInput($Project_1); - $Project_1_Name = new Typecho_Widget_Helper_Form_Element_Text('Project_1_Name', NULL, 'TinaTheme', _t('第一个项目的名称'), _t('')); + $Project_1_Name = new Typecho_Widget_Helper_Form_Element_Text('Project_1_Name', NULL, 'Tinatheme', _t('第一个项目的名称'), _t('')); $form->addInput($Project_1_Name); - $Project_1_URL = new Typecho_Widget_Helper_Form_Element_Text('Project_1_URL', NULL, 'https://www.github.com/ouyangyanhuo/TinaTheme', _t('第一个项目的链接'), _t('这里写第一个项目的链接地址,不填则代表留空')); + $Project_1_URL = new Typecho_Widget_Helper_Form_Element_Text('Project_1_URL', NULL, 'https://www.github.com/ouyangyanhuo/Tinatheme', _t('第一个项目的链接'), _t('这里写第一个项目的链接地址,不填则代表留空')); $form->addInput($Project_1_URL); $Project_1_Describe = new Typecho_Widget_Helper_Form_Element_Textarea('Project_1_Describe', NULL, 'A theme for Typecho', _t('第一个项目的描述'), _t('这里写第一个项目的描述内容,不推荐超过50字,不填则代表留空')); $form->addInput($Project_1_Describe); - $Project_1_Icon = new Typecho_Widget_Helper_Form_Element_Text('Project_1_Icon', NULL, '/usr/themes/TinaTheme/assets/favicon.ico', _t('第一个项目的图标'), _t('这里填入第一个项目的图标的链接,由于未知原因,暂不支持Emoji、Windows表情,若有需要请修改本地代码')); + $Project_1_Icon = new Typecho_Widget_Helper_Form_Element_Text('Project_1_Icon', NULL, '/usr/themes/Tinatheme/assets/favicon.ico', _t('第一个项目的图标'), _t('这里填入第一个项目的图标的链接,由于未知原因,暂不支持Emoji、Windows表情,若有需要请修改本地代码')); $form->addInput($Project_1_Icon); $Project_2 = new Typecho_Widget_Helper_Form_Element_Radio( From c179e31dc111fc3361ca198550999d78b1f463cd Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Wed, 27 Jul 2022 11:54:01 +0800 Subject: [PATCH 18/23] readme.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5311ec7..447cf5d 100644 --- a/README.md +++ b/README.md @@ -86,13 +86,13 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_ ## 文档 -Tinatheme 文档 : [https://Tinatheme.docs.fmcf.cc](https://Tinatheme.docs.fmcf.cc) +Tinatheme 文档 : [https://tinatheme.docs.fmcf.cc](https://tinatheme.docs.fmcf.cc) ## Demo 主题效果预览 -Tinatheme主题演示站:[https://Tinatheme.fmcf.cc](https://Tinatheme.fmcf.cc) +Tinatheme主题演示站:[https://tinatheme.fmcf.cc](https://tinatheme.fmcf.cc) ## 注意 From 3bcc677d2935c57edae5f169f9b4b60c71b72cf0 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Wed, 27 Jul 2022 22:12:41 +0800 Subject: [PATCH 19/23] 2.0.0-Build22725-Dev-No.4 --- index.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/index.php b/index.php index 9bf8bf2..3064231 100755 --- a/index.php +++ b/index.php @@ -1,12 +1,12 @@ WingLim的hugo-tania主题,在其基础上进行了深度修改的 Tinatheme 或许是你在Typecho上最好的选择 - *
版本检测中... 
- * + * 移植自WingLimhugo-tania主题,在其基础上进行了深度修改的 TinaTheme 或许是你在Typecho上最好的选择 + *
版本检测中... 
+ * * - * @package Smile Theme + * @package Tina Theme * @author Magneto - * @version 2.0.0-Build22725-Dev-No.3 + * @version 2.0.0-Build22725-Dev-No.4 * @link https://www.fmcf.cc */ @@ -25,6 +25,13 @@

+ options->Icons): ?> + +
From d20681c9c3b3954ac596b98a7a2acec5b3dafad8 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Wed, 27 Jul 2022 22:12:49 +0800 Subject: [PATCH 20/23] 2.0.0-Build22725-Dev-No.4 --- README.md | 64 +++++++++++++++++++++++++-------------------------- functions.php | 8 +++---- 2 files changed, 35 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 447cf5d..7db5717 100644 --- a/README.md +++ b/README.md @@ -19,41 +19,38 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_
-## Tinatheme +## TinaTheme -一个为typecho移植的主题,源自于[hugo-tania](https://github.com/WingLim/hugo-tania)主题,原本是Hugo的主题,被移植到Typecho上在其基础上进行了深度修改的Tinatheme或许是你在Typecho上最好的选择 +一个为typecho移植的主题,源自于[hugo-tania](https://github.com/WingLim/hugo-tania)主题,原本是Hugo的主题,被移植到Typecho上在其基础上进行了深度修改的 TinaTheme 或许是你在Typecho上最好的选择 -[![AdminMD](https://img.shields.io/badge/Magneto-Tinatheme-brightgreen?style=for-the-badge)](https://fmcf.cc/technology/523/) +[![AdminMD](https://img.shields.io/badge/Magneto-TinaTheme-brightgreen?style=for-the-badge)](https://fmcf.cc/technology/523/) ![Version](https://img.shields.io/badge/Version-2.0.0-critical?style=for-the-badge) -![Repo-size](https://img.shields.io/github/languages/code-size/ouyangyanhuo/Tinatheme?style=for-the-badge) -![License](https://img.shields.io/github/license/ouyangyanhuo/Tinatheme?style=for-the-badge) -![Stars](https://img.shields.io/github/stars/ouyangyanhuo/Tinatheme?style=for-the-badge) -![Forks](https://img.shields.io/github/forks/ouyangyanhuo/Tinatheme?style=for-the-badge&k) +![Repo-size](https://img.shields.io/github/languages/code-size/ouyangyanhuo/TinaTheme?style=for-the-badge) +![License](https://img.shields.io/github/license/ouyangyanhuo/TinaTheme?style=for-the-badge) +![Stars](https://img.shields.io/github/stars/ouyangyanhuo/TinaTheme?style=for-the-badge) +![Forks](https://img.shields.io/github/forks/ouyangyanhuo/TinaTheme?style=for-the-badge&k) 原主题:[https://github.com/WingLim/hugo-tania](https://github.com/WingLim/hugo-tania) ## 最近版本更新日志 - 此版本为开发版(Build22725-Dev) -- 新增了对 MathJax 和 KaTeX 数学公式的渲染支持 +- 🚀由 SmileTheme 更名为 TinaTheme +- ✨新增了 代码块 +- ✨新增了滚动条样式 +- ✨新增了针对上一篇、下一篇按钮的核心内容 +- ✨新增了加密文章的输入框、提交按钮的样式 +- ✨新增了对 MathJax 和 KaTeX 数学公式的渲染支持 +- ✨重写了 代码高亮 +- ✨重写了上一篇、下一篇按钮 +- 🔪删除了在文章没有设置 标签 时显示的"No Tag" - 修复了关闭后台夜间模式后存在的问题 -- 使用例子:$ \varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887… $ -- 重写了 代码高亮 模块 -- 新增了 代码块 -- 主题版本号由 v1 升级至 v2 -- 删除了在文章没有设置 标签 时显示的"No Tag" -- 修改了默认滚动条 -- 重写了上一篇、下一篇按钮 -- 新增了针对上一篇、下一篇按钮的核心内容 +- 修复评论过长,导致文本溢出的问题 +- 优化更新检测请求的UI - 完成所有所需页面的重构 -- 由 SmileTheme 更名为 Tinatheme - 调整评论区 取消回复 按钮位置 -- 新增了加密文章的输入框、提交按钮的样式 -- 当前Dev分支由于主题暂未更名,部分内容暂时无法显示 -- 将更新检测请求由 GitHub 移至 Assets-FMCF -- 优化更新检测请求的UI -- 修复评论过长,导致文本溢出的问题 - 优化夜间模式评论区输入内容的显示效果 +- 将更新检测请求由 GitHub 移至 Assets-FMCF ## 使用提示 @@ -82,25 +79,25 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_ 欢迎提 Issues 和 PRs,欢迎提出建议 ## 使用 -下载主题包并解压 ( 若是从 GitHub 或 Gitee 下载,请把解压出来的文件夹改名为 `Tinatheme` ) ,将文件夹上传至网站文件主题目录 ( `/usr/theme` ) 下,进入网站后台 - 控制台 - 外观 - 启用主题即可。 +下载主题包并解压 ( 若是从 GitHub 或 Gitee 下载,请把解压出来的文件夹改名为 `TinaTheme` ) ,将文件夹上传至网站文件主题目录 ( `/usr/theme` ) 下,进入网站后台 - 控制台 - 外观 - 启用主题即可。 ## 文档 -Tinatheme 文档 : [https://tinatheme.docs.fmcf.cc](https://tinatheme.docs.fmcf.cc) +TinaTheme 文档 : [https://tinatheme.docs.fmcf.cc](https://tinatheme.docs.fmcf.cc) ## Demo 主题效果预览 -Tinatheme主题演示站:[https://tinatheme.fmcf.cc](https://tinatheme.fmcf.cc) +TinaTheme主题演示站:[https://tinatheme.fmcf.cc](https://tinatheme.fmcf.cc) ## 注意 -Tinatheme 使用 [GPL V3.0](https://github.com/ouyangyanhuo/Tinatheme/blob/main/LICENSE) 协议开源,请遵守此协议进行二次开发等。 +TinaTheme 使用 [GPL V3.0](https://github.com/ouyangyanhuo/TinaTheme/blob/main/LICENSE) 协议开源,请遵守此协议进行二次开发等。 -您必须在页脚保留 Tinatheme 主题的名称及其指向链接,否则请不要使用 Tinatheme 主题。 +您必须在页脚保留 TinaTheme 主题的名称及其指向链接,否则请不要使用 TinaTheme 主题。 -您可以删除页脚的作者版权信息,但是不能删除 Tinatheme 主题的名称及其指向链接。 +您可以删除页脚的作者版权信息,但是不能删除 TinaTheme 主题的名称及其指向链接。 ## 捐赠 @@ -108,13 +105,14 @@ Tinatheme 使用 [GPL V3.0](https://github.com/ouyangyanhuo/Tinatheme/blob/main/ ## 下载渠道 -1.GitHub [https://github.com/ouyangyanhuo/Tinatheme](https://github.com/ouyangyanhuo/Tinatheme) 适合国外(主仓库) +1.GitHub [https://github.com/ouyangyanhuo/TinaTheme](https://github.com/ouyangyanhuo/TinaTheme) 适合国外(主仓库) 2.取消 Gitee 下载 因为它真的比 Shit 还烂,Gitee仓库会保留,但不会同步、更新。 ## 预览图 -![](https://i.loli.net/2021/08/16/nmvW5uVKHChafsd.png) -![](https://i.loli.net/2021/08/16/sARYjilgO9MF2H1.png) -![](https://i.loli.net/2021/08/16/rcXL5KjbueZ6zQp.png) -![](https://i.loli.net/2021/08/16/wLxGjiPm6pZoyBt.png) +![](https://tva4.sinaimg.cn/large/008aATBzly1h4lu8mys6rj340e256kjl.jpg) +![](https://tva4.sinaimg.cn/large/008aATBzly1h4lu8ls0w1j340e2561ky.jpg) +![](https://tva4.sinaimg.cn/large/008aATBzly1h4lu8ktiopj31x20ysgys.jpg) +![](https://tva4.sinaimg.cn/large/008aATBzly1h4lu8k558gj31x20ysqgq.jpg) +![](https://tva4.sinaimg.cn/large/008aATBzly1h4lu8l3r4mj31x20ys4ec.jpg) ![](https://i.loli.net/2021/08/16/Cq1Dymtsur4eTAV.png) \ No newline at end of file diff --git a/functions.php b/functions.php index 1bf17e1..cc3fbf7 100755 --- a/functions.php +++ b/functions.php @@ -10,7 +10,7 @@ function themeConfig($form) { $TheNotice->input->setAttribute('style', 'display:none'); $form->addInput($TheNotice); - $favicon = new Typecho_Widget_Helper_Form_Element_Text('favicon', NULL, '/usr/themes/Tinatheme/assets/favicon.ico', _t('Favicon 图标'), _t('在这里填入一个图片 URL 地址, 以添加一个 Favicon,留空则不单独设置 Favicon,主题默认 Favicon 地址为 /usr/themes/Tinatheme/assets/favicon.ico')); + $favicon = new Typecho_Widget_Helper_Form_Element_Text('favicon', NULL, '/usr/themes/TinaTheme/assets/favicon.ico', _t('Favicon 图标'), _t('在这里填入一个图片 URL 地址, 以添加一个 Favicon,留空则不单独设置 Favicon,主题默认 Favicon 地址为 /usr/themes/TinaTheme/assets/favicon.ico')); $form->addInput($favicon); $articles = new Typecho_Widget_Helper_Form_Element_Text('articles', NULL, '/index.php/articles.html', _t('Articles URL'), _t('首页全部文章按钮[查看示例图片]指向的链接,需要创建Articles的自定义页面,并在此填入自定义页面的URL才可正常使用,不填则不显示,强烈推荐开启,因为首页不支持文章翻页,一次仅能浏览有限数量文章。')); @@ -242,13 +242,13 @@ function themeConfig($form) { _t('开启后可在首页见到第一个项目推荐,若想要显示,请首先开启项目推荐') ); $form->addInput($Project_1); - $Project_1_Name = new Typecho_Widget_Helper_Form_Element_Text('Project_1_Name', NULL, 'Tinatheme', _t('第一个项目的名称'), _t('')); + $Project_1_Name = new Typecho_Widget_Helper_Form_Element_Text('Project_1_Name', NULL, 'TinaTheme', _t('第一个项目的名称'), _t('')); $form->addInput($Project_1_Name); - $Project_1_URL = new Typecho_Widget_Helper_Form_Element_Text('Project_1_URL', NULL, 'https://www.github.com/ouyangyanhuo/Tinatheme', _t('第一个项目的链接'), _t('这里写第一个项目的链接地址,不填则代表留空')); + $Project_1_URL = new Typecho_Widget_Helper_Form_Element_Text('Project_1_URL', NULL, 'https://www.github.com/ouyangyanhuo/TinaTheme', _t('第一个项目的链接'), _t('这里写第一个项目的链接地址,不填则代表留空')); $form->addInput($Project_1_URL); $Project_1_Describe = new Typecho_Widget_Helper_Form_Element_Textarea('Project_1_Describe', NULL, 'A theme for Typecho', _t('第一个项目的描述'), _t('这里写第一个项目的描述内容,不推荐超过50字,不填则代表留空')); $form->addInput($Project_1_Describe); - $Project_1_Icon = new Typecho_Widget_Helper_Form_Element_Text('Project_1_Icon', NULL, '/usr/themes/Tinatheme/assets/favicon.ico', _t('第一个项目的图标'), _t('这里填入第一个项目的图标的链接,由于未知原因,暂不支持Emoji、Windows表情,若有需要请修改本地代码')); + $Project_1_Icon = new Typecho_Widget_Helper_Form_Element_Text('Project_1_Icon', NULL, '/usr/themes/TinaTheme/assets/favicon.ico', _t('第一个项目的图标'), _t('这里填入第一个项目的图标的链接,由于未知原因,暂不支持Emoji、Windows表情,若有需要请修改本地代码')); $form->addInput($Project_1_Icon); $Project_2 = new Typecho_Widget_Helper_Form_Element_Radio( From 8908f06a533908261774ff471c6bfe77b78fff1e Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Wed, 27 Jul 2022 22:20:38 +0800 Subject: [PATCH 21/23] img --- screenshot.png | Bin 40247 -> 14872 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshot.png b/screenshot.png index 32dc08672c014c28c63b679648752997cffe7aa1..ae483ccf1f7df7d65045dc7dfbc341c1ed0b2f5f 100755 GIT binary patch literal 14872 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 z%0A@hyQseaejE^z&Ky!&Pz2miYvsx`bT#QK(ehzhfd|F*>bI5rgz}?%}(FpnL1f& zn=|NziMuEva9Fl&u7}p8lQH+krow5qYpcHs1NCSE{i%MOmL>4zX-Lh^=!qa?9->pR z@~T0Lt*JWvxmmb&W;zDJnQts`_ZT*%46I5>QyA(il zP^CF^Mn)m-bsDxkPxQghjQs5utG=;wVwX_zZmiDDtk!%mpG}-fEJ~Rljjt;;o?OuQ zJio94Um2Hv@Sv*h(5MeNPS<&ufpT8#!4l+le`a;G%PzJbn$0XiRXo~{>8A)Y@`f41b2u4L2_lo9%ukbzoR(KFYr>4v~+}Yi!Nv2a; z#%E=%#H`Y6?)~?D{=;IuCf(V<8wm7zk~@yJaA|m@z&>;8>cI;?H8lhG&0%a#S5}@d z>FY-_^OlV=AgJ7vxO0DdL!Nbirw*X*D#^Q(!po95?dl~+MNbA3;;Dx@Bp+65N4msCS*5if$IGx&I_ z;1Oj%F(LE*;(pq;vijY~qd2-f-JjyTt$N z><{~+l}}`qjqUDBeuC}c+U@Pm)Q9YS(for$YwC#B6SaWwb#KZ#Y60`4Xu)s8_nu@@ z6SN%+xxJB%Q)yJu`W;pCURjdWT9fcnMwvlI&B^bNptzXMoE|lO*g%7rsF371s{7g(%9VE>e1%6cZ0k4adHJcv4?lLV@^UYXVgj$*W5P8(F%i zhZssSLZRLWBFg-qd38%rHCY(@sCvrM_eTecQM!_8@RAZ2Us(ahg|z9tmxp(ay<35a zN34N%n4xB|cWLSa*`B*}j%nfCJ>k5%4_U@7&2D?USGlOlj7;ZsZcD`;=XC=1IwReF zx-PiW3<-f&qGyn)PZf_rZOY)B{(23Z68+=piDlvkZ;X*% zMV9^&lZ#tNF!}(4Nf6fze7e!D)9M&J({40MrxX9UnA`fum|YodF0+Ok>2sF;w<`BI zvD6|#F4w1aVkJ^w(|y0}Y#W2g&5&g;3cUxJUpITzL~)n$opm1|8C+5*OP$lID$6uB zas+|h^N%J6G|9DWADMQEVH_Dª0X0Xc)eH+q5c&fp%{1%Xi**XJDyrZgWcPz7I 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

u>N+pW3Ktk0kic_Q8* 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 TAq`~D00000NkvXXu0mjf{XT)t From 19a76a84b0e70f92ac3fc4ba5514de6eb1dea60e Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Thu, 28 Jul 2022 10:25:08 +0800 Subject: [PATCH 22/23] 2.0.0-Build22725-Dev-No.5 --- README.md | 7 +------ comments.php | 2 +- core/functions.php | 22 ---------------------- index.php | 4 ++-- 4 files changed, 4 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 7db5717..78a58d8 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_ - ✨重写了 代码高亮 - ✨重写了上一篇、下一篇按钮 - 🔪删除了在文章没有设置 标签 时显示的"No Tag" +- 🔪删除了评论头像(负)优化 - 修复了关闭后台夜间模式后存在的问题 - 修复评论过长,导致文本溢出的问题 - 优化更新检测请求的UI @@ -52,12 +53,6 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_ - 优化夜间模式评论区输入内容的显示效果 - 将更新检测请求由 GitHub 移至 Assets-FMCF -## 使用提示 - -- 在 1.2.7 版本更新时,添加了评论区头像优化,使得评论区头像可以通过QQ邮箱解析,并且更改了默认头像源,评论区头像优化是一项无法关闭的内容,如果需要关闭或修改 Gravatar 的代理地址,请前往 `/主题所在目录/core/functions.php` 第 190-211 行 进行修改。 - -- 在 2.0.0 版本更新时,更新检测请求由 Assets-FMCF 接管,隐私政策更改,隐私管理得以加强,Assets-FMCF 请求中心只会记录请求URL和请求时间,不会记录更多别的内容。 - ## 功能与特性 - 简洁风格 diff --git a/comments.php b/comments.php index a8ab131..57745d2 100755 --- a/comments.php +++ b/comments.php @@ -22,7 +22,7 @@ ?>">

- Comment_avatar + gravatar('40', ''); ?> author(); ?>
diff --git a/core/functions.php b/core/functions.php index 2c81188..ce3fd76 100755 --- a/core/functions.php +++ b/core/functions.php @@ -186,28 +186,6 @@ function word_count($cid){ $db = Typecho_Db::get (); $rs = $db->fetchRow($db->select('table.contents.text')->from('table.contents')->where('table.contents.cid=?',$cid)->order ('table.contents.cid',Typecho_Db::SORT_ASC)->limit (1)); return mb_strlen($rs['text'], 'UTF-8'); -} - /** - * TinaTheme - Comment avatar optimization - * 评论头像优化 - * 为 Gravatar 头像加速,为提供 QQ 邮箱的评论使用 QQ 头像 - * 实验功能 - */ -function Authorimg($email) -{ - $gravatar_source='dn-qiniu-avatar.qbox.me/avatar';//gravatar头像源 - $qqmail_source=str_replace('@qq.com','',$email); - if(stristr($email,'@qq.com')&&is_numeric($qqmail_source)&&strlen($qqmail_source)<11&&strlen($qqmail_source)>4){ - $qqimg = 'https://s.p.qq.com/pub/get_face?img_type=3&uin='.$qqmail_source; - $qqmail_img_1 = get_headers($qqimg, true); - $qqmail_img_2 = $qqmail_img_1['Location']; - $qqmail_img_3 = json_encode($qqmail_img_2); - $qqmail_img_4 = explode("&k=",$qqmail_img_3)[1]; - echo 'https://q.qlogo.cn/g?b=qq&k='.$qqmail_img_4.'&s=100'; - }else{ - $email= md5($email); - echo 'https://'.$gravatar_source.'/'.$email.'?'; - } } /** * TinaTheme - Next or Previous Post diff --git a/index.php b/index.php index 3064231..ce6034f 100755 --- a/index.php +++ b/index.php @@ -2,11 +2,11 @@ /** * 移植自WingLimhugo-tania主题,在其基础上进行了深度修改的 TinaTheme 或许是你在Typecho上最好的选择 *
版本检测中... 
- * + * * * @package Tina Theme * @author Magneto - * @version 2.0.0-Build22725-Dev-No.4 + * @version 2.0.0-Build22725-Dev-No.5 * @link https://www.fmcf.cc */ From 7f0be80df7121a505631edfdcf7b0c98823812f5 Mon Sep 17 00:00:00 2001 From: ouyangyanhuo Date: Thu, 28 Jul 2022 10:52:43 +0800 Subject: [PATCH 23/23] =?UTF-8?q?2.0.0=20=E6=AD=A3=E5=BC=8F=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 ++++++ index.php | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 78a58d8..5818eb4 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,12 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_
+## 更新前注意 + +此更新注意事项仅存在于 2.0.0 正式版本中,请务必认真! +- 在 2.0.0 版本,由于主题更名,因此主题文件夹名称会变更,与旧版本能够共存,但一定要删除旧版本的文件!!否则会导致更新检测冲突。 +- 在 2.0.0 版本,由于主题更名,启用新主题时,会导致原主题的相关设置内容丢失,请启用前做好设置内容的备份! + ## TinaTheme 一个为typecho移植的主题,源自于[hugo-tania](https://github.com/WingLim/hugo-tania)主题,原本是Hugo的主题,被移植到Typecho上在其基础上进行了深度修改的 TinaTheme 或许是你在Typecho上最好的选择 diff --git a/index.php b/index.php index ce6034f..e8f8dca 100755 --- a/index.php +++ b/index.php @@ -2,11 +2,11 @@ /** * 移植自WingLimhugo-tania主题,在其基础上进行了深度修改的 TinaTheme 或许是你在Typecho上最好的选择 *
版本检测中... 
- * + * * * @package Tina Theme * @author Magneto - * @version 2.0.0-Build22725-Dev-No.5 + * @version 2.0.0 * @link https://www.fmcf.cc */