本轮是一次做减法 + 优化的整理:目标是把站点从「功能齐全的主题站」收成只管写、只管读的博客——少干扰、少维护,把精力放在正文上。发现文章靠首页、RSS 和单篇 URL;同时在加载性能与代码结构上做了收紧。
已移除的能力
以下功能在 Hugo / 早期 Astro 主题阶段存在,当前站点不再提供(相关依赖、页面与 frontmatter 字段已删):
| 能力 | 说明 |
|---|---|
| 标签 | 无标签页、文章页不展示 tag;旧文 frontmatter 里若仍有 tags: 仅作归档,不参与路由 |
| 分类 | 无分类归档页;content/posts/tech、weekly 等子目录仅本地整理,URL 统一为 /posts/{slug} |
| 全站搜索 | 已移除 Pagefind 等客户端搜索 |
| 主题切换 | 无深色 / 浅色切换,固定浅色阅读样式 |
| 评论 | 已移除 Giscus |
| 页脚(Footer) | 无备案区、无重复导航、无社交图标条 |
| 目录(TOC) | 文章页无侧边 / 文内自动目录 |
| 相关文章 | 无「猜你喜欢」「同标签推荐」等模块 |
| 社交分享 | 无一键分享到 X / 微信等按钮(链接复制靠浏览器即可) |
| 全站文章归档页 | 无 /posts.html 一类列表;请用首页滚动、RSS 或直达链接 |
| 点击分页 | 无 /page/N HTML 页(旧链 301 至首页),改为无限滚动 |
仍保留(尽量克制):顶栏站点名 + 关于、年进度条、回到顶部;正文 Mermaid / 图片灯箱 / 代码复制(按需);按发布时间的上一篇 / 下一篇(非算法推荐);Umami 统计、RSS / sitemap。分享仍依赖浏览器与 og:* 元数据,不额外嵌分享组件。
阅读与排版
- 标题层级:首页不再使用「最近记录」标题;分页 HTML 页已移除,列表卡片标题改为非
h2元素,避免一页几十个二级标题。 - 文章 / 关于页:页面级
h1与正文h2拉开字号差距;关于页由布局输出h1;404 使用语义化h1与统一空状态样式。 - 内容宽度:去掉正文
42rem限制,文章与关于页主体与顶栏同宽(960px内容区 + 一致内边距)。 - 细节:正文补充
h5/h6样式;按钮与表单圆角统一为var(--radius)。
首页列表
- 无限滚动:首屏仍 SSR 第一页(每页 10 条),向下滚动接近底部时请求
/feed/2.json、/feed/3.json… 追加,无需再点「查看更多」或访问/page/N。 - 兼容:旧地址
/page/:page在 Cloudflare 上 301 回首页;构建期静态生成 JSON,不增加列表页的 Mermaid / 代码复制等脚本。
页面标题(SEO)
- 浏览器标签:首页仅显示站点名;文章 / 关于 / 404 等为
页面标题 | ZhiJun Blog。 - 分享(
og:title)仍用纯页面标题,JSON-LDheadline不带站点后缀。
性能与加载优化
- 按需加载:文章页扫描正文,仅在有
```mermaid、围栏代码或内联图时分别加载 Mermaid、代码复制、Photosuite;列表页(/、/about)不引入上述脚本。 - Shiki 裁剪:高亮语言白名单(
SHIKI_LANGS),减小构建与运行体积。 - 图片:
remark/rehype合并为blogImages.ts;生产环境走 CDN(cos.zhijun.io);正文首图fetchpriority=high,其余loading=lazy。 - OG / 元数据:去掉按路由动态生成 OG 图,统一默认静态分享图,减少构建成本。
- 年进度条:组件与脚本瘦身,逻辑保留、体积更小。
- 构建:
compressHTML、关闭prefetch;pnpm build后裁剪dist/images中未引用文件。 - 无限滚动:分页数据以静态 JSON(
/feed/N.json)下发,首页只多一小段客户端逻辑,不生成整页 HTML 分页。
结构与可维护性
- 路由:文章 URL 统一
/posts/{slug},仅依赖 frontmatterslug;content/posts子目录只作本地分类。 - 布局拆分:样式分为
base/chrome(顶栏)/feed(列表)/post(文章),按页引入。 - 组件:
HomeFeed承载首页列表与滚动加载;ArticleExtras集中文章页增强能力。 - 数据层:
postUtils改为纯函数;RSS / sitemap 共用escapeXml;文章上下篇导航构建时只传prev/next,不再塞入全量文章列表。 - 首页列表:恢复展示
description摘要(无则回退正文摘录);卡片样式与悬停反馈统一。
无障碍与细节
- 保留「跳过导航」链接;正文标题
scroll-margin适配吸顶顶栏。 - 支持
prefers-reduced-motion,减弱动画与平滑滚动对敏感用户的影响。 - 外链
rel="noopener noreferrer";表格包一层responsive-table便于移动端横向滚动。
工程整理
- 合并图片处理与
postUtils纯函数化;精简 Layout / PostDetails /contentschema(不再校验tags、mermaid等 frontmatter 开关)。 - 删除未使用的
documentTitle独立文件,逻辑并入config.ts;移除/page/[page].astro与分页相关 UI 样式。 - 列表页构建边界:不加载 Mermaid、代码复制、Photosuite(首页仅多一小段滚动加载脚本)。
- 产品约定见仓库
.cursor/rules/blog-product.mdc。
若你通过 RSS 订阅,看到本篇即表示上述改动已部署到 blog.zhijun.io。后续大改会继续记在关于页 · 更新日志。