移除无用,迁移

This commit is contained in:
2026-06-18 21:03:46 +08:00 Unverified
parent 63a10dd59e
commit d98d2989cb
20 changed files with 405 additions and 406 deletions
+14 -43
View File
@@ -29,6 +29,7 @@ const currentYear = new Date().getFullYear();
</script>
<link rel="stylesheet" href="https://cdn.jsdmirror.com/npm/instantsearch.css/themes/reset-min.css" />
<link rel="stylesheet" href="https://cdn.jsdmirror.com/npm/@fancyapps/ui@5.0/dist/fancybox/fancybox.css" />
<link rel="stylesheet" href="https://cdn.jsdmirror.com/npm/@fortawesome/fontawesome-free@6.7.2/css/all.min.css" />
<title>{pageTitle}</title>
</head>
<body>
@@ -36,46 +37,25 @@ const currentYear = new Date().getFullYear();
<nav class="nav">
<a class="brand" href="/">Bi's Blog</a>
<div class="nav-links nav-center">
<a href="/archives/">归档</a>
<a href="/categories/">分类</a>
<a href="/tags/">标签</a>
<a href="/shuoshuo/">说说</a>
<a href="/about/">关于</a>
<a href="/link/">友链</a>
<a href="/archives/"><i class="fa-solid fa-box-archive nav-icon" aria-hidden="true"></i><span>归档</span></a>
<a href="/categories/"><i class="fa-solid fa-folder-open nav-icon" aria-hidden="true"></i><span>分类</span></a>
<a href="/tags/"><i class="fa-solid fa-tags nav-icon" aria-hidden="true"></i><span>标签</span></a>
<a href="/shuoshuo/"><i class="fa-regular fa-comments nav-icon" aria-hidden="true"></i><span>说说</span></a>
<a href="/about/"><i class="fa-solid fa-heart nav-icon" aria-hidden="true"></i><span>关于</span></a>
<a href="/link/"><i class="fa-solid fa-link nav-icon" aria-hidden="true"></i><span>友链</span></a>
</div>
<div class="nav-links nav-actions">
<button class="nav-random" type="button" onclick="randomPost()" aria-label="前往随机文章" title="前往随机文章">
<svg aria-hidden="true" viewBox="0 0 24 24">
<path d="M16 3h5v5" />
<path d="M4 20 21 3" />
<path d="M21 16v5h-5" />
<path d="M15 15l6 6" />
<path d="M4 4l5 5" />
</svg>
<i class="fa-solid fa-shuffle nav-icon" aria-hidden="true"></i>
<span>随机文章</span>
</button>
<button class="nav-search search-typesense-trigger" type="button" aria-label="搜索" title="搜索">
<svg aria-hidden="true" viewBox="0 0 24 24">
<path d="m21 21-4.3-4.3" />
<circle cx="11" cy="11" r="7" />
</svg>
<i class="fa-solid fa-magnifying-glass nav-icon" aria-hidden="true"></i>
<span>搜索</span>
</button>
<button class="theme-toggle" type="button" aria-label="切换夜间模式" title="切换夜间模式" data-theme-toggle>
<svg class="theme-toggle-sun" aria-hidden="true" viewBox="0 0 24 24">
<circle cx="12" cy="12" r="4" />
<path d="M12 2v2" />
<path d="M12 20v2" />
<path d="m4.93 4.93 1.41 1.41" />
<path d="m17.66 17.66 1.41 1.41" />
<path d="M2 12h2" />
<path d="M20 12h2" />
<path d="m6.34 17.66-1.41 1.41" />
<path d="m19.07 4.93-1.41 1.41" />
</svg>
<svg class="theme-toggle-moon" aria-hidden="true" viewBox="0 0 24 24">
<path d="M20.99 13.49A8.5 8.5 0 1 1 10.51 3.01 6.5 6.5 0 1 0 20.99 13.49Z" />
</svg>
<i class="fa-solid fa-sun theme-toggle-sun nav-icon" aria-hidden="true"></i>
<i class="fa-solid fa-moon theme-toggle-moon nav-icon" aria-hidden="true"></i>
</button>
</div>
</nav>
@@ -97,22 +77,13 @@ const currentYear = new Date().getFullYear();
<p>联系方式</p>
<div class="footer-socials">
<a href="mailto:bishsh2006@gmail.com" aria-label="发送邮件" title="发送邮件">
<svg aria-hidden="true" viewBox="0 0 24 24">
<path d="M4 6h16v12H4z" />
<path d="m4 7 8 6 8-6" />
</svg>
<i class="fa-solid fa-envelope" aria-hidden="true"></i>
</a>
<a href="/rss.xml" aria-label="订阅 RSS" title="订阅 RSS">
<svg aria-hidden="true" viewBox="0 0 24 24">
<path d="M6 17h.01" />
<path d="M6 7a11 11 0 0 1 11 11" />
<path d="M6 12a6 6 0 0 1 6 6" />
</svg>
<i class="fa-solid fa-rss" aria-hidden="true"></i>
</a>
<a href="https://github.com/bishshi" target="_blank" rel="noreferrer" aria-label="GitHub" title="GitHub">
<svg aria-hidden="true" viewBox="0 0 24 24">
<path d="M12 3a9 9 0 0 0-3 17c.5.1.7-.2.7-.5v-1.8c-2.8.6-3.4-1.2-3.4-1.2-.4-1.1-1-1.4-1-1.4-.9-.6.1-.6.1-.6 1 0 1.5 1 1.5 1 .9 1.5 2.3 1.1 2.9.8.1-.6.3-1.1.6-1.3-2.2-.2-4.5-1.1-4.5-4.8 0-1.1.4-1.9 1-2.6-.1-.3-.4-1.3.1-2.6 0 0 .8-.3 2.7 1a9 9 0 0 1 4.9 0c1.8-1.3 2.6-1 2.6-1 .5 1.3.2 2.3.1 2.6.6.7 1 1.6 1 2.6 0 3.7-2.3 4.5-4.5 4.8.4.3.7 1 .7 2v2.5c0 .3.2.6.7.5A9 9 0 0 0 12 3Z" />
</svg>
<i class="fa-brands fa-github" aria-hidden="true"></i>
</a>
</div>
<nav class="footer-contact-links" aria-label="页脚链接">
+5
View File
@@ -16,6 +16,11 @@ export function getSitePages(): SitePage[] {
.filter(([path]) => {
if (path.includes('/_posts/') || path.includes('/_drafts/')) return false;
return ![
'/source/about/index.md',
'/source/cc/index.md',
'/source/cookie/index.md',
'/source/link/index.md',
'/source/privacy/index.md',
'/source/categories/index.md',
'/source/tags/index.md',
'/source/shuoshuo/index.md',
+45
View File
@@ -0,0 +1,45 @@
---
import BaseLayout from '@/layouts/BaseLayout.astro';
import PageHeaderCard from '@/components/PageHeaderCard.astro';
---
<BaseLayout title="关于" description="关于 Bi's Blog 和站长 Bi 的简短介绍。">
<section class="content-wrap narrow page-with-card native-page">
<PageHeaderCard title="关于" subtitle="这里记录折腾、学习和一些普通日子的回声。" />
</section>
<article class="article page-article native-page-article">
<div class="prose">
<p>
你好,我是 Bi。这个博客主要用来保存技术实践、生活片段和那些一时半会儿不想让它们散掉的想法。
</p>
<div class="native-feature-grid">
<section>
<i class="fa-solid fa-code" aria-hidden="true"></i>
<h2>技术笔记</h2>
<p>记录服务器、网络、开发环境、图像处理和一些实际踩坑过程。</p>
</section>
<section>
<i class="fa-regular fa-comments" aria-hidden="true"></i>
<h2>日常碎片</h2>
<p>把普通的一天、突然冒出来的灵感和一点点情绪留在这里。</p>
</section>
<section>
<i class="fa-solid fa-seedling" aria-hidden="true"></i>
<h2>持续生长</h2>
<p>网站本身也在慢慢迁移和重写,新的页面会逐步变成原生实现。</p>
</section>
</div>
<h2>联系</h2>
<p>
如果你想交流文章内容、友链或网站相关问题,可以通过
<a href="mailto:bishsh2006@gmail.com">bishsh2006@gmail.com</a>
联系我,也可以去
<a href="https://github.com/bishshi" target="_blank" rel="noreferrer">GitHub</a>
找到我。
</p>
</div>
</article>
</BaseLayout>
+41
View File
@@ -0,0 +1,41 @@
---
import BaseLayout from '@/layouts/BaseLayout.astro';
import PageHeaderCard from '@/components/PageHeaderCard.astro';
---
<BaseLayout title="版权协议" description="Bi's Blog 的内容版权与转载说明。">
<section class="content-wrap narrow page-with-card native-page">
<PageHeaderCard title="版权协议" subtitle="关于本站原创内容的转载、引用和使用方式。" />
</section>
<article class="article page-article native-page-article">
<div class="prose">
<p>
除特别说明外,本站原创文章采用
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans" target="_blank" rel="noreferrer">
CC BY-NC-SA 4.0
</a>
协议发布。转载或引用时,请保留原文链接并注明来源。
</p>
<h2>你可以做什么</h2>
<ul>
<li>在非商业场景下分享、转载本站原创文章。</li>
<li>在文章、笔记或资料中引用少量内容作为参考。</li>
<li>基于内容进行讨论、评论或提出修改建议。</li>
</ul>
<h2>需要遵守什么</h2>
<ul>
<li>注明作者和原文链接,建议使用可点击的完整 URL。</li>
<li>不得将本站原创内容用于广告、付费阅读、商业课程等商业用途。</li>
<li>改编、整理或二次发布时,应继续使用相同或兼容的共享协议。</li>
</ul>
<h2>例外情况</h2>
<p>
第三方主题、插件、外部图片或引用资料遵循其原作者的授权。网站源码中由本人编写的样式与脚本,如无额外说明,按仓库内声明为准。
</p>
</div>
</article>
</BaseLayout>
+62
View File
@@ -0,0 +1,62 @@
---
import BaseLayout from '@/layouts/BaseLayout.astro';
import PageHeaderCard from '@/components/PageHeaderCard.astro';
---
<BaseLayout title="Cookies" description="Bi's Blog 的 Cookie 与本地存储说明。">
<section class="content-wrap narrow page-with-card native-page">
<PageHeaderCard title="Cookies" subtitle="说明本站如何使用 Cookie 与浏览器本地存储。" />
</section>
<article class="article page-article native-page-article">
<div class="prose">
<p>
本站会使用少量 Cookie 或 LocalStorage 来保存主题偏好、改善访问体验,并辅助完成评论、防滥用和统计分析等功能。
本页面应与 <a href="/privacy/">隐私政策</a> 一起阅读。
</p>
<h2>什么是 Cookies</h2>
<p>
Cookies 是网站保存在浏览器中的小型文本数据。它可以帮助网站识别同一浏览器、记住你的偏好,或让某些功能保持可用。
</p>
<h2>本站使用目的</h2>
<div class="native-table-wrap">
<table>
<thead>
<tr>
<th>类型</th>
<th>用途</th>
</tr>
</thead>
<tbody>
<tr>
<td>偏好设置</td>
<td>保存深色/浅色主题等本地偏好。</td>
</tr>
<tr>
<td>安全与防滥用</td>
<td>辅助识别异常访问、恶意请求和垃圾评论。</td>
</tr>
<tr>
<td>评论服务</td>
<td>评论系统可能会保存昵称、邮箱、头像等你主动填写的信息。</td>
</tr>
<tr>
<td>访问分析</td>
<td>了解页面访问情况,用于优化文章和站点性能。</td>
</tr>
</tbody>
</table>
</div>
<h2>如何管理</h2>
<p>
你可以随时在浏览器设置中清除或禁用 Cookie 与站点数据。禁用后,评论、主题偏好、统计等功能可能无法按预期工作,但不影响阅读文章。
</p>
<h2>联系</h2>
<p>如果你对 Cookie 使用方式有疑问,可以发送邮件至 <a href="mailto:bishsh2006@gmail.com">bishsh2006@gmail.com</a>。</p>
</div>
</article>
</BaseLayout>
+47
View File
@@ -0,0 +1,47 @@
---
import BaseLayout from '@/layouts/BaseLayout.astro';
import PageHeaderCard from '@/components/PageHeaderCard.astro';
const friends = [
{
name: 'GitHub',
url: 'https://github.com/bishshi',
avatar: '/images/Bi.ico',
description: '站长的 GitHub 主页',
},
];
---
<BaseLayout title="友情链接" description="Bi's Blog 的友情链接页面。">
<section class="content-wrap narrow native-page">
<PageHeaderCard title="友情链接" subtitle="把仍在发光的角落放在一起。" />
<div class="friend-link-grid" aria-label="友情链接列表">
{friends.map((friend) => (
<a class="friend-link-card" href={friend.url} target="_blank" rel="noreferrer">
<img src={friend.avatar} alt="" loading="lazy" />
<span>
<strong>{friend.name}</strong>
<em>{friend.description}</em>
</span>
<i class="fa-solid fa-arrow-up-right-from-square" aria-hidden="true"></i>
</a>
))}
</div>
<article class="article native-page-article link-apply-card">
<div class="prose">
<h2>友链申请</h2>
<p>
欢迎长期维护、内容原创、访问稳定的个人站点交换友链。你可以通过邮件发送站点名称、地址、头像和一句简介。
</p>
<ul>
<li>站点名称:Bi's Blog</li>
<li>站点地址:https://blog.biss.click/</li>
<li>头像地址:https://blog.biss.click/images/Bi.ico</li>
<li>站点简介:好奇心转化为代码的空间。</li>
</ul>
</div>
</article>
</section>
</BaseLayout>
+47
View File
@@ -0,0 +1,47 @@
---
import BaseLayout from '@/layouts/BaseLayout.astro';
import PageHeaderCard from '@/components/PageHeaderCard.astro';
---
<BaseLayout title="隐私政策" description="Bi's Blog 的隐私与数据处理说明。">
<section class="content-wrap narrow page-with-card native-page">
<PageHeaderCard title="隐私政策" subtitle="说明访问本站时可能涉及的数据收集与使用方式。" />
</section>
<article class="article page-article native-page-article">
<div class="prose">
<p>
本站重视访问者的隐私。为了提供基础访问、评论、防滥用和体验优化能力,本站及其第三方服务可能会处理少量访问数据。
</p>
<h2>可能收集的信息</h2>
<ul>
<li>访问日志:IP 地址、浏览器 User-Agent、访问时间、请求路径等。</li>
<li>设备与浏览信息:页面加载情况、访问来源、基础性能数据等。</li>
<li>评论信息:你主动填写的昵称、邮箱、站点地址和评论内容。</li>
<li>本地存储:主题偏好、评论状态等保存在浏览器中的数据。</li>
</ul>
<h2>使用目的</h2>
<ul>
<li>保障网站安全,识别异常请求和垃圾评论。</li>
<li>优化页面性能、文章分类和搜索体验。</li>
<li>在有回复时通过评论系统通知你。</li>
<li>展示必要的评论头像、昵称和站点链接。</li>
</ul>
<h2>第三方服务</h2>
<p>
本站可能使用 CDN、评论、头像、搜索或统计分析服务。第三方服务会根据其自身政策处理数据,建议你阅读对应服务的隐私说明。
</p>
<h2>Cookie 与本地存储</h2>
<p>
关于 Cookie 和 LocalStorage 的更多说明,请查看 <a href="/cookie/">Cookies 页面</a>。你可以在浏览器中清除这些数据。
</p>
<h2>联系</h2>
<p>如果你希望删除评论或询问隐私相关问题,可以发送邮件至 <a href="mailto:bishsh2006@gmail.com">bishsh2006@gmail.com</a>。</p>
</div>
</article>
</BaseLayout>
+144 -22
View File
@@ -142,6 +142,9 @@ a {
.nav-random,
.nav-search,
.theme-toggle {
display: inline-flex;
align-items: center;
gap: 6px;
border: 1px solid transparent;
border-radius: 999px;
padding: 7px 12px;
@@ -156,9 +159,6 @@ a {
.nav-search,
.nav-random,
.theme-toggle {
display: inline-flex;
align-items: center;
gap: 6px;
color: inherit;
font: inherit;
line-height: inherit;
@@ -166,16 +166,14 @@ a {
cursor: pointer;
}
.nav-search svg,
.nav-random svg,
.theme-toggle svg {
.nav-icon {
display: inline-grid;
width: 16px;
min-width: 16px;
height: 16px;
fill: none;
stroke: currentColor;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round;
place-items: center;
font-size: 0.95em;
line-height: 1;
}
.theme-toggle {
@@ -2378,6 +2376,121 @@ meting-js {
transform: translateY(-1px);
}
.native-page {
margin-top: 40px;
}
.native-page-article {
overflow: hidden;
}
.native-feature-grid,
.friend-link-grid {
display: grid;
gap: 16px;
}
.native-feature-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
margin: 28px 0;
}
.native-feature-grid section,
.friend-link-card {
border: 1px solid rgba(15, 118, 110, 0.14);
border-radius: 8px;
background: rgba(236, 253, 245, 0.58);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.62);
}
.native-feature-grid section {
padding: 18px;
}
.native-feature-grid i {
display: grid;
width: 42px;
height: 42px;
margin-bottom: 12px;
place-items: center;
border-radius: 8px;
color: #fff;
background: #3eb8be;
}
.native-feature-grid h2 {
margin: 0 0 8px;
font-size: 1.12rem;
}
.native-feature-grid p {
margin: 0;
color: var(--muted);
}
.native-table-wrap {
overflow-x: auto;
}
.friend-link-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
margin: 0 0 24px;
}
.friend-link-card {
display: grid;
grid-template-columns: 58px minmax(0, 1fr) auto;
align-items: center;
gap: 14px;
padding: 16px;
transition:
border-color 0.2s ease,
background-color 0.2s ease,
transform 0.2s ease;
}
.friend-link-card:hover {
border-color: rgba(15, 118, 110, 0.28);
background: rgba(236, 253, 245, 0.78);
transform: translateY(-2px);
}
.friend-link-card img {
width: 58px;
height: 58px;
border-radius: 8px;
object-fit: cover;
}
.friend-link-card span {
display: grid;
min-width: 0;
gap: 2px;
}
.friend-link-card strong {
color: #33433f;
font-size: 1.05rem;
}
.friend-link-card em {
overflow: hidden;
color: var(--muted);
font-size: 0.9rem;
font-style: normal;
text-overflow: ellipsis;
white-space: nowrap;
}
.friend-link-card i {
color: var(--accent);
}
.link-apply-card {
width: 100%;
margin-top: 0;
}
:root[data-theme='dark'] .external-redirect-panel {
border-color: rgba(174, 205, 197, 0.18);
background:
@@ -2402,6 +2515,16 @@ meting-js {
color: #dce9e6;
}
:root[data-theme='dark'] .native-feature-grid section,
:root[data-theme='dark'] .friend-link-card {
border-color: rgba(114, 222, 210, 0.2);
background: rgba(114, 222, 210, 0.1);
}
:root[data-theme='dark'] .friend-link-card strong {
color: #edf7f5;
}
.site-footer {
position: relative;
margin-top: 64px;
@@ -2506,19 +2629,13 @@ meting-js {
transform: translateY(-2px);
}
.footer-socials svg {
.footer-socials i {
width: 18px;
height: 18px;
fill: none;
stroke: currentColor;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2;
}
.footer-socials a:last-child svg {
fill: currentColor;
stroke: none;
display: inline-grid;
place-items: center;
font-size: 1.08rem;
line-height: 1;
}
.footer-contact-links,
@@ -2794,6 +2911,11 @@ meting-js {
grid-template-columns: 1fr;
}
.native-feature-grid,
.friend-link-grid {
grid-template-columns: 1fr;
}
#talk .talk_item {
width: 100%;
margin-right: 0;