diff --git a/README.md b/README.md index 0e6f371..d76e3a6 100644 --- a/README.md +++ b/README.md @@ -19,12 +19,6 @@ _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上最好的选择 @@ -32,7 +26,7 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_
[![AdminMD](https://img.shields.io/badge/Magneto-TinaTheme-brightgreen)](https://fmcf.cc/technology/523/) -![Version](https://img.shields.io/badge/Version-2.0.0-criticale) +![Version](https://img.shields.io/badge/Version-2.0.1-criticale) ![Repo-size](https://img.shields.io/github/languages/code-size/ouyangyanhuo/TinaTheme) ![License](https://img.shields.io/github/license/ouyangyanhuo/TinaTheme) ![Stars](https://img.shields.io/github/stars/ouyangyanhuo/TinaTheme) @@ -44,23 +38,18 @@ _Haku,是 Tina 小姐最爱的喵喵,它在这里守卫着 Tina 小姐_ ## 最近版本更新日志 -- 🚀由 SmileTheme 更名为 TinaTheme -- ✨新增了 代码块 -- ✨新增了滚动条样式 -- ✨新增了针对上一篇、下一篇按钮的核心内容 -- ✨新增了加密文章的输入框、提交按钮的样式 -- ✨新增了对 MathJax 和 KaTeX 数学公式的渲染支持 -- ✨重写了 代码高亮 -- ✨重写了上一篇、下一篇按钮 -- 🔪删除了在文章没有设置 标签 时显示的"No Tag" -- 🔪删除了评论头像(负)优化 -- 修复了关闭后台夜间模式后存在的问题 -- 修复评论过长,导致文本溢出的问题 -- 优化更新检测请求的UI -- 完成所有所需页面的重构 -- 调整评论区 取消回复 按钮位置 -- 优化夜间模式评论区输入内容的显示效果 -- 将更新检测请求由 GitHub 移至 Assets-FMCF +- 🌈更改 更新校验方式 将其更改为 内部版本号校验 以达到精确校验(大部分App应用商店的校验方式) +- ⭐新增 Gravatar头像源切换 功能,用于加速国内的Gravatar头像显示,经测试不会影响运行性能。 +- ⭐新增 主题数据备份 功能,数据存储于数据库中,名称为 TinaThemebf +- 🔪删除了在 CSS 中部分无法正常使用的功能 +- 🔪删除了冗余的核心JS +- 修复开启图片灯箱后对Tyoecho `` 标签的支持 +- 修复了不开启图片灯箱无法正常使用PJAX的陈年Bug +- 修复了评论区头像的显示效果负优化 +- 优化了 CSS 的书写,进而提高性能 +- 优化了 友链 页面中 链接的显示效果 +- 优化了 评论内容 的整体显示效果 +- 优化了 图片 的显示效果 ## 功能与特性 diff --git a/assets/css/style.css b/assets/css/style.css index 38fd3d3..48cb0e8 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:#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 +/*! TinaCSS for v2.0.1 | Created by Magneto for TinaTheme| Size about 24KB */ +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_links:#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: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}}input.submit,input[type=password],#search-query{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;}#search-query{width:100%;}input[type=password]{width:40%;}#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{box-shadow:rgb(0 0 0 / 30%) 0px 5px 20px;border-radius:8px;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}.note-ref{cursor:pointer;border:none;box-shadow:none!important}.note-ref:hover{box-shadow:none;border:none}.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_links:#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_links:#ffd479;--webkit-scrollbar:rgb(255 255 255 / 40%)}.alert 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}.comment-list p.comment-user-info{display:block;margin-bottom:.5em}.comment-author .avatar{float:left;margin-right:8px;border-radius:15%}.comment-body{padding:18px 0;border-bottom:1px solid #7a7a7a38;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 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;transition:.3s ease-out;border-radius:5px;line-height:1.3;height:90px;display:block}.linkpage li:hover{background:rgba(230,244,250,.2);cursor:pointer}.linkpage li a{padding:0 10px 0 90px}.linkpage li a img{width:60px;border-radius:50%;position:absolute;top:15px;left:15px;cursor:pointer;margin:auto;border:none}.linkpage_links{color:var(--inkpage_links);font-size:18px;margin:0 0 7px;font-weight:400;padding-left:90px}.linkpage_links:hover{color:#51aded}.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/assets/js/features.js b/assets/js/features.js index 813dfa0..7f75712 100644 --- a/assets/js/features.js +++ b/assets/js/features.js @@ -1,2 +1,2 @@ -/*! 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 +/*! TinaJS for v2.0.0 | Created by Magneto for TinaTheme| Size about 1.3KB */ +(()=>{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())})}()})();console.log('%cTheme: %cTinaTheme%cBy Magneto','color: rgba(255,255,255,.6); background: #ffbd31; font-size: 15px;border-radius:5px 0 0 5px;padding:10px 0 10px 20px;','color: rgba(255,255,255,1); background: #ffbd31; font-size: 15px;border-radius:0;padding:10px 15px 10px 0px;','color: #fff; background: #ffd479; font-size: 15px;border-radius:0 5px 5px 0;padding:10px 20px 10px 15px;');console.log('%chttps://github.com/ouyangyanhuo/TinaTheme','font-size: 12px;border-radius:5px;padding:3px 10px 3px 10px;border:1px solid #5e72e4;'); \ No newline at end of file diff --git a/comments.php b/comments.php index 57745d2..718c5f8 100755 --- a/comments.php +++ b/comments.php @@ -84,7 +84,7 @@
have()): ?>

commentsNum(_t('暂无评论'), _t('仅有一条评论'), _t('已有 %d 条评论')); ?>

- listComments(); ?> + listComments(); ?> pageNav('« 前一页', '后一页 »'); ?> diff --git a/core/backup.php b/core/backup.php new file mode 100644 index 0000000..5fbec4c --- /dev/null +++ b/core/backup.php @@ -0,0 +1,63 @@ + +fetchRow($db->select()->from ('table.options')->where ('name = ?', 'theme:TinaTheme')); + $ysj = $sjdq['value']; + if(isset($_POST['type'])){ + if($_POST["type"]=="备份模板数据"){ + if($db->fetchRow($db->select()->from ('table.options')->where ('name = ?', 'theme:TinaThemebf'))){ + $update = $db->update('table.options')->rows(array('value'=>$ysj))->where('name = ?', 'theme:TinaThemebf'); + $updateRows= $db->query($update); + echo '
备份已更新,请等待自动刷新!如果等不到请点击'; +?> + 这里
+ +insert('table.options')->rows(array('name' => 'theme:TinaThemebf','user' => '0','value' => $ysj)); + $insertId = $db->query($insert); + echo '
备份完成,请等待自动刷新!如果等不到请点击'; +?> + 这里
+ +fetchRow($db->select()->from ('table.options')->where ('name = ?', 'theme:TinaThemebf'))){ + $sjdub=$db->fetchRow($db->select()->from ('table.options')->where ('name = ?', 'theme:TinaThemebf')); + $bsj = $sjdub['value']; + $update = $db->update('table.options')->rows(array('value'=>$bsj))->where('name = ?', 'theme:TinaTheme'); + $updateRows= $db->query($update); + echo '
检测到模板备份数据,恢复完成,请等待自动刷新!如果等不到请点击'; +?> +这里
+ +没有模板备份数据,恢复不了哦!'; + } + } + if($_POST["type"]=="删除备份数据"){ + if($db->fetchRow($db->select()->from ('table.options')->where ('name = ?', 'theme:TinaThemebf'))){ + $delete = $db->delete('table.options')->where ('name = ?', 'theme:TinaThemebf'); + $deletedRows = $db->query($delete); + echo '
删除成功,请等待自动刷新,如果等不到请点击'; +?> +这里
+ +不用删了!备份不存在!!!'; + } + } + } +echo '

主题备份

+    
'; +?> \ No newline at end of file diff --git a/core/functions.php b/core/functions.php index ce3fd76..8173dee 100755 --- a/core/functions.php +++ b/core/functions.php @@ -114,9 +114,9 @@ function Links($short = false) foreach ($list as $val) { list($name, $url, $description, $logo) = explode(',', $val); if ($short) { - $link .= '
  • @' . $name . '

    ' . $description . '

  • ' . "\n"; + $link .= '
  • ' . $description . '

  • ' . "\n"; } else { - $link .= '
  • @' . $name . '

    ' . $description . '

  • ' . "\n"; + $link .= '
  • ' . $description . '

  • ' . "\n"; } } } diff --git a/footer.php b/footer.php index 861fa88..faf8a7d 100755 --- a/footer.php +++ b/footer.php @@ -14,13 +14,7 @@ options->MathRender == 'MathJax'): ?> - + options->MathRender == 'Close'): ?> diff --git a/functions.php b/functions.php index cc3fbf7..8eb68f8 100755 --- a/functions.php +++ b/functions.php @@ -5,6 +5,7 @@ require_once __DIR__ . '/core/functions.php'; function themeConfig($form) { + require_once __DIR__ . '/core/backup.php'; /* 外观 */ $TheNotice = new Typecho_Widget_Helper_Form_Element_Text('TheNotice', NULL, NULL, _t('

    基础外观

    ')); $TheNotice->input->setAttribute('style', 'display:none'); @@ -45,6 +46,18 @@ function themeConfig($form) { ); $form->addInput($compressHtml); + $JqueryControl = new Typecho_Widget_Helper_Form_Element_Radio( + 'JqueryControl', + array( + 1 => _t('启用'), + 0 => _t('关闭') + ), + 1, + _t('JqueryControl'), + _t('默认开启,如果要使用PJAX、Fancybox必须开启 Jquery 控件!') + ); + $form->addInput($JqueryControl); + $fancybox = new Typecho_Widget_Helper_Form_Element_Radio( 'fancybox', array( @@ -145,6 +158,17 @@ function themeConfig($form) { _t('评论区的加减法验证系统,关闭后反垃圾评论效果降低。') ); $form->addInput($TheVerification); + + $GravatarUrl = new Typecho_Widget_Helper_Form_Element_Radio('GravatarUrl', + array + ( + false => _t('官方源'), + 'https://cdn.helingqi.com/avatar/' => _t('禾令奇源'), + 'https://sdn.geekzu.org/avatar/' => _t('极客族源'), + 'https://dn-qiniu-avatar.qbox.me/avatar/' => _t('七牛源') + ), + 'https://cdn.helingqi.com/avatar/', _t('Gravatar头像源'), _t('默认禾令奇源')); + $form->addInput($GravatarUrl); /* Notice */ $TheNotice = new Typecho_Widget_Helper_Form_Element_Text('TheNotice', NULL, NULL, _t('

    网站公告 Notice

    ')); diff --git a/header.php b/header.php index ba3eea5..b136602 100755 --- a/header.php +++ b/header.php @@ -32,9 +32,11 @@ + options->JqueryControl): ?> + + options->fancybox): ?> - diff --git a/index.php b/index.php index e8f8dca..632dbbc 100755 --- a/index.php +++ b/index.php @@ -2,11 +2,11 @@ /** * 移植自WingLimhugo-tania主题,在其基础上进行了深度修改的 TinaTheme 或许是你在Typecho上最好的选择 *
    版本检测中... 
    - * + * * * @package Tina Theme * @author Magneto - * @version 2.0.0 + * @version 2.0.1 * @link https://www.fmcf.cc */ diff --git a/page-links.php b/page-links.php index ab86dbf..a39d7c6 100755 --- a/page-links.php +++ b/page-links.php @@ -27,9 +27,6 @@ $pattern = '/\]*>/i'; $replacement = '$2'; $content = preg_replace($pattern, $replacement, $this->content); - //内容截断 - $array=explode('', $content); - $content=$array[0]; echo getContentTest($this->content); ?> diff --git a/page.php b/page.php index fa079d3..344ce32 100755 --- a/page.php +++ b/page.php @@ -32,9 +32,6 @@ $pattern = '/\]*>/i'; $replacement = '$2'; $content = preg_replace($pattern, $replacement, $this->content); - //内容截断 - $array=explode('', $content); - $content=$array[0]; echo getContentTest($this->content); ?> diff --git a/post.php b/post.php index 0b8b162..7f589c2 100755 --- a/post.php +++ b/post.php @@ -35,9 +35,6 @@ $pattern = '/\]*>/i'; $replacement = '$2'; $content = preg_replace($pattern, $replacement, $this->content); - //内容截断 - $array=explode('', $content); - $content=$array[0]; echo getContentTest($content) ?>