本轮是一次做减法 + 优化的整理:目标是把站点从「功能齐全的主题站」收成只管写、只管读的博客——少干扰、少维护,把精力放在正文上。发现文章靠首页、RSS 和单篇 URL;同时在加载性能与代码结构上做了收紧。

已移除的能力

以下功能在 Hugo / 早期 Astro 主题阶段存在,当前站点不再提供(相关依赖、页面与 frontmatter 字段已删):

能力说明
标签无标签页、文章页不展示 tag;旧文 frontmatter 里若仍有 tags: 仅作归档,不参与路由
分类无分类归档页;content/posts/techweekly 等子目录仅本地整理,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-LD headline 不带站点后缀。

性能与加载优化

  • 按需加载:文章页扫描正文,仅在有 ```mermaid、围栏代码或内联图时分别加载 Mermaid、代码复制、Photosuite;列表页(//about)不引入上述脚本。
  • Shiki 裁剪:高亮语言白名单(SHIKI_LANGS),减小构建与运行体积。
  • 图片remark / rehype 合并为 blogImages.ts;生产环境走 CDN(cos.zhijun.io);正文首图 fetchpriority=high,其余 loading=lazy
  • OG / 元数据:去掉按路由动态生成 OG 图,统一默认静态分享图,减少构建成本。
  • 年进度条:组件与脚本瘦身,逻辑保留、体积更小。
  • 构建compressHTML、关闭 prefetchpnpm build 后裁剪 dist/images 中未引用文件。
  • 无限滚动:分页数据以静态 JSON(/feed/N.json)下发,首页只多一小段客户端逻辑,不生成整页 HTML 分页。

结构与可维护性

  • 路由:文章 URL 统一 /posts/{slug},仅依赖 frontmatter slugcontent/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 / content schema(不再校验 tagsmermaid 等 frontmatter 开关)。
  • 删除未使用的 documentTitle 独立文件,逻辑并入 config.ts;移除 /page/[page].astro 与分页相关 UI 样式。
  • 列表页构建边界:不加载 Mermaid、代码复制、Photosuite(首页仅多一小段滚动加载脚本)。
  • 产品约定见仓库 .cursor/rules/blog-product.mdc

若你通过 RSS 订阅,看到本篇即表示上述改动已部署到 blog.zhijun.io。后续大改会继续记在关于页 · 更新日志