CHANGELOG
生长年轮
一个网站如何从博客,
慢慢变成一份持续生长的数字出版物。
2024 — ∞
66 ITERATIONS
480 CHANGES
01
当前状态
Current 02
生长阶段
Evolution · 网站经历的五个时代 01
2024 FOUNDATION 建立
一切开始的地方——从一行构建命令,到第一个页面上线。
02
2026.06 RENEWAL 重建
配置系统重构,Cloak TERM 设计系统上线,主题定名「Ink Editorial」并正式发布。
03
2026.07 GARDEN 花园
全站主题化为「Grove」:Reading Room 首页、seed / bud / bloom 生长状态体系。
04
2026.07—08 EDITORIAL 出版物
响应式架构重构、蓝白视觉改造、阅读系统升级——划词高亮 · 读书笔记 · Pagefind。
05
2026.08 — ARCHIVE 档案 进行中
Now 此刻、访客留言、搜索增强与深色三态;Edition 2.0 四空间框架(READ · MAKE · ARCHIVE · ABOUT)与编辑式布局落成,站点正式成为个人出版物与数字档案;此刻状态收敛为单一数据源,友链 / 书系 / 内容栏目 / 回应 / 资产等页面逐批编辑式化,图片双格式与离站入口落地。
03
里程碑
Milestones · 真正改变网站的版本 0.0.1
FOUNDATION站点建立 博客站点初始化,基于 Astro 搭建
2024.06.01 1.0.0 FIRST RELEASE正式发布 「Ink Editorial」主题 v1.0 发布
2026.06.26 1.5.0 GARDEN GROVE花园定名 全站花园主题化,主题更名为「Grove」
2026.07.17 1.7.0 ARCHITECTURE架构重构 PC 与移动样式分离,响应式架构重构
2026.07.26 1.8.0 VISUAL SYSTEM视觉改造 蓝白风 · 侧边栏 · 字体统一 · 首页重构
2026.08.14 1.9.0 READING SYSTEM阅读系统 划词高亮读书笔记 + Pagefind 搜索升级
2026.08.15 详解 → 2.0.0 PERSONAL PUBLICATION个人出版物 四空间导航 · 编辑式布局 · 全站历史档案
2026.09.05 2.1.0 RESPONSE & ASSETS回应与资产档案 回应档案 · 资产档案 · 图片双格式 · 离站入口
2026.09.05 2.2.0 THE INDEX目录首页 首页重定位为出版物目录:此刻归 About · 精选改 LATEST · INDEX 统计条 · Archive 提前 · 影像降权
2026.09.07 2.3.0 CONTENT SYSTEM内容体系 书系从 4 部增至 7 部 · 21 篇旧文章归位 · 三篇总纲文章 · 45 处双向链接,文章之间第一次形成可读路径
2026.09.09 详解 → 2.4.0 READING PATH阅读路径 TL;DR 与阅读路线前置 · 结尾「继续阅读」取代纯时间序前后篇 · 七类文章类型全站标注 · 后记字段
2026.09.10 详解 → 04
历史档案
History · 所有更新记录 2026
2.10.3 封面改为「只认 heroImage」:取消正文首图自动降级
2026-09-12 2 changes - 封面规则回退:utils.getCover 只认 frontmatter 的 heroImage,不再自动取正文首图当封面。写了 heroImage 才加载封面,没写就不加载任何图——封面是可选项,不再拿正文配图来凑。文章页 hero、博客列表精选卡片、首页最近更新缩略图三处版位同步改走这一规则(无封面即纯文字卡片)
- 移除正文首图提取逻辑(extractFirstImage / isUsableCover / 占位图正则)与 CoverImage 的 url 分支——封面来源现在恒为 heroImage 本地资源
2.10.2 文章封面自动降级 + 全站死 CSS 清理 + 分类代表图
2026-09-12 4 changes - 文章封面规则落地:写有 heroImage 就用它,没有则自动取正文首图当封面(utils.getCover 统一解析,写作规范里的示例占位图会被识别并跳过)。文章页 hero、博客列表精选卡片、首页最近更新缩略图三处版位共用这套规则;都没图就保持纯文字卡片——图片不该是每篇文章必须缴纳的封面税
- 分类代表图(视觉系统 12):六个栏目各有一张代表图,分类列表页每行一张 1:1 小图,分类详情页头部一张 3:4 竖图。选图按分类色彩方向:技术 / 工具用工作台截图(SCREEN),思考用留白建筑,教程用老街路径,随笔用自然花艺,游戏用春景
- 死 CSS 清理:用「选择器里所有类名都已死才删」的安全规则,共清理 245 个规则块(约 27KB)。包括九种旧区块头样式、首页旧版式(visual-card / featured-card / home-index / signature 等 50 类)、旧蓝色原型层 prototype.css 的 29 个废弃类(card / archive-item / now-grid 仍在用,保留)、旧布局结构类(site-header / page-hero / gear-item / steam-* 等 83 块)。动态状态类(open / visible / loaded)与代码块样式全部白名单保留
- 关于页系统信息里部署方式还写着「Nginx · 独立服务器」,更正为 GitHub · Cloudflare Pages
2.10.1 全站区块头统一:38 处自造标题收拢为一个组件
2026-09-12 4 changes - 此前「编号 + 中文主标 + 英文副标」只在首页有(section-head),其余 13 个页面各造各的:about / archive / now / changelog / gear / games / tags / projects 九种前缀的自造区块头,博客列表页还另有一套带 SVG 图标的 section-label。现将这套区块头提升为全站标准组件,定义收进 global.css,一次性替换 38 处
- 数字资产与游戏档案原为「英文大字在上、中文小字在下」,与全站「中文主标 + 英文副标」的规范相反,已调换主次;总数说明(如 03 In Use)移到区块右侧作为 note
- 博客列表页区块头去掉 SVG 图标与装饰线,改用统一编号条,与其余页面完全同构;关键词索引补上编号与英文副标(POPULAR / ALL TAGS)
- 区块头新增编号位 section-head__no,与文章的 ARTICLE、正文图片的 IMAGE、相册照片的 PHOTO 同属一套编号系统,全站编号语言自此一致
2.10.0 引入图片视觉系统:首页封面影像、正文图片编号、相册编排统一
2026-09-12 6 changes - 建立图片规格(HERO 16:9 / CARD 4:3 / SQUARE 1:1 / PORTRAIT 3:4)与通用版位类 .img-frame,首页、文章页、视觉档案三处共用同一套比例与裁切规则,不再各写各的
- 首页新增「封面影像」区块(FEATURED):一张竖构图照片 + 编号 / 地点 / 日期 / 一句描述,左图右文。本站相册以 3:4 竖构图为主,故不硬裁成 16:9 横幅,把「一张照片」讲成一个小段落
- 首页「影像」区块由等高三列改为带节奏的图片墙:瀑布流排布 + 相邻照片轮换版位(3:4 / 1:1 / 4:5),避免整墙同尺寸的 CMS 感;图注统一为 PHOTO.NN + 地点
- 文章正文图片自动升级为编辑式版位:独立成段的图片由脚本包成 figure 并补上 IMAGE.NNN 编号图注(与相册的 PHOTO.NN 同族、分开计数);行内小图与书影音海报不受影响
- 文章封面(heroImage)改用响应式宽度输出、不再被固定成 2:1 裁切,并补上 Cover 签名;「最近更新」列表预留 4:3 缩略图版位,文章配图后自动生效
- 视觉档案:图片编号统一为 PHOTO.NN(原为 N° NN),马赛克增加竖长 / 横宽节奏块,首张仍为 2×2 主图,做到「不规则但有规则」
2.9.9 页面标题统一为「页面名 | 云图札记」,站点名由布局统一拼接
2026-09-12 6 changes - 此前各页各自手工拼标题:8 个页面写死「 | 云图札记」、4 个页面完全没有站点名(博客 / 搜索 / 更新日志 / 404)、分隔符「|」与「·」混用。改为 MainLayout 统一拼接,页面只传自己的名字,新增页面不会再跑偏
- 补齐缺失的站点名:博客、搜索、更新日志、404;文章页此前只有文章标题,现统一为「文章标题 | 云图札记」
- 分隔符统一为「 | 」:回应、系列、系列详情、数字资产档案、游戏档案原先用的是「·」
- 同一页面两个名字的对齐:「更新日志」改为与页内标题一致的「生长年轮」;数字资产页页内标题「我的数字资产」改为与标题一致的「数字资产档案」,与文章档案 / 视觉档案 / 游戏档案成同一命名体系
- 细节对齐:标签页标题去掉「#」前缀(页内标题仍保留),与分类页的「<名称> | 云图札记」完全同构
- 404 标题由「迷路了」改为更明确的「页面未找到」
2.9.8 主导航改为等宽栅格,四项标题宽窄一致
2026-09-12 2 changes - 顶部主导航原先按文案长度自适应:READ 79px、MAKE 82px、ARCHIVE 104px、ABOUT 91px,最长最短差 25px,四项起点不等距、看着参差。改为等宽栅格(grid + grid-auto-columns:1fr),每列取最长项宽度并拉齐,四项统一为 104px
- 导航项文字在等宽列内居中对齐,起点等距(间隔 2px);补 white-space:nowrap 防止文案折行,窄屏仍走移动端抽屉不受影响
2.9.7 项目页补充 GitHub 仓库区块,个人项目为手工维护主数据
2026-09-12 4 changes - 项目页新增「04 GitHub 仓库」区块:读取定时同步的 github_projects.json,按最近提交倒序列出公开仓库(名称、描述、语言、star、更新时间),点击直达仓库
- 分工明确:上方「进行中 / 维护中 / 规划中」是手工维护的个人项目(状态、进度、在做、接着、技术栈、链接写在 src/data/projects.json);下方 GitHub 区块是自动同步的仓库信息,两者各司其职
- 个人项目若关联了仓库(repo 字段),卡片自动补上源码链接、语言与最近提交,仓库信息不手写;侧栏「本页导航」加入 GitHub 仓库入口
- 「理想城 · Mastodon 实例」已关停,条目替换为「方法论精华书架」
2.9.6 新增「项目」页:正在做的事与各自进度
2026-09-12 5 changes - 新增 /projects 项目页,把在做的站点、工具、主题、实例、创作与基础设施集中列出,按「进行中 / 维护中 / 规划中」三段分组,每项含状态徽标、自评进度条、当前在做与下一步
- 项目数据独立为 src/data/projects.json(状态 / 进度 / 在做 / 接着 / 技术栈 / 链接),与 GitHub 仓库数据(语言、最近提交)自动关联,仓库信息不手写
- 按类型筛选(站点 / 工具 / 主题 / 实例 / 创作 / 游戏 / 基础设施 / 自动化),命中为空的分组自动收起;侧栏提供本页导航、类型统计与「进度怎么来的」说明
- 主导航 MAKE 分组新增「项目」入口;sitemap 静态页清单同步登记 /projects
- 进度定位为自评的粗略刻度(离可用状态还有多远),不代表代码行数或任务完成率,页内已注明
2.9.5 图片灯箱改用全屏舞台,修复放大区间小与拖拽跑偏
2026-09-12 6 changes - 灯箱可视区从 min(90vw, 860px) 的小框改为铺满整个视口(四周留白避开工具栏/说明条)。此前桌面端图片最大只到 860px 宽,放大后立刻撞到画布边界,「只能在很小的范围里缩放」;现在 1920 宽的屏幕可显示约 1600px,观感与可用空间大幅提升
- 缩放区间由 50%–400% 改为 100%(适应屏幕)–800%,倍率步进 0.5x;不再允许缩小到比适应屏幕更小,避免越缩越虚
- 拖拽平移时位移量会被缩放倍数二次放大(transform 写成 scale() translate(),位移在缩放坐标系里执行),放大到 4x 时拖一下跑 4 倍距离、完全跟不上手;已改为 translate() scale(),平移量恢复为屏幕像素
- 平移新增边界约束:放大后最多把图片边缘拖到舞台边缘,不再能把图片拖出屏幕外丢失
- 滚轮与双指捏合改为以指针/两指中点为中心缩放,看哪里放大哪里;双击在「适应屏幕」与 2.5x 间切换
- 拖拽时禁用 transform 过渡(此前 0.2s 过渡让拖拽发黏);修正 .lightbox-zoom-level 的 text-text-align 拼写错误;说明条改为贴底绝对定位并在无文案时隐藏
2.9.4 补全 CSP connect-src,放行 GA4 的 doubleclick 上报端点
2026-09-12 1 changes - CSP connect-src 未包含 https://stats.g.doubleclick.net,GA4(gtag)向该端点上报时被浏览器拦截并持续在控制台报 CSP violation;已在 src/config/analytics.mjs 的 Google Analytics 项补上该域名,public/_headers 由 scripts/sync-csp.mjs 重新生成、MainLayout 的 meta CSP 同步更新
2.9.3 图片灯箱改为微信式看图:默认压缩图,按体积加载原图
2026-09-12 3 changes - 灯箱改为微信式看图:默认显示文章里那张响应式图(currentSrc),工具栏「查看原图(大小)」按钮显示原始大图的文件体积,点击后在灯箱内加载全分辨率原图(不新开标签页),原图显示后按钮收起;无更大原图的图片自动隐藏该按钮
- 此前放大后严重模糊(灯箱取 800w webp 缩略图作放大源)——现在需要清晰时点「查看原图」即可在灯箱内加载原图,1:1 查看
- generate-image-meta.mjs 输出的 public/image-meta.json 每条新增 bytes(原图体积),灯箱按需懒加载该文件,读取后格式化为 K/M 体积显示在按钮上
2.9.2 文章内容独立为私有内容仓库,构建时按需拉取
2026-09-11 6 changes - 文章与图片从源码仓库拆分为独立私有仓库 blog-Content,源码仓库只保留构建时拉取的脚本;Cloudflare Pages 不支持私有子模块(克隆阶段早于构建命令、读不到凭据),改为构建期用只读 Token 显式克隆,仓库保持私有
- 文章按「分类/年份」两级归档,内容集合 loader 的 generateId 展平为纯文件名(丢弃路径前缀),122 篇旧链接全部保持不变
- 归档后六个脚本静默失效(只扫顶层目录导致产出为空或错位):generate-preview-index / generate-image-meta / generate-og / validate-frontmatter / assign-growth / scan-posts 全部改为递归收集,并抽公共 walkPosts();preview-index.json 输出前按 slug 排序,目录变动只反映在真实增删、不再整文件重排
- new-post.mjs 重写:--category 写入「分类/年份/<slug>.md」、分类白名单六项、--draft 走未来 pubDate 自动延后上线
- img:convert 覆盖范围扩展到内容仓库 img/,并修复 updateArticleRefs 递归路径 bug(collectPosts 返回绝对路径后旧 path.join 拼接导致双倍路径错位),内容图引用随 webp 化同步改写
- 新增 fetch-content.mjs 构建前拉取内容仓库,支持 BLOG_CONTENT_FORCE 强制重拉与 BLOG_CONTENT_DIR 指向本地独立克隆;Cloudflare Pages 需配置环境变量 BLOG_CONTENT_TOKEN(对 blog-Content 只读 fine-grained PAT,Production 与 Preview 均生效)
2.9.1 清理已下线的自建服务引用
2026-09-10 3 changes - /gear 的 SERVICES 移除「理想城」(自建 Mastodon 实例)条目,服务清单收敛为 GitHub、Cloudflare、腾讯云、宝塔面板、Steam 五项
- 移除 head 中指向该实例的 rel=me 身份声明,并同步收紧 CSP:src/config/csp.mjs 的 connect-src 去掉实例域名,public/_headers 由 scripts/sync-csp.mjs 重新生成
- github_projects.json 移除 mastodon(实例所用 fork)与 docs(实例文档)两个仓库条目;scripts/sync_github_repos.py 新增 EXCLUDE_REPOS 排除名单,避免每日同步又把它们抓回来
2.9.0 把 /gear 重新定义为「个人数字资产档案」,GAMES 独立成子页
2026-09-10 7 changes - /gear 的定位从「装备清单」改为「个人数字资产档案」:01 DEVICES 我正在使用的设备、02 SOFTWARE 我日常使用的软件、03 GAMES 我投入时间的地方、04 SERVICES 我长期使用的服务、05 ARCHIVED 曾经使用过但已经离开的东西
- 新增 /gear/games 游戏子页:顶部只放四个数字(游戏数 / 总时长 / 玩得最久 / 最近打开),下面是 CURRENTLY PLAYING、MOST PLAYED、RECENTLY PLAYED、MY STATUS 与完整 LIBRARY
- LIBRARY 收录全部 261 款游戏,支持搜索、按状态筛选(PLAYING / RETURNING / FINISHED / RETIRED / ARCHIVED)、按时长 / 最近游玩 / 名称排序;不执行 JS 时也能看到完整列表
- 数据分两层:steam_games.json 由 Actions 每天覆盖,只放客观事实(时长、最后游玩、图标、开发商);新增 game_meta.json 手工维护主观内容(状态 / 收藏 / 为什么玩)。Steam 负责记录事实,我负责留下观点
- 同步脚本从「只存 TOP 20 的榜」改为输出完整游戏库,并补充最后游玩日期、图标与开发商(开发商取自商店接口,注意 filters=basic 不含 developers 字段)
- /gear 不再展示 PROJECTS 与 LIBRARY 两个区块,收敛为上述五个部分;github_projects.json 与 books_music_movies.json 及其定时同步保留,随时可以加回
- 删除已被完整库取代的 src/data/steam_games_top20.json
2.8.1 修掉「最近 3957h」:Steam 的最近两周时长是分钟,被当成小时显示了
2026-09-10 5 changes - GAMES 区块直接把 Steam 原生的 playtime_2weeks 加上 h 后缀输出,而这个字段单位是「分钟」——于是《欧陆风云 4》的 3957 分钟被写成「最近 3957h」,实际只有约 66 小时
- 同步脚本新增 playtime_2weeks_hours(分钟 ÷60 后的小时值),页面统一读这个字段;遇到没有该字段的旧快照时自动回退到按分钟换算,不会显示空白
- 成就请求的读取超时抛的是 TimeoutError,原先只捕获 HTTPError / URLError,一个请求慢一下就会让整个同步崩溃、连游戏库都写不进去;现改为捕获 OSError,任何成就数据拿不到都只跳过该游戏
- 总游玩时长不再缩写为「3.0k」这种丢精度的写法,改用千分位显示真实数值(3,021 h)
- 不足 1 小时的最近时长显示为「最近 <1h」,不再四舍五入成 0h
2.8.0 资产档案的 Steam 游戏库改为每天自动同步,不再是一张过期快照
2026-09-10 4 changes - 新增 scripts/sync_steam_games.py 与 .github/workflows/steam-sync.yml:每天北京时间 12:00 调用 Steam Web API,刷新游戏总数、总游玩时长、最近两周时长与 TOP 20 的成就进度,写回 src/data/steam_games_top20.json,再由构建上线
- 在此之前 /gear 的 GAMES 区块读的是一份 2026-09-04 的静态快照——游玩时长永远停在那一刻;现在它跟随账号真实数据,每天自己走一格
- Steam 那个 `profiles/<id>/games?xml=1` 公开接口现已强制登录(302 跳 login),个人游戏库只能走 Web API,因此需要 STEAM_API_KEY;同时账号隐私里「游戏详情」必须设为公开,否则接口返回空列表
- Key 未配置、或接口返回空时,脚本只输出 warning 并保留既有数据,既不覆盖也不让 workflow 失败
2.7.1 右侧栏跟随阅读滚动:被裁掉的下半部分不再「永远看不到」
2026-09-10 3 changes - 右侧栏 sticky 固定后,内容高于视口时(目录 + 作者卡 + 系列卡实测 1077px,可视仅 784px)底部约 293px 被 overflow 裁掉;而滚动条又被 scrollbar-width:none 与 ::-webkit-scrollbar 双双隐藏,读者既看不到、也无从知道可以滚——现在侧栏按正文阅读进度同步滚动,下半部分随阅读逐步露出
- 侧栏内容不溢出时保持原位、不做任何滚动;读者手动滚动侧栏(滚轮 / 触控)后暂停自动跟随 1.5 秒,避免与手动操作打架
- 目录进度竖线与侧栏跟随共用同一「正文阅读进度」基准,不再各算一套;滚动与窗口尺寸变化都会重算
2.7.0 首页不再回答「我有什么」,而是回答「你可以怎么读」:START HERE、READING PATHS 与此刻
2026-09-10 7 changes - 首页重排为 Hero → 此刻 → 从这里开始 → 精选 → 阅读路径 → 最近更新 → 专栏 → 影像 → 档案:先交给读者一条入口,再展示内容本身
- 新增 START HERE「从这里开始」:4 篇编辑选择(认识这个博客 / 工作方式 / 项目实践 / 最近在研究什么),刻意不按发布日期排序
- 新增 READING PATHS「阅读路径」:从零做一个博客、AI × 我的开发实践、本地优先三条路线,每个步骤都指向真实文章;与 SERIES 分层——路径讲「怎么读」,专栏讲「系列里有什么」
- 新增「此刻 / NOW」区块:渲染 site.config.mjs 里的 BUILDING / READING / FOCUS 三条状态,让首页保持「活着」的观感
- Hero 并入统计 Articles / Series / Categories;Tags 数量从首页移除(对访客无意义),归入档案页
- 精选收敛为 4 篇、最近更新收敛为 5 篇,其余交给档案页;最近影像改为三张等大横向,不再让图片成为首页视觉主角
- 清掉 index.astro 里旧版 hero「此刻」widget 的 268 行死代码:它的 .now-card 等类名与新 NOW 区块重名,且 :last-child 优先级更高,吃掉了第三张卡「把想法写清楚」的底边框,同时让标题与说明被 nowrap 裁切
2.6.1 取消「阅读路线」,改为文章之间的「阅读路径」:前置 → 当前 → 后续
2026-09-10 6 changes - 删除正文前的「阅读路线」章节列表——它与右侧目录重复,等于把 H2 复述两遍;本文内部导航只由右侧目录承担
- 新增正文前的「阅读路径」:只显示 前置 → 当前 → 后续 三行,表达文章之间的关系而非本文章节
- 新增 frontmatter 字段 prerequisite / followUp;不填时自动取同系列按 seriesOrder 排列的上一篇 / 下一篇,系列文章零维护即可成链
- 移除 route 字段与「从正文 H2 自动生成路线」逻辑;9 篇手写 route 一并清理,不再有伪路线
- 顶部「阅读路径」已展示的文章,底部「继续阅读」不再重复;跨系列或总纲文章可用 prerequisite / followUp 显式指定
- 写作规范、语法指南、Markdown 指南同步改写「阅读路线」章节;v2.4.0 说明文挂后记,记录这次对旧设计的推翻
2.6.0 文章页最终形态:压缩首屏、续读分层、底部四区,类型标签升级为 BUILD LOG
2026-09-10 7 changes - 首屏压缩:编辑式编号行合并为一行 TECH / 122 · BUILD LOG,顺序收敛为 编号→标题→一句话描述→元信息→TL;DR→阅读路线→分隔线→正文;tags 从首屏移入右侧栏 chips
- 阅读路线改为「叙事逻辑」而非章节目录复读:9 篇手写 route 重写为 问题→建立骨架→建立路标→… 的叙事路径
- 继续阅读按位置标注 下一步 / 相关 / 探索(首项主色强调);readNext 存在时隐藏时间序前后篇,消除同一篇重复出现
- 底部重排为 继续阅读 / 关于本文 / 评论 三区,带分隔线与英文小标题;相关阅读仅作无 readNext 时的探索兜底
- v2.4.0 的 description(讲什么)与 TL;DR(得到什么)去重;log 类型标签从 LOG 升级为 BUILD LOG
- 文章工具降噪:划词高亮工具条的三个「高亮」文字改为纯色块(保留 aria-label),去除重复态
- 首页专栏补回 5 部书系真实描述并去除篇数统计(此前被误回退)
2.5.0 两条新内容线:阅读与游戏,以及「继续阅读」扩写到 94 篇
2026-09-10 2 changes - 新增「阅读 / READING」与「游戏 / GAMING」两部书系:阅读线收拢 5 篇读书笔记与年度书单(悉达多、思考快与慢、沙丘、稍后读列表、2024 书单),游戏线收拢 4 篇 P 社与 Steam 记录(2785 小时、Steam 人生、Stellaris 两篇),把散落的读书与游戏内容第一次归位
- 「继续阅读」从 9 篇人工指定扩写到 94 篇:用标签特异度加权(越冷门的共标签权重越高)+ 标题重叠计算主题相关度,给每篇补 2–3 条跨系列推荐;同系列文章仍由页面自动续接,零跨题关联的 niche 文不强推
2.4.0 里程碑 从「有链接」到「有路径」:TL;DR、阅读路线、继续阅读与内容类型
2026-09-10 6 changes - 文章页正文前新增 TL;DR 与「阅读路线」:TL;DR 由作者在 frontmatter 手写三到五行结论,阅读路线默认由正文二级标题自动生成(可用 route 字段人工覆盖),十秒内告诉读者接下来要经历什么
- 文章结尾的「上一篇 / 下一篇」升级为「继续阅读」:优先展示作者人工指定的 readNext(带「读这篇 →」理由位),其次显示同系列下一篇,时间序的前后篇退到最末作为兜底
- 新增内容类型 TYPE(观点 / 教程 / 案例 / 评测 / 记录 / 笔记 / 资料七类),显示在文章编号行;全站 121 篇已按标题与栏目规则完成标注,读者在点开前就知道这是一篇什么
- 新增后记字段 postscript:文章发布之后的补充与修正以虚线卡片呈现,配合已有的 seed / bud / bloom 生长状态,让文章可以被继续修改而不是发布即冻结
- 八篇重点文章人工补齐关系字段(AI 工作流、个人出版物、118 篇复盘、AI 完整项目、工具选型、本地优先架构、Notion 迁移、自建博客),每篇给出三到五条结论与三条「为什么接着读这篇」的推荐
- 三篇写作规范文档(写作规范 / Markdown 写作 / 语法指南)补充新字段用法:frontmatter 表新增 type / tldr / route / readNext / postscript,「内容类型」与「阅读路径」两节说明如何填写,并标注 aliases 机制当前不生效的坑;new-post 脚本新增 --type 参数,附带全站 frontmatter 校验脚本
2.3.0 里程碑 从「文章集合」到「内容体系」:新增三部书系、三篇总纲文章与 45 处双向链接
2026-09-09 4 changes - 新增「个人出版物 / PERSONAL PUBLICATION」「AI 开发工作流 / AI WORKFLOW」「选择与放弃 / ON CHOOSING」三部书系,把 21 篇此前完全散落的旧文章按主题归位,全文站书系从 4 部增至 7 部
- 补上三篇总纲文章:《我的 AI 开发工作流:从想法到上线》串起五篇 AI 工具评测,《我如何做一个属于自己的个人出版物》把博客建设类文章组织成案例研究,《118 篇文章以后,我重新理解了博客》记录这次内容体系改造的判断与未完成部分
- 全站双向链接从 65 处增至 110 处,有链接的文章从 24 篇增至 27 篇;三篇总纲共引用 45 篇已有文章,被引用文章的「根系」板块会自动显示来源,文章之间第一次形成可读的路径
- 系列元数据与书系顺序数据源化:新增系列在 utils.ts 的 SERIES_META / SERIES_ORDER 与 blog 索引的 seriesId 兜底映射中同步注册,避免出现中文路径的死链
2.2.0 里程碑 首页重定位为出版物目录——此刻归 About,精选改 LATEST,Archive 提前
2026-09-07 7 changes - 首页从「模块拼装的个人主页」重做为整站的目录页(Index):只保留五个层级 —— Identity(身份)/ Index(这里有什么)/ Latest(最近在写什么)/ From the Archive(积累了多久)/ Collections(Series + Visual Notes,深入探索的入口)。整体信息量减少约三成,不再是 Dashboard 与出版物的混合体
- 删除首页「此刻 Current State」翻转卡,整体迁入 /about/ 成为新的「03 / CURRENTLY」区块(编号 + 状态 + 说明 + 最近更新日期,沿用 About 的档案式细线语言),原 About 的 03—06 章节顺延为 04—07。首页回答「这里有什么」,About 回答「这是一个什么样的人」,两者不再抢功能
- 删除首页「精选置顶」卡片区与「随机一篇」入口;原「最新精选 / SELECTED」改为「最新 / LATEST」,展示全站最新 7 篇,每篇补一行描述,保持编号 + 日期 + 标题 + 描述的横向档案列表(非卡片)
- 新增 INDEX 统计条:Articles / Series / Tags 全部由内容实时计算,配「进入归档」「浏览专栏」两个低干扰文字入口,替代原 Hero 中的品牌头像圆与 colophon 数字
- Hero 去品牌化:移除首字母头像圆与「Curated by」署名块,改为 EST. 2022 · CLOAK_ZENG 一行克制的 colophon;Hero 由双列(内容 + 此刻卡)收敛为单列,内容宽度限制在 760px
- 板块重排与降权:FROM THE ARCHIVE 提前到 LATEST 之后(年份 + 篇数,入口改为 OPEN ARCHIVE),SERIES 次之,VISUAL NOTES 移到最后并压缩存在感(三格等分、卡高 300px → 200px),让它成为档案的一部分而非首页第二个主角
- 原 Hero 翻转卡背面的「今日一言」随卡片移除,改挂到页尾收尾区,保留每日轮换逻辑(未静默丢失功能)
2.1.1 资产档案灯箱遮罩修复——[hidden] 被 display 覆盖导致整页常显
2026-09-05 2 changes - 修复 /gear/ 进入即全屏黑幕、右上角关闭 × 无效:.ga-lightbox 设了 position:fixed + display:flex,作者样式优先级压过浏览器对 hidden 属性的默认 display:none,使灯箱(深色遮罩)从页面加载起就常显且无法用 hidden 关闭。补 `.ga-lightbox[hidden]{display:none}` 显式守卫后灯箱恢复默认隐藏、点击装备图才打开、× / 背景 / ESC 均可关闭
- 同类隐患一并排查修复:/comments/ 的筛选条 .cm-filter(display:flex)与「加载更多」.cm-more(display:block)同样被 display 覆盖 hidden 而常显,补 [hidden] 守卫;全站核对 gallery / ArticleLightbox / Modal / ArticleShare / ArticleHighlight / archive chips 的显隐机制,均已有正确守卫或 class 切换,无同款问题
2.1.0 里程碑 回应档案 · 资产档案 · 图片双格式与离站入口——编辑式收尾与跨页脚本健壮性
2026-09-05 7 changes - 修复全站 ClientRouter(SPA 导航)下的跨页脚本报错:划词笔记 ArticleHighlight 与 /comments/ 的异步回调(Twikoo 取数、loadTitles)在导航离开后仍写已卸载的 DOM,导致 `Cannot set properties of null (setting 'hidden')`。现所有 DOM 写入统一走 alive() / mounted() 存活守卫与 setHidden() 空值守卫
- /comments/ 从「评论管理后台」重做为「回应档案」:编辑式 Hero + ALL / AUTHOR 文字筛选 + 回应流(作者 · 日期 → 内容 → 回应于《原文》)+ ABOUT RESPONSES + 档案式收尾;删除「讨论最热的文章 / 本月数据」两个数据看板模块,前台不再展示「未回复」
- /gear/ 从「工具棚」卡片 Tab 页重做为 ASSETS 个人资产档案:单列编辑式,四个编号栏目 GEAR / GAMES / PROJECTS / LIBRARY,装备改为「使用履历」行(ACTIVE / RETIRED 分组、价格降级、保留灯箱),游戏与项目 Top 行 + VIEW ALL;全部计数由四份 JSON 实时计算,无写死
- 首页「此刻 · 正在做什么」对齐:移除三卡装饰性图标圆(字形墨量不等导致视觉权重不齐),改为编号 + 状态徽标 + 发丝线分隔的档案式对齐,内容统一由 NOW.status 数据源驱动
- 文章图片改为双格式:convert-images.js 在生成同名 .webp 之外,额外输出同名压缩 jpg 灯箱源(长边 2560 · q82,原图仍归档 .backup_images);ArticleLightbox 点开优先加载同名 .jpg 原图,缺失时 onerror 回退 webp——历史单文件图片不会破图
- 写作指南「图片规范」按新管线重写:说明 md 里写 .webp、原图 jpg 随站部署、灯箱点开看原图的三份文件关系与体积建议
- 开往入口从「外链徽章」改为「离站站台」:极简线性列车 SVG 替代 emoji、去掉边框底色与圆角(无按钮感)、左侧 1px 分隔线、hover 显示 NEXT STOP · UNKNOWN;顶栏 / 移动抽屉 / 页脚三处常驻直链 go.html,满足开往挂链合规
2.0.1 此刻状态数据源统一 · 友链页编辑式化 · 厦门图集管线补完
2026-09-05 3 changes - 此刻状态改为单一数据源:site.config 的 NOW 收敛为 status[] 数组(en 短码 / zh 标签 / title / note / state / link),首页 Hero 此刻 widget 与 /now · CURRENTLY 均由同一数组驱动,删除两页各自手写的卡片与口径差异(本月目标 vs 本月主线等)
- 友链页从卡片墙重做为编辑式「同行者网络」:与 categories / series 同一套 hero + 整行目录语言,显示 11 位在线状态(friends.json + friends_health.json 数据驱动,无写死条目),收尾 END OF NETWORK
- 视觉档案厦门图集补完 WebP 管线:生成 .sm.webp 缩略图修复破图(此前 gallery.json 已引用但文件缺失,线上 500);原图 4096px / 7.4–8.3MB 压缩至 2560px jpeg ≈0.9MB 作灯箱源(对齐上海规格),原始文件归档 public/.backup_images(gitignore 排除,不随站部署)
2.0.0 里程碑 Edition 2.0:个人出版物与数字档案馆重构——四空间框架 · 编辑式布局 · 全站历史档案
2026-09-05 8 changes - 主导航重构为 READ / MAKE / ARCHIVE / ABOUT 四空间框架:接入原本闲置的顶部 Header 组件(分组 + 下拉子项,全部指向现有页面零 404),退役左侧 Sidebar,导航从 7 个平级项收敛为 4 个空间 + 下拉——贯彻「导航减法」,页面不再两栏抢第一层级
- 首页 Hero 改为编辑式封面:主标「云图札记」+ PERSONAL PUBLICATION · 2022—2026 眉标 + 「记录正在发生的事。保存值得留下的东西。」宣言;底部统计条改为出版信息 colophon(EST. / Articles / Columns / Tags 键值排印),视觉从博客仪表盘转向刊物扉页
- 首页 Layout v2 精修:此刻 widget 升级为 Current State(01–03 编号 + Building / Reading / Ongoing 状态徽标);彻底删除「咖啡 +1」dashboard 式互动(卡片、localStorage 逻辑、CSS 与 /now 页条目一并清除);专栏从彩色图标卡片改为目录行(编号 / 名称 / 简介 / 篇数 / 箭头);新增 Recent Visual 最近影像(真实相册大图 + 双小图)与 END OF ISSUE 收尾版权带
- 文章页接入编辑式头部:分类英文代码 + 稳定序号(如 ESSAY / 058,按发布时间正序分配、最早为 001),替换「首页 / 正文」面包屑与孤立分类徽章;相关文章等底部区块统一为全站「中文主标 + 英文副标」模式
- 归档页重构为 DIGITAL ARCHIVE:新增年份 × 月份档案矩阵(108 个月份单元按篇数归一化柱高,点击可深链 /archive?year=&month=);260 个标签不再全量平铺,改为高频 Top 12 常驻 + 其余折叠(?tag= 深链命中折叠区标签时自动展开)
- 更新日志页自身重做为「网站历史档案」:CURRENT 当前状态 → EVOLUTION 生长阶段(FOUNDATION / RENEWAL / GARDEN / EDITORIAL / ARCHIVE)→ MILESTONES 里程碑 → 年度 HISTORY;17 种原始变更类型收敛为 6 类筛选与徽标;移除「更新频率 / 平均间隔」等 KPI 式统计
- 归档与索引页头去除 Grove 花园时代隐喻:标签花园 → 标签 / TAGS、分类园圃 → 分类 / CATEGORIES,文案改写为编辑式表述;首页 Featured 卡徽标由写死的「博客」改为真实分类;区块小标题统一「中文主标 + 英文副标」顺序
- 恢复「开往」外链至三处常驻位(顶栏等宽徽章 / 移动端抽屉快捷区 / 页脚),修复导航减法时误删开往链接导致的挂链不合规问题
1.9.8 全站问题修复:构建可靠性、CSP 注入、数据同步与搜索体验
2026-08-19 11 changes - 修复构建中断:标签含斜杠(如 CI/CD)会让标签页 URL 嵌套、构建报「Missing parameter: tag」中止,已改为无斜杠命名并全站校验标签/分类/系列无危险字符
- 修复 CSP 双通道失效:Cloudflare _headers 的 CSP 之前未挂载到 URL 规则导致边缘不生效(重写同步脚本挂载到 /* 规则块并清理历史残留);meta CSP 改为布局直接注入每页(原 vite 插件在 Astro 7 下几乎不生效),全站 378/380 页生效;font-src 放行 data: 内联字体(Vite 会把小于阈值的 woff2 内联为 base64,之前被拦截导致字体回退)
- 修复 GitHub 项目数据同步断裂:同步脚本写到孤儿文件、资产页读取另一份数据,导致项目列表从不上线;已修正输出路径与 workflow 提交路径
- 修复 Service Worker 未注册:sw.js 一直存在但从未 register,PWA 离线缓存未生效;补注册并修正预缓存里的失效 sitemap 引用
- 修复三处 /sitemap-index.xml 失效引用(布局链接、_headers 规则、Service Worker),统一指向自定义的单文件 /sitemap.xml
- 修复搜索结果正文被压缩成单行、可读性差的问题,正文预览改为最多 3 行;清除搜索页误入 HTML 的字面量字符
- 修复归档页空白:is:inline 脚本里误写 TS 泛型 querySelector<HTMLElement>,浏览器把 <HTMLElement> 当比较运算符、返回 false,页面永不显示;移除泛型并排查全站 is:inline 脚本(Tabs 组件一并修正)
- 修复回想页未区分作者回复:作者昵称匹配列表缺少实际 Twikoo 评论昵称 gjcloak,导致作者回复不被识别(计数为 0、无「· 作者」标记);已补充并保留历史别名
- 「此刻」页重构(方案 A):当前快照改为细线状态行(去掉卡片阴影/胶囊),此刻的演变时间线放大并加「最新」标记,一言墙收敛为「今日一言 + 全部语录折叠」——页面从约 4000px 缩短到 1340px,消除一言墙平铺 100 条的杂乱感;一并修复移动端横向溢出
- CSP 收敛为单一来源 src/config/csp.mjs(配置 / 布局 / 同步脚本共用);移除从未激活的加载动画与 loader.css;build.sh 可移植化;新增跨平台 pagefind 运行器;修正 pnpm 构建许可占位符
- 版本号与 README 对齐实际;取消跟踪部署冗余的图片备份目录;恢复 Google Analytics(Cloudflare 部署下访客统计正常)
1.9.7 全站性能与 SEO 优化:按需加载、结构化数据、sitemap 图片扩展与触控目标
2026-08-17 4 changes - KaTeX 数学公式样式改为按需加载:正文含公式时才动态注入 katex.css,非文章页不再加载 24KiB 公式样式
- 归档页新增 ItemList、分类页与标签页新增 CollectionPage 结构化数据;sitemap 改为自托管生成(src/pages/sitemap.xml.ts),加入 sitemap:image 图片扩展,每篇文章附 OG 分享图(缺失自动回退 default.webp)
- 移动端头部按钮触控目标提升至 ≥44px(搜索 / 主题 / 菜单 / 阅读设置),符合 WCAG 2.5.5;复核全站对比度(次要 / 三级文本色均 ≥4.5:1)与 reduced-motion 支持
- 相册缩略图加载占位背景,避免白屏闪烁;首页 LCP 复核为纯文本渲染(无需图片优先加载);修复归档 / 分类 / 标签页脚本类型问题
1.9.6 访客留言页重新设计:回应 · 编辑化评论汇总
2026-08-17 6 changes - 访客留言页按「编辑化评论汇总页」设计规范重新设计为「回应 / RESPONSES」:Hero 用大号衬线「回应」标题 + 描述「来自这个博客的每一句话。」+ 全站统计,桌面双栏(评论时间线 + 侧栏)
- 评论时间线:每条回应以日期(年份 + 月日)为锚点,含首字头像、昵称、时间、正文、ON ARTICLE 来源文章(《标题》可跳转)、查看文章 / 回复操作;作者(Cloak)回应带蓝色「· 作者」标记
- 筛选与分页:全部 / 作者回应 / 未回复 三种筛选(带计数)+ 最新 / 最早排序,每页 20 条、底部「加载更多回应」;文章标题从 preview-index.json 自动解析
- 侧栏:关于回应介绍 + 回应总数 / 文章被讨论 / 作者回应 统计 + 讨论最热文章 TOP5 + 本月数据;移动端改为单栏(Hero → 筛选 → 评论列表 → 侧栏),日期并入评论头部
- 空状态独立展示(「还没有回应」+ 小圆点),不再遮挡内容;整体遵循规范(白、留白、细线、无卡片墙、无大面积圆角与阴影)
- 启用 Cloudflare Web Analytics(RUM):CSP 放行 static.cloudflareinsights.com(script-src)与 cloudflareinsights.com(connect-src),移除构建时删除 RUM 脚本的插件(astro.config 与 _headers 同步)
1.9.5 十项改进:深色模式三态、搜索增强、热力图、安全加固与 Lighthouse CI
2026-08-16 11 changes - 深色模式系统跟随:ThemeScript 重写为 auto/light/dark 三态切换,prefers-color-scheme 媒体查询回退,Header 主题按钮新增「自动」图标
- 此刻页新增 GitHub 风格发布热力图:53 周网格展示写作节奏,5 级颜色映射,暗色模式适配,统计本年发文数与最高产日期
- 搜索增强:搜索结果新增 OG 缩略图展示,支持 tag:/category: 语法筛选,输入框下方语法提示
- 数学公式支持:集成 remark-math + rehype-katex,文章中可直接使用 $...$ 和 $$...$$ 语法渲染 KaTeX 公式
- 文章骨架生成器 scripts/new-post.mjs:pnpm new 一键创建带 frontmatter 模板的新文章
- 构建时链接扫描 scripts/check-links.mjs:构建完成后自动检查内部链接 404 和图片路径,集成到 build 脚本链
- Lighthouse CI 自动化:lighthouserc.json 配置 8 个页面 desktop preset 审计,GitHub Actions workflow 在 push/PR 时自动运行,结果输出到 Step Summary 表格
- 结构化数据补全:about 页新增 ProfilePage JSON-LD,archive/gallery/friends 页新增 CollectionPage/ImageGallery JSON-LD,now 页新增 WebPage JSON-LD
- 阅读体验增强:上一篇/下一篇卡片新增 OG 缩略图,阅读设置新增页面宽度三档调节(窄/标准/宽)
- 字体加载优化:Google Fonts 权重精简(Noto Serif SC 600 合并到 700),减少请求数量
- 安全加固:_headers 新增 Strict-Transport-Security(HSTS preload)和 X-DNS-Prefetch-Control,统一 lock 文件为 pnpm-lock.yaml
1.9.4 新增此刻页、代码块增强与搜索命中高亮
2026-08-15 8 changes - 新增独立 Now 页 /now(此刻档案页):当前快照带状态徽章与详情链接 + 此刻历史时间线(NOW.history 留档看演变)+ 一言墙(今日一言、随手换一条、100 条语录浏览),页脚新增「此刻」入口
- 代码块增强:新增代码行号(shiki 每行自动编号)、语言标签升级为 pill 徽章样式,配合原有复制按钮,技术文章更易阅读与引用
- 站内搜索命中词高亮:从搜索页点进文章后,会在正文自动高亮搜索关键词(黄色标记并自动滚动到首个命中),搜索→阅读衔接更顺畅
- 修复 CSP 阻断 Google Fonts 导致全站字体不加载:style-src 放行 fonts.googleapis.com、font-src 放行 fonts.gstatic.com(astro.config 与 _headers 同步)
- 移除 Mastodon 嘟文时间线页 /mastodon:独立页面与站点主线关联较弱,社交入口(文章分享到 Mastodon、页脚社交链接)不受影响
- 移除书房页 /library:资产页已有「书影音」模块,功能重复;导航与侧边栏「书房」入口同步移除
- 按 Lighthouse 报告优化首屏性能:Google Fonts 样式表改为异步加载(消除约 1.4s 渲染阻塞)、Google Analytics 脚本延迟到页面末尾加载(gtag.js 约 165KiB 不拖累首屏)、修复对比度不足(text-tertiary 加深至 #6B7280,达标 ≥4.5:1)
- 相册页增强:缩略图自动生成(保持图片原格式 JPG,脚本 scripts/convert-gallery.mjs 自动生成并填入 gallery.json 的 thumb)、灯箱支持上一张/下一张与键盘 ←→ 切换、随机浏览与计数器、显示地点/日期/描述、优化可访问性(aria-modal + 焦点管理)、gallery.json 扩展 date/location/description 字段
1.9.3 新增相册、游戏内容扩充与 RSS 订阅
2026-08-15 3 changes - 新增相册页 /gallery:书影音等收藏以分组网格展示(点击放大灯箱,支持标题/备注、Esc/点击背景关闭),导航新增「相册」入口,后续可放入旅途与生活摄影
- 新增 RSS 订阅入口:侧边栏日夜间切换按钮旁增加 RSS 图标链接直达 /rss.xml,方便读者订阅更新
- 侧边栏精简:移除分类列表,减少视觉噪音、聚焦导航
1.9.2 正文图片 srcset 注入、图片转换自动化及整站体验优化
2026-08-15 9 changes - 正文图片自动注入真实宽高与响应式 srcset:为每张正文图生成 480/800w 响应式副本,插件按图读取元数据注入 width/height/srcset/sizes,消除加载布局抖动并适配不同屏幕
- img:convert 图片转换脚本自动化:转换后自动把文章里的 .jpg/.png/.gif 引用更新为 .webp(覆盖 Markdown 图片/链接与 <img> 标签,保留 URL 参数,跳过外部图与示例占位图),无需再手工修改
- 原文件集中归档:img:convert 转换后把原始图片自动移动到 public/.backup_images/(保留相对路径,webp 留在原引用位置),public 各目录只保留 webp;.gitignore 增加归档目录,避免备份被误提交与误部署
- 修复图片宽高/srcset 在 .md 文章上失效:Astro 内容层在 worker 中渲染 .md 时 process.cwd() 不是项目根导致读不到元数据,改为多候选路径探测后所有文章(md/mdx)均正常注入
- 读书笔记支持一键导出备份:笔记面板新增导出按钮,按黄/绿/蓝分类导出为 Markdown 文件(含引用原文与笔记内容),重要摘录不再怕丢
- 404 页增强:新增站内搜索框直达搜索,并展示最近 5 篇文章,访客迷路也能快速找到内容
- 修复 scan-posts.sh 重复累计发布数量(改为按北京时间当天扫描)、filterPublished 增加中国时区偏移避免凌晨构建文章晚一天上线
- 整站性能与整洁度:删除孤儿 .pagination 样式、清理 42 处 .prose :global()(兼容 Lightning CSS 压缩)、清理 search 页死代码、首页 JSON-LD 去重、移除重复的 Ctrl+K 快捷键绑定
- 修复文章页相关文章类型报错:filter(Boolean) 改为类型守卫窄化,消除构建期 TypeScript 错误
1.9.1 更新日志页增强:版本规划可视化
2026-08-15 5 changes - 更新日志页新增更新频率统计:侧边栏显示「X 天前更新」与「平均每 X 天一次」两个指标
- 更新日志页版本号新增锚点直达:#v-x.y.z 可精确定位到某个版本,版本号旁一键复制链接
- 更新日志页新增里程碑版本标记:X.Y.0(如 1.9.0)自动打上「里程碑」徽章并以花形节点高亮,区分小更新与里程碑
- 更新日志页新增「变更→文章关联」:changelog 数据支持 post 字段,版本卡底部显示「阅读这篇更新的详解」链接到对应文章
- 版本号规划规则明确化:发布变更第一位(1.9.x → 2.0.0)、里程碑变更第二位(1.8.x → 1.9.0)、其他更新只变更最后一位(1.9.0 → 1.9.1),更新日志页同步展示三档规则
1.9.0 里程碑 划词高亮读书笔记 + 搜索升级 Pagefind
2026-08-15 11 changes - 新增划词高亮 + 读书笔记:选中正文即可用黄/绿/蓝三色荧光笔高亮、随手记笔记,刷新后自动恢复;右下角笔记面板可跳转/删除;数据仅保存在本地浏览器,不会上传
- 站内搜索升级 Pagefind:中文分词、模糊匹配、全文检索,替代原前端子串匹配;支持 /search?q= 直达搜索;热门标签改为构建期静态渲染
- 双向链接索引构建提速:改为在 getStaticPaths 只构建一次(原每页渲染重建全量索引,构建复杂度 O(N²))
- 别名/双链映射逻辑统一到 preview-index.json(删除孤儿 generate-alias-map 脚本与 search-index.json 路由),frontmatter 只在一处解析
- 修复移动端右上角菜单按钮点击无效:Sidebar 中 onclick 误赋给 window(缺 overlay. 前缀),任何点击都会立刻关闭抽屉
- 修复双链预览大量失效:preview-index 解析遇 CRLF/BOM 时 114 篇 title 解析失败,现已全部正常生成
- 修复装备页图片防 CLS 失效(sharp metadata 未 await)、搜索统计混入未发布文章、sync-csp 在 CRLF 文件下 CSP 写错位置
- 修复读书笔记面板无法关闭(display:flex 覆盖 hidden 属性)与高亮/笔记样式失效(Astro scoped 样式不作用于动态 DOM,改 is:global)
- 搜索相关性改进:只索引纯正文(data-pagefind-body,排除侧边栏/相关文章/上一篇下一篇/页脚/导航);分类字段不再参与全文匹配(前端改用 preview-index 做分类标注与筛选),避免搜分类名命中大量无关文章
- 搜索结果按相关性强弱分组:标题/描述命中或正文出现 3 次以上为强相关正常展示;仅正文提及 1~2 次的折叠为「还有 N 篇仅在正文提及的文章」按钮(可展开),弱相关内容不再抢眼
- 搜索结果标题、描述、摘要统一高亮所有匹配词(Pagefind 改用纯文本 plain_excerpt + 前端 highlightMatch 统一处理)
1.8.3 文章页标题区重设计
2026-08-14 2 changes - 标题去竖条:移除 .post-title 的 border-left 蓝色竖条 + padding-left(原居中容器内左对齐竖条像引用块),改为纯大号衬线标题并加 text-wrap:balance
- 新增分类 kicker:分类以蓝色圆角 pill 标签形式置于标题上方,可点击进入分类归档;面包屑精简为「首页 / 正文」,去掉旧花园风的叶子图标残留
1.8.2 文章页右栏减负 + 目录进度线 + 标题锚点
2026-08-14 4 changes - 右栏减负:合并「作者」与「文章信息」为单张「关于本文」卡,删除与正文底部「相关文章」重复的「推荐阅读」卡,右栏由 5 张减到 3 张(目录/反向链接、关于本文、系列导航)
- 目录卡新增竖向阅读进度线(.toc-rail + .toc-rail-fill),随正文阅读进度填充,配合既有的 TOC 高亮形成时间轴式导航
- 标题锚点链接:.prose 内 h2/h3 鼠标悬停时左侧出现 #,点击复制带 #slug 的完整链接并用 Toast 提示,便于深链分享小节
- 修复 ScrollProgress 顶部进度条的「章节名称气泡」因上轮 TOC 移入右栏后选择器失效(#tocCol 已不存在)的问题,改为 #tocLinks 选择器恢复章节感知
1.8.1 文章页精简为双栏 + 夜间模式侧栏修复
2026-08-14 3 changes - 移除「专注阅读模式」:删除 Header/Sidebar 的 eye 图标按钮、对应 JS 逻辑,以及 post.css/pc.css 中的 data-focus 样式(保留 Aa 阅读偏好设置)
- 文章页从四栏精简为双栏:去掉左侧独立目录列,将「目录 + 反向链接」合并进右侧栏顶部卡片;正文宽度由 720px 加宽到 760px,阅读更舒展
- 修复夜间模式下左侧全局导航栏背景仍为浅色的问题:在 [data-theme="dark"] 中补充 --bg-sidebar: #0B1120,使侧栏与暗色主题统一
1.8.0 里程碑 整体视觉改造:蓝白风、侧边栏、字体统一与首页重构
2026-08-14 7 changes - 全站配色从黑白灰改为蓝白活力风:主色 #1A1A1A → #2563EB,暗色模式柔和蓝 #60A5FA;背景改暖白 #F8FAFC;卡片阴影从无改为柔和分层(hover 蓝色光晕)
- 侧边栏增强:Logo 改为蓝色渐变圆角底;导航每项加 SVG 图标;新增圆角搜索框(支持 ⌘K 快捷键);新增「分类」区块(自动读取文章数);按需求移除左侧标签云
- 字体全站统一为衬线体 Noto Serif SC:--font-sans/heading/prose/mono 全部指向衬线,仅代码块/行内代码/语言标签保留等宽 --font-code(JetBrains Mono);从 Google Fonts 移除已不用的 Inter
- 页脚固定到底部:Footer 改为 position:sticky; bottom:0,滚动时始终钉在视口底部,实心背景 + 顶部分隔阴影
- 修复 .mdx 文章 :::tip/:::note/:::warning/:::abstract 提示框不渲染(裸文本):将 directive 等插件同时挂到 MDX 继承的 markdown.remarkPlugins/rehypePlugins,并把 tech-local-first.mdx 的非标准写法 :::warning 文案 改为 :::warning[文案] 方括号形式
- 修复点击分类/标签页空白:分类页与标签页 <main> 被内联 opacity:0 隐藏却缺少揭示脚本,补上与归档页同款的 astro:page-load 揭示脚本
- 首页布局重构,统一与整体协调:四个区块标题(精选/最近更新/全部文章/专栏)统一为带蓝色竖条的 .section-head;Hero「此刻」卡片花园配色(棕咖啡/bud/bloom)全部改为蓝色主色系,翻面与引用标记同步改蓝;头像字母在蓝渐变上改白;eyebrow 叶子图标改为蓝色小圆点;移除 Hero 装饰植物 SVG
1.7.5 文章图片渲染修复、Cloudflare 构建稳定性与类型安全
2026-08-12 5 changes - 修复 rehype-image-figure 插件导致文章独立图片整段丢失的 bug:原实现把 figure 塞进 p 标签内部后再删除整个 p,配图随之消失;现改为在 p 的父级整体替换为 figure.post-image,文章配图恢复渲染
- 从 public/.backup_images 备份恢复 3 张缺失的文章配图(jpg 转 webp),系统稼动率一文三张图解全部恢复
- 移除未在 package.json 声明的 unist-util-visit-parents,改用已在依赖中的 unist-util-visit 重写图片插件,修复 Cloudflare Pages 构建失败(pnpm 严格模式无法解析未声明依赖)
- 首页 TypeScript 类型修复:utils.ts 为 filterPublished/sortPosts 等补全 CollectionEntry 类型,首页系列分组、按年分组、系列元数据补全类型标注,消除全部编译错误
- 修复归档页 SPA 导航空白:归档页初始化脚本原为 is:inline IIFE 仅首载执行一次,View Transitions 导航进入时页面保持 opacity:0 隐藏;改为监听 astro:page-load 每次导航后重建索引并显示,click 筛选委托仅绑定一次;顺带修复归档页 yearGroups 类型错误
1.7.4 分类标签页 SSG 化、加载样式提取与无障碍修复
2026-08-12 5 changes - 分类页和标签页从 JS 跳转改为完整 SSG 渲染:搜索引擎可抓取文章列表,标签页新增关联标签模块,两个页面均有分类/标签导航条
- 文章页 JSON-LD image 字段增加三级回退:heroImage → OG 分享图 → logo.svg,无封面文章也有结构化数据图片
- 为 Header、ReadingSettings、MainLayout、BlogPost 中 7 个缺失 type 属性的按钮补充 type=button,防止表单上下文误提交
- 加载动画样式从 MainLayout 内联提取为独立 loader.css(8.3KB),MainLayout 从 512 行缩减至 155 行,同时消除与 global.css 重复的 focus-visible 样式
- 版权区 CC 协议链接移除内联 style,统一到 post.css 的 .copyright a 规则,下划线样式与站点一致
1.7.3 友链独立成页,关于页重写为数字花园手记
2026-08-11 6 changes - 友链独立成页 /friends:从关于页迁出,新增友链页(标题+在线徽标+增强友链卡片+换链规则+我的友链信息卡),导航新增「友链」入口
- 关于页重写为「数字花园手记」:手记开篇、花园生长状态(seed/bud/bloom 三态实时统计)、正在生长(种子圃:未发布的 5 篇文章 + 迭代与修订:最近修订文章)、园丁守则与被造访的花园并排
- 关于页移除与首页/资产页/页脚重复的内容(此刻、花园入口、书橱、游戏、社交链接、每日一言),实现每页内容独特独有
- 内容数据外部化:园丁守则移入 site.config.mjs,书单改为从 books_music_movies.json 读取;种子圃直接读取未发布的待发布文章
- 关于页字体统一为衬线 Noto Serif SC(原 8 处等宽 JetBrains Mono 统一),模块间距加大至 48px 更透气
- 清理 about.astro 约 400 行无对应内容的残留 CSS(游戏/此刻/入口/书橱/连接等)
1.7.2 日期过滤、定时构建与分类精简
2026-08-10 4 changes - filterPublished 日期过滤函数:未来文章构建时不生成页面、不进索引、不进 RSS,13 个页面全部接入
- GitHub Actions 定时构建:每天 00:00 北京时间扫描文章生成日志 + commit + push,触发 CF Pages 重建
- 分类精简为 6 类:产品→技术、阅读→随笔、观影→随笔、方法论→思考,共合并 7 篇文章分类
- 去除日志中已经过时或移除的内容,避免误解
1.7.1 随便逛逛与 OG 分享图自动生成
2026-08-08 7 changes - 首页 Hero 区新增「随便逛逛」按钮,随机跳转任意一篇文章,契合花园漫游隐喻
- OG 分享图自动生成:新增 scripts/generate-og.mjs,构建期为每篇文章生成 1200×630 分享图,无封面文章使用 default 兜底图
- 相关文章算法升级为加权排序:标签重合 ×2 + 同分类 +1,相关度更精准
- 本地搜索增强:索引新增正文全文检索,搜索页新增分类筛选条
- 文字对比度优化:--text-tertiary 由 #777777 调整为 #666666,达到 WCAG AA 标准
- 首页结构化数据增强:补充 Person 与 SearchAction,提升 SEO 与搜索体验
- 新增 ArticleShare 统一分享组件:横向排列的「分享」下拉按钮(微博、X/Twitter、复制链接)和「Mastodon」入口按钮,样式统一;Mastodon 因去中心化特性保留独立弹层(需填实例域名),域名记忆在 localStorage
1.7.0 里程碑 PC端与移动端样式分离,响应式架构重构
2026-07-26 13 changes - 样式架构重构:PC端与移动端样式完全独立,global.css 仅保留基础样式,响应式规则拆分至 pc.css 和 mobile.css
- 新增 mobile.css(8945字节):移动端专属样式,含 4 个断点(480/640/768/992px)、触摸友好尺寸、底部导航栏、TOC抽屉组件
- 新增 pc.css(9801字节):PC端专属样式,含 4 个断点(769/993/1201/1401px)、悬浮交互、专注阅读模式、打印样式
- 移除 global.css 中约 400 行响应式媒体查询,文件体积减少约 36%
- 移除 post.css 中约 200 行响应式媒体查询,保留纯文章页面基础样式
- 装备页面移动端不再需要左右滑动,Steam游戏和装备列表改为单列垂直布局
- 文章页面移动端内容居中显示,移除首行缩进,正文完整可见,无需横向滚动
- 文章页移动端底部导航按钮(目录/评论/返回顶部)添加点击事件处理,TOC抽屉支持遮罩层关闭
- 移动端 Steam 游戏列表改为单列卡片布局,封面图缩小,文字自动换行
- 移动端装备列表保持单列布局,图片缩小至48px,内容完整显示
- 移动端 GitHub 项目卡片单列显示,描述文字最多显示2行
- 新增 src/styles/README.md 样式架构说明文档,包含文件结构、断点设计、维护建议
- ArticleBehavior.astro 新增移动端底部导航逻辑:TOC抽屉开关、评论区跳转、返回顶部平滑滚动
1.6.1 Astro 7 升级,构建兼容性修复
2026-07-22 5 changes - Astro 从 6.4.8 升级到 7.1.3,@astrojs/mdx 从 6.0.2 升级到 7.0.3
- astro.config.mjs 迁移到 Astro 7 新 API:markdown.processor 替代废弃的 remarkPlugins/rehypePlugins 链式调用
- 添加 @astrojs/markdown-remark 到 dependencies,解决 Cloudflare Pages 构建找不到模块的问题
- 修复 MDX 中 Shiki 不支持 tmux 语言的错误,将代码块语言从 tmux 改为 bash
- 首页「全部文章」列表改为按日期倒序,置顶文章不再特殊处理
1.6.0 图片优化插件,搜索增强,BlogPost 样式拆分
2026-07-19 6 changes - 新建 rehype-image-figure 插件:文章正文 <p><img> 自动包装为 <figure class="post-image">,自动添加 loading="lazy" + decoding="async",有 alt 时生成 figcaption
- search-index.json.ts 新增 excerpt(前300字摘要)和 body(前1500字全文索引)字段,搜索结果新增匹配上下文片段展示
- BlogPost.astro 样式拆分:~1075行 CSS 提取至 src/styles/post.css,BlogPost.astro 从 1453 行降至 377 行
- 删除冗余脚本:scripts/optimize-images.js、scripts/diagnose-font2.py、scripts/analyze-chars.py,保留 8 个核心脚本
- BlogPost.astro 样式丢失修复:post.css 从 global.css @import 改为 BlogPost.astro frontmatter import,避免 Astro scoped hash 丢失
- CSP 修复:移除未使用的 GTM/Google Analytics 域名,新增 static.cloudflareinsights.com(script-src+connect-src)、nf.lzplus.top(connect-src,Twikoo API)、thirdqq.qlogo.cn(img-src,QQ 头像)
1.5.2 资产体积大幅精简,构建验证通过
2026-07-18 7 changes - 字体子集化:13个woff2文件,9.7 MB → 4.76 MB(-51%),JetBrains Mono从~100 KB/文件→~19 KB/文件;原始字体备份至 public/fonts/original/
- 删除冗余图片:public/img 与 public/gear 下10个 jpg/png 文件(已有 webp 版本),节省 1.79 MB;原始文件备份至 public/.backup_images/
- 封面图片 resize:Interstellar(3.42 MB → 113 KB,-96.8%)、The Dark Side of the Moon(307 KB → 17 KB,-94.5%)、The Shawshank Redemption(326 KB → 83 KB,-74.5%)
- WebP 重压缩:Inception.webp(135 KB → 21 KB,-84.3%)等多张大图质量压缩(quality 82)
- BlogPost.astro JSON-LD 增强:image 改为 ImageObject 结构化,新增 keywords、articleSection、wordCount、timeRequired、inLanguage 字段
- gear.astro 添加 build-time 图片尺寸注入:用 sharp 读取所有装备图宽高,注入 <img width/height> 属性,消除 CLS
- 删除死代码:src/plugins/remark-directive-to-html.js、src/styles/global.css.no-layers、src/styles/global.css.prefix(共3个未引用文件)
1.5.1 配置层规范化,修复多处硬编码
2026-07-18 5 changes - site.config.mjs 新增 BRAND 对象(name/tagline/description),统一管理品牌名"Grove"
- theme.astro / Footer.astro 硬编码 Grove 替换为 BRAND.name/BRAND.description
- about.astro 合并重复的 SOCIAL_LINKS import
- gear.astro GitHub 链接替换为 SOCIAL_LINKS 动态读取
- blog/index.astro seriesIdMap 改为优先读取 frontmatter seriesId,兜底 slugify
1.5.0 里程碑 全站花园主题化,主题更名为「Grove」
2026-07-17 21 changes - 首页完全重写:byline 署名卡(杂志感三栏布局)+ garden 板块 bloom 边框发光 + article-row 年轮时间线(生长点+年份渐隐线+标题衬线化)+ 专栏区(专属 SVG 图标+CSS 主题色变量)
- 归档页完全重写:花园俯视图 SVG 装饰 + 年份时间轨道(年份数字锚点+垂直渐隐线)+ article-row 统一样式(6px 生长点+双栏分类+hover 绿条)+ 搜索框无结果状态
- 博客列表页重设计:顶部植物 SVG 装饰 + section-label 加 SVG 图标 + featured 卡片加 grow dots + 系列卡加 › 符号 + 全部文章区移至归档页
- 标签页改为「标签花园」:文章数分级为 bloom/bud/seed 三档生长状态,圆点用对应颜色发光,字号按频率动态缩放,图例说明
- 分类页改为「分类园圃」:每个分类专属 SVG 图标(代码/羽毛/工具/调色板/咖啡/书/嫩芽)+ 占比进度条 + 主题色边框
- 404 页面改为「花园里没有这条路」:迷路小植物 SVG 摇摆动画 + 问号花苞 + 飘落花瓣 + 双行动按钮(返回入口/逛逛文章)
- 评论页植物 SVG 全部重画:10 种新植物(郁金香/多肉/藤蔓/樱花树/向日葵/蕨类/蘑菇/盆景/仙人掌/玫瑰),空状态改为多肉风
- 关于页顶部改「园丁名片」、工具棚标题「工具棚」、更新日志标题「生长年轮」+ 植物装饰
- growth 状态视觉全站统一:6px 圆点(bloom 珊瑚色+发光、bud 绿色、seed 灰),文章列表/tag 云/分类园圃共用同一视觉语言
- 文章详情页面包屑分类前加 SVG leaf 图标,评论区上方加「种下你的想法」引导语(小植物 SVG + 摇摆动画)
- 文章详情页「相关阅读」→「伴生植物」:加入 growth 圆点、专属标题装饰、右侧提示文字「同一片土壤生长」
- 文章详情页反向链接区「引用了」→「根系」:加 SVG 根系图标、每个链接前加 5px 圆点装饰,呼应数字园丁主题
- 专栏详情页(series/[id])完全重写:植物 SVG 装饰 hero、专栏文章加 growth 圆点、hover 右移+绿框+箭头、分页进度圆点视觉化
- 主题介绍页 (theme):副标题加入「数字园丁·衬线正文·生长状态体系」、描述更新、核心特点新增「数字园丁」卡片(绿芽 SVG 图标)
- 品牌名全局替换:Ink Editorial → Grove,涉及 theme.astro(标题/hero/描述)、Footer.astro(底部链接)、BlogPost.astro(品牌色注释)
- 整站内容区宽度统一为 --max-width(1200px):index.astro(home-garden/archive/columns 900px→1200px)、archive.astro(1000px→1200px)、tags/index.astro(900px→1200px)、categories/index.astro(900px→1200px)
- 首页 Hero 新增「此刻」动态 widget:右侧 360px 卡片,4 个状态项(正在种下/在读/今日一杯/本月目标),「在读」和「种下」去掉跳转;咖啡项动态计数(点击 +1,localStorage 跨刷新持久,跨日重置),点击图标有 0.4s 弹跳动画;整体点击翻转显示「今日一言」(从 60s.lzplus.top/v2/60s 拉取 data.tip,每日缓存);图标与文本纵向居中、label 字体统一为衬线、顶部 2px 绿色边竖线呼应 byline 视觉锚点
- 首页 Hero 改为 3 列布局填满空白:byline 卡片(1fr) + 快捷入口 220px 中间栏(归档/标签/分类/访客/日志/主题 6 项,每项图标+名称+计数) + 此刻 widget 340px;3 栏视觉重量对称,byline 不再孤立左侧;1180px 以下隐藏快捷入口变为 2 列,760px 以下堆叠为 1 列
- 「快捷入口」从 hero 中抽出,升级为全局悬浮按钮 QuickNav(位于右下角、回到顶部之上):9 宫格图标,悬停绿色高亮;点击展开 220px 面板,6 项入口(归档/标签/分类/访客/日志/主题),展开/关闭有 fade+scale 动画和 grid↔close 图标互换;点击外部或 ESC 关闭;hover 项背景 6% 绿 + 右移 2px
- 删除 QuickNav 悬浮按钮组件,恢复返回顶部按钮为独立 fixed 定位(bottom 24px / right 24px / z-index 90)
- 首页 Hero 重新设计:去掉 byline 卡片,改为内联签名条(虚线分割线 + 44px 头像 + Curated by 标签 + 名称 + 简介 + 4 项统计「X 篇文章 · X 分类 · X 专栏 · X 标签」);hero 回归 2 列布局(1fr + 380px 此刻),去掉中间栏;540px 以下头像与文字纵向堆叠
1.4.1 CSS 架构重构 + 组件拆分 + 变量统一
2026-07-16 13 changes - BlogPost.astro 拆分为 ArticleBehavior.astro(阅读行为:位置记忆/专注模式/滚动监视/移动手势/懒加载)和 ArticleLightbox.astro(灯箱逻辑:缩放/捏合/平移/键盘导航),岛屿架构清晰分离
- global.css 按 @layer 架构重写:base(重置/排版/动画/无障碍)/layout(网格/容器)/ui(组件)/utilities(响应式/暗色覆盖),避免冲突,提升可维护性
- Header.astro 新增 skip-link「跳过至正文」锚点,MainLayout.astro main 标签添加 id="main-content",键盘用户 Tab 直接进入正文
- GrowthBadge 深色模式 glow 统一移至 global.css utilities 层:bloom 发光 rgba(231,111,81,0.55),bud 微光 rgba(116,198,157,0.35)
- planted 字段批量初始化:scripts/init-planted.cjs 从 pubDate 批量填充所有 .md 文章,无 pubDate 的 .mdx 保留待手动补充
- bloom 颜色统一改为珊瑚橙 #E76F51(浅色/深色一致),告别绿色误认
- growth 分配规则放宽:bloom=pinned||系列||发布超180天(50篇),seed=发布不足30天(25篇),bud=中间状态(1篇)
- GrowthBadge CSS 防压缩:组件内 flex-shrink:0 + min-width:1.2em,首页 .reading-item__title 加 min-width:0 修复 flex 溢出截断
- 清除 --font-serif 废弃别名,全局 36 处 var(--font-serif) 统一替换为语义变量 --font-heading
- prose 首字母下沉改用 oklch font-feature-settings 避免东亚字体渲染异常
- global.css responsive 768px 断点修复 button 选择器多余逗号语法错误
- 灯箱 CSS 从 BlogPost.astro scoped 迁移至 global.css(islands 组件无法使用 scoped 样式),修复 ArticleLightbox 工具栏按钮无样式问题
- skip-link 改为 position:fixed + :focus-visible 滑入动画,默认隐藏不干扰视觉,Tab 聚焦时正确弹出
1.4.0 新主题:视觉基座 + 生长状态体系
2026-07-16 9 changes - 视觉基调升级:从锈橙系切换为高可读性绿系,主色 #1E4D2B(11.5:1 对比度),深色模式 #52B788,哲学更新为「A garden of connected ideas」
- 新增花园专属 CSS 变量:--color-seed / --color-bud / --color-bloom / --color-garden-line,浅色/深色双套色值
- growth 字段体系:schema 新增 growth(seed/bud/bloom 枚举)+ planted 日期字段,76 篇文章自动分配生长状态(bloom 17 / bud 56 / seed 3)
- utils.ts 新增数字园丁工具函数:extractWikiLinks / buildBacklinksIndex / getBacklinks / getOutlinks / GROWTH_CONFIG
- GrowthBadge.astro 组件:🌱/🌿/🌸 生长状态徽章,支持 showLabel 变体
- 首页「最近种植」板块:展示最新 6 篇 bud/bloom 文章,3 列网格卡片,含状态徽章、日期、描述
- 首页文章列表 growth 徽章:目录中每篇文章标题旁显示生长状态图标
- 文章页生长状态徽章:标题元信息栏显示徽章 + 状态文字标签
- 双向链接侧边栏:TOC 栏「引用了」区块,显示当前文章被哪些文章引用(最多 8 篇,超出显示计数)
1.3.0 阅读体验与交互全面升级
2026-07-15 14 changes - 专注阅读模式:点击 Header 眼睛图标进入,全屏沉浸,正文扩展至 800px,两种退出方式:浮动按钮或 Esc 键
- 字号 / 行高调节:Header 右侧 Aa 按钮弹出设置面板,小/中/大 × 紧凑/舒适/宽松,设置保存本地
- 阅读位置记忆:自动保存上次滚动位置,刷新 / 重新进入自动恢复
- 代码块复制按钮:hover 显示复制按钮,点击后显示「已复制 ✓」反馈,移动端默认显示
- 首页文章按年份分组:当前年默认展开,历史年份可折叠,含年月小标签与 stagger 动画
- 系列卡片视觉化:首页系列从文字链接重构为卡片网格,含图标、描述、文章数、hover 位移动效
- 阅读进度条章节感知:滚动时顶部弹出当前章节名称气泡,2.5 秒后自动淡出,aria-valuenow 实时更新
- 图片灯箱增强:新增缩放工具栏(+/−/重置),支持滚轮缩放、双击切换、双指捏合(移动端)、缩放后拖拽平移,键盘 +/-/0 快捷键
- 移动端滑动手势导航:文章页左滑进入下一篇、右滑进入上一篇,弹出提示条,1.5 秒自动消失
- 搜索快捷键提示:Header 搜索按钮 hover 显示 ⌘K,键盘 Cmd/Ctrl+K 全局呼出搜索框
- 面包屑导航增强:hover 高亮、当前页「正文」标签化、分隔符视觉优化
- 深色模式图片亮度自适应:文章图片、Hero 图、figure 容器在深色模式下自动降低亮度 0.88、提升对比度 1.05,hover 恢复正常
- 无障碍 ARIA 审计:导航添加 aria-current=page、TOC/侧栏/prose 添加对应 landmark 与 aria-label、全局 :focus-visible 样式统一、支持 prefers-reduced-motion
- 统一整站正文首行缩进:修复 global.css / BlogPost.astro / theme.astro 中部分段落缺少 2em 首行缩进的问题
1.2.0 首页重设计为「Reading Room」+ 个人资产页面
2026-07-14 18 changes - 首页重设计为「沉浸阅读室」风格,内容优先:内容为王,首页就是书的封面+目录
- Hero 极简重写:eyebrow 标签 + 衬线大标题 + 站点元信息(年份/文章数/分类数/位置)+ 48px 短分隔线,去掉终端动画
- 文章列表改为「目录编号式」:01-20 等宽数字编号 + 衬线标题 + 描边分类标签右对齐,三栏 grid 布局
- 去掉首页侧边栏(统计/分类/标签云),全屏沉浸
- 每日一言改造为「呼吸区」:引号 + 衬线斜体行内布局,上下边框分割
- 系列横向排列:衬线大字 + mono 计数
- 移动端适配:768px / 480px 两套断点(移动端隐藏分类标签、缩小编号)
- 文章列表 stagger fadeIn(50ms 间隔),hover 标题锈橙色下划线
- 主题页 (/theme) 更新:反映新版首页风格,新增资产页/评论汇总/系列页
- 装备页重构为「个人资产」页面:Tab 分段展示装备 / 游戏 / 项目 / 书影音四模块
- 游戏 Tab:Steam Top 10 游戏时长榜、成就进度条、游戏总数与累计小时数
- 项目 Tab:GitHub 公开仓库卡片,数据由 GitHub Actions 每日自动同步
- 书影音 Tab:书籍 / 音乐 / 影视三栏,支持通过 JSON 自由添加
- 侧边栏四卡片联动:Tab 切换时高亮对应数据卡片
- 新增 GitHub Actions workflow,每日 UTC 03:00 定时拉取仓库数据
- 新增数据模板:github_projects.json、books_music_movies.json
- 图片 WebP 预编译:10 张图片 1.79MB → 349KB,节省 80.9%
- 更新《博文写作规范》:补充 frontmatter 字段、新增分类、图片规范
1.1.0 评论汇总页 + 字体自托管
2026-07-10 5 changes - 新增全站评论汇总页 /comments:统计卡片、文章筛选、关键词搜索、按月分组时间线
- 字体自托管:Noto Sans SC、Noto Serif SC、JetBrains Mono 完整子集化
- 修复 fonts.css 缺失 CJK @font-face 声明导致中文回退问题
- 修复评论页筛选栏 flex-wrap 布局问题
- 字体子集化:按 unicode-range 拆分,避免下载不必要字符
1.0.1 全站性能与 SEO 优化
2026-07-08 18 changes - RSS 源站点 URL 从 yuntuzhaji.com 修正为 blog.lzplus.top
- 友链健康检查脚本路径修正
- 清理 about.astro 和 theme.astro 重复 import
- robots.txt 末尾添加换行符,符合 RFC 标准
- git-workflow-guide.mdx 代码块语言修正
- 清除 Shiki 代码块内联背景色样式,统一使用 CSS 类
- 修复 changelog.astro 中 color-mix() CSS 警告
- 将 BlogPosting JSON-LD 移至 BlogPost.astro
- 移除 Cloudflare Insights 脚本(GA4 已覆盖)
- 移除 51.la 统计脚本
- 添加 Noto Serif SC 字体 CDN 加载
- CSS 清理:移除水印标记、合并重复样式
- 缓存策略升级:CSS/JS 1 年 immutable,HTML 1h+stale
- CSP 策略更新
- 图片懒加载统一
- 装备页图片路径修正
- 完善 OG 标签和 Twitter Card
- JSON-LD 增强:添加 inLanguage、keywords 字段
1.0.0 里程碑 「Ink Editorial」 主题正式发布
2026-06-26 32 changes - 装备图片转 WebP:5 张图 1.6MB → 176KB(-89%)
- 依赖清理:移除未使用的 cloakblog-fonts 包
- 死代码清理:移除全局无用的预连接标签
- 内联 JS 提取:~6KB/页 → /js/common.js,236 页复用
- Service Worker:添加 /sw.js 缓存策略
- 修复 build.sh shebang 位置
- 删除废弃的 InteractionManager.astro
- 修复硬编码标签数问题
- Twikoo 评论懒加载升级(IntersectionObserver)
- CDN 字体懒加载增加 5 秒超时保护
- 清理 public/fonts 目录,释放 6.1MB
- Twikoo 预连接预热
- CLS 优化:全局图片 aspect-ratio
- LCP 优化:Logo 预加载、Google Fonts 预连接
- CSP 配置(public/_headers)
- 深色模式过渡动画
- 打印样式优化
- 焦点样式统一
- 键盘导航优化(跳过导航链接)
- 阅读位置记忆
- Twikoo 夜间模式适配
- 配置文件清理与统一
- site.config.mjs 增加 FONT 和 THEME 配置
- 移除所有硬编码配置
- 修复暗色模式对比度
- 段落间距节奏优化
- 代码块语言标识
- 长文章视觉呼吸点:h2 上方添加分隔线
- 表格移动端横向滚动提示
- 图片 figcaption 样式
- 字号层级拉开
- 阅读进度条优化
0.5.0 文章页 Frontend Design 重构
2026-06-24 14 changes - 文章页基于 Frontend Design 原则完全重构:阅读优先、呼吸感、品牌克制
- 头部独立全宽区域,面包屑导航+衬线标题+元信息紧凑排布
- 三栏布局改为 grid 居中,正文 720px
- TOC 左侧 2px 铁锈橙细线标识活动项
- 正文排版优化:1.0625rem/1.9 行高
- 右侧栏精简:作者卡+文章信息+推荐阅读+系列导航
- 版权声明改为简洁声明 + 3px 强调边框
- 相关文章卡片边框样式,hover 变铁锈橙
- 移动端底部导航栏 + TOC 抽屉面板
- 修复 TOC 和侧边栏 sticky 失效问题
- 修复 body overflow-x:hidden 导致 sticky 失效
- TOC scroll spy 改用 scroll 事件
- 侧栏系列文章标题两行显示
- 侧栏滚动条隐藏
0.4.0 字体切换 + 归档页重设计
2026-06-22 13 changes - 归档页完全重设计:T图标标题卡片 + 三级筛选 + 年份分组
- 三级日期筛选器:年份→月份→日期级联展开
- 分类胶囊颜色映射:技术蓝/生活绿/随笔黄/教程紫/游戏粉
- 搜索页点击标签后清除按钮恢复默认视图
- 归档页 JS 动态生成按钮无样式问题
- 清除历史按钮清空搜索输入框
- 字体切换新增思源宋体(CDN懒加载)
- 字体切换新增思源屏显臻宋
- 归档页今天文章显示 TODAY 徽章
- 新增右下角悬浮字体切换按钮,支持四种字体
- LXGW WenKai 采用 CDN 懒加载
- 全局 font-family 使用 CSS 变量
- 字体偏好保存至 localStorage
0.3.0 主题更名为「Ink Editorial」
2026-06-17 7 changes - 友链可达性检测改为构建时服务端请求
- 友链离线标识改为红色圆形角标
- 清理 about.astro 残留 CSS
- 新增主题介绍页 /theme
- 博客导航栏新增「主题」入口
- 主题更名为「Ink Editorial」
- 评论悬浮按钮与回到顶部统一风格
0.2.0 加载动画与归档页重构
2026-06-12 13 changes - 加载动画全面重设计:四角橙色装饰线 + 品牌字遮罩揭示
- 加载动画适配暗色模式
- 分类/标签链接跳转至归档页并支持 URL 参数
- 独立分类页/标签页改为 JS 重定向
- 归档页新增 URL 参数自动初始化
- Google Fonts 异步加载
- Twikoo 评论组件懒加载
- 添加 DNS prefetch / preconnect
- 开启 Astro compressHTML
- 修复构建产物 CSS 文件名 404
- 集成 Cloudflare Web Analytics
- 侧边栏标签云重构:频率权重分级
- 首页最新文章列表重构:Ink Editorial 杂志风
0.1.0 Cloak TERM 设计系统上线
2026-06-10 16 changes - 正文排版重构:衬线体 Noto Serif SC + 1rem + 行高 2.0 + 首行缩进 2em
- 修复 20 处 transition: all 为具体属性
- CSS 变量 --font-prose 修复
- 标题字号增大,正文阅读宽度扩至 760px
- Twikoo 评论系统已接入
- Accordion 组件展开动画改用 CSS Grid
- 修复 Accordion aria-expanded 问题
- 修复 Astro scoped CSS 404
- Cloak TERM 设计系统全面替换:锈橙色 #C45209 主色
- 正文排版:Noto Serif SC 衬线体,16px / 行高 2.0
- Changelog 页面重写:LATEST 标签 + 时间线卡片
- 全站移动端适配:三级断点
- 移动端 TOC 目录隐藏
- 装备页文本换行修复
- 全局防溢出
- 移动端表格滚动
0.0.2 配置系统重构与 Heo 风格
2026-06-05 7 changes - 配置系统重构:删除 consts.ts,新增 site.config.mjs + changelog.json
- 分类从文章 frontmatter 动态获取
- 宽度统一:外容器 1200px / 内容区 800px
- Hero 风格重构:导航、卡片、分类标签、文章列表
- 搜索功能:全文搜索模态框,标签与年份筛选
- 全局样式大修:仿 Heo 博客简洁风格
- 适配器切换至 @astrojs/cloudflare
2024
0.0.1 里程碑 博客站点初始化
2024-06-01 3 changes - 博客站点初始化,基于 Astro 框架搭建
- 支持 Markdown 文章发布,首页文章列表与归档页面
- 关于页、友链页、404 页,Nginx 代理部署
END OF ARCHIVE
THE SITE IS STILL GROWING.