开往
CHANGELOG

生长年轮

一个网站如何从博客,
慢慢变成一份持续生长的数字出版物。

2024 — ∞
66 ITERATIONS
480 CHANGES
当前版本 v2.10.3 2026-09-12
01

当前状态

Current
CURRENT VERSION 2.10.3 2026-09-12

封面改为「只认 heroImage」:取消正文首图自动降级

功能重构 2 changes
SITE STATUS
ONLINE
LAST UPDATED2026-09-12
PREVIOUSv2.10.2
02

生长阶段

Evolution · 网站经历的五个时代
01
2024 FOUNDATION 建立

一切开始的地方——从一行构建命令,到第一个页面上线。

1 次迭代 3 项变更 2024-06 → 2024-06 v0.0.1
02
2026.06 RENEWAL 重建

配置系统重构,Cloak TERM 设计系统上线,主题定名「Ink Editorial」并正式发布。

7 次迭代 102 项变更 2026-06 → 2026-06 v1.0.0
03
2026.07 GARDEN 花园

全站主题化为「Grove」:Reading Room 首页、seed / bud / bloom 生长状态体系。

9 次迭代 110 项变更 2026-07 → 2026-07 v1.5.0
04
2026.07—08 EDITORIAL 出版物

响应式架构重构、蓝白视觉改造、阅读系统升级——划词高亮 · 读书笔记 · Pagefind。

13 次迭代 78 项变更 2026-07 → 2026-08 v1.9.0
05
2026.08 — ARCHIVE 档案 进行中

Now 此刻、访客留言、搜索增强与深色三态;Edition 2.0 四空间框架(READ · MAKE · ARCHIVE · ABOUT)与编辑式布局落成,站点正式成为个人出版物与数字档案;此刻状态收敛为单一数据源,友链 / 书系 / 内容栏目 / 回应 / 资产等页面逐批编辑式化,图片双格式与离站入口落地。

15 次迭代 94 项变更 2026-08 → 2026-09 v2.4.0
03

里程碑

Milestones · 真正改变网站的版本
04

历史档案

History · 所有更新记录
THE RHYTHM OF BUILDING 每月变更数
2024
1 次迭代
2026
65 次迭代
OCTNOVDECJANFEBMARAPRMAYJUNJULAUGSEP
按类型检索 · 480 条变更
2026 65 次迭代 · 477 项变更
2.10.3 封面改为「只认 heroImage」:取消正文首图自动降级
2026-09-12 2 changes
  • 封面规则回退:utils.getCover 只认 frontmatter 的 heroImage,不再自动取正文首图当封面。写了 heroImage 才加载封面,没写就不加载任何图——封面是可选项,不再拿正文配图来凑。文章页 hero、博客列表精选卡片、首页最近更新缩略图三处版位同步改走这一规则(无封面即纯文字卡片)
  • 移除正文首图提取逻辑(extractFirstImage / isUsableCover / 占位图正则)与 CoverImage 的 url 分支——封面来源现在恒为 heroImage 本地资源
  • 文章封面规则落地:写有 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
  • 此前「编号 + 中文主标 + 英文副标」只在首页有(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 同属一套编号系统,全站编号语言自此一致
  • 建立图片规格(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 主图,做到「不规则但有规则」
  • 此前各页各自手工拼标题:8 个页面写死「 | 云图札记」、4 个页面完全没有站点名(博客 / 搜索 / 更新日志 / 404)、分隔符「|」与「·」混用。改为 MainLayout 统一拼接,页面只传自己的名字,新增页面不会再跑偏
  • 补齐缺失的站点名:博客、搜索、更新日志、404;文章页此前只有文章标题,现统一为「文章标题 | 云图札记」
  • 分隔符统一为「 | 」:回应、系列、系列详情、数字资产档案、游戏档案原先用的是「·」
  • 同一页面两个名字的对齐:「更新日志」改为与页内标题一致的「生长年轮」;数字资产页页内标题「我的数字资产」改为与标题一致的「数字资产档案」,与文章档案 / 视觉档案 / 游戏档案成同一命名体系
  • 细节对齐:标签页标题去掉「#」前缀(页内标题仍保留),与分类页的「<名称> | 云图札记」完全同构
  • 404 标题由「迷路了」改为更明确的「页面未找到」
  • 顶部主导航原先按文案长度自适应:READ 79px、MAKE 82px、ARCHIVE 104px、ABOUT 91px,最长最短差 25px,四项起点不等距、看着参差。改为等宽栅格(grid + grid-auto-columns:1fr),每列取最长项宽度并拉齐,四项统一为 104px
  • 导航项文字在等宽列内居中对齐,起点等距(间隔 2px);补 white-space:nowrap 防止文案折行,窄屏仍走移动端抽屉不受影响
  • 项目页新增「04 GitHub 仓库」区块:读取定时同步的 github_projects.json,按最近提交倒序列出公开仓库(名称、描述、语言、star、更新时间),点击直达仓库
  • 分工明确:上方「进行中 / 维护中 / 规划中」是手工维护的个人项目(状态、进度、在做、接着、技术栈、链接写在 src/data/projects.json);下方 GitHub 区块是自动同步的仓库信息,两者各司其职
  • 个人项目若关联了仓库(repo 字段),卡片自动补上源码链接、语言与最近提交,仓库信息不手写;侧栏「本页导航」加入 GitHub 仓库入口
  • 「理想城 · Mastodon 实例」已关停,条目替换为「方法论精华书架」
  • 新增 /projects 项目页,把在做的站点、工具、主题、实例、创作与基础设施集中列出,按「进行中 / 维护中 / 规划中」三段分组,每项含状态徽标、自评进度条、当前在做与下一步
  • 项目数据独立为 src/data/projects.json(状态 / 进度 / 在做 / 接着 / 技术栈 / 链接),与 GitHub 仓库数据(语言、最近提交)自动关联,仓库信息不手写
  • 按类型筛选(站点 / 工具 / 主题 / 实例 / 创作 / 游戏 / 基础设施 / 自动化),命中为空的分组自动收起;侧栏提供本页导航、类型统计与「进度怎么来的」说明
  • 主导航 MAKE 分组新增「项目」入口;sitemap 静态页清单同步登记 /projects
  • 进度定位为自评的粗略刻度(离可用状态还有多远),不代表代码行数或任务完成率,页内已注明
  • 灯箱可视区从 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 拼写错误;说明条改为贴底绝对定位并在无文案时隐藏
  • 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 同步更新
  • 灯箱改为微信式看图:默认显示文章里那张响应式图(currentSrc),工具栏「查看原图(大小)」按钮显示原始大图的文件体积,点击后在灯箱内加载全分辨率原图(不新开标签页),原图显示后按钮收起;无更大原图的图片自动隐藏该按钮
  • 此前放大后严重模糊(灯箱取 800w webp 缩略图作放大源)——现在需要清晰时点「查看原图」即可在灯箱内加载原图,1:1 查看
  • generate-image-meta.mjs 输出的 public/image-meta.json 每条新增 bytes(原图体积),灯箱按需懒加载该文件,读取后格式化为 K/M 体积显示在按钮上
  • 文章与图片从源码仓库拆分为独立私有仓库 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 均生效)
阅读这篇更新的详解 →
  • /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 排除名单,避免每日同步又把它们抓回来
  • /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
  • 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
  • 新增 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 失败
  • 右侧栏 sticky 固定后,内容高于视口时(目录 + 作者卡 + 系列卡实测 1077px,可视仅 784px)底部约 293px 被 overflow 裁掉;而滚动条又被 scrollbar-width:none 与 ::-webkit-scrollbar 双双隐藏,读者既看不到、也无从知道可以滚——现在侧栏按正文阅读进度同步滚动,下半部分随阅读逐步露出
  • 侧栏内容不溢出时保持原位、不做任何滚动;读者手动滚动侧栏(滚轮 / 触控)后暂停自动跟随 1.5 秒,避免与手动操作打架
  • 目录进度竖线与侧栏跟随共用同一「正文阅读进度」基准,不再各算一套;滚动与窗口尺寸变化都会重算
  • 首页重排为 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 裁切
  • 删除正文前的「阅读路线」章节列表——它与右侧目录重复,等于把 H2 复述两遍;本文内部导航只由右侧目录承担
  • 新增正文前的「阅读路径」:只显示 前置 → 当前 → 后续 三行,表达文章之间的关系而非本文章节
  • 新增 frontmatter 字段 prerequisite / followUp;不填时自动取同系列按 seriesOrder 排列的上一篇 / 下一篇,系列文章零维护即可成链
  • 移除 route 字段与「从正文 H2 自动生成路线」逻辑;9 篇手写 route 一并清理,不再有伪路线
  • 顶部「阅读路径」已展示的文章,底部「继续阅读」不再重复;跨系列或总纲文章可用 prerequisite / followUp 显式指定
  • 写作规范、语法指南、Markdown 指南同步改写「阅读路线」章节;v2.4.0 说明文挂后记,记录这次对旧设计的推翻
  • 首屏压缩:编辑式编号行合并为一行 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 部书系真实描述并去除篇数统计(此前被误回退)
  • 新增「阅读 / READING」与「游戏 / GAMING」两部书系:阅读线收拢 5 篇读书笔记与年度书单(悉达多、思考快与慢、沙丘、稍后读列表、2024 书单),游戏线收拢 4 篇 P 社与 Steam 记录(2785 小时、Steam 人生、Stellaris 两篇),把散落的读书与游戏内容第一次归位
  • 「继续阅读」从 9 篇人工指定扩写到 94 篇:用标签特异度加权(越冷门的共标签权重越高)+ 标题重叠计算主题相关度,给每篇补 2–3 条跨系列推荐;同系列文章仍由页面自动续接,零跨题关联的 niche 文不强推
  • 文章页正文前新增 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 校验脚本
阅读这篇更新的详解 →
  • 新增「个人出版物 / 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 兜底映射中同步注册,避免出现中文路径的死链
  • 首页从「模块拼装的个人主页」重做为整站的目录页(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 翻转卡背面的「今日一言」随卡片移除,改挂到页尾收尾区,保留每日轮换逻辑(未静默丢失功能)
  • 修复 /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 切换,无同款问题
  • 修复全站 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,满足开往挂链合规
  • 此刻状态改为单一数据源: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 排除,不随站部署)
  • 主导航重构为 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 卡徽标由写死的「博客」改为真实分类;区块小标题统一「中文主标 + 英文副标」顺序
  • 恢复「开往」外链至三处常驻位(顶栏等宽徽章 / 移动端抽屉快捷区 / 页脚),修复导航减法时误删开往链接导致的挂链不合规问题
  • 修复构建中断:标签含斜杠(如 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 部署下访客统计正常)
  • 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 复核为纯文本渲染(无需图片优先加载);修复归档 / 分类 / 标签页脚本类型问题
  • 访客留言页按「编辑化评论汇总页」设计规范重新设计为「回应 / 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 同步)
  • 深色模式系统跟随: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
阅读这篇更新的详解 →
  • 新增独立 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 字段
  • 新增相册页 /gallery:书影音等收藏以分组网格展示(点击放大灯箱,支持标题/备注、Esc/点击背景关闭),导航新增「相册」入口,后续可放入旅途与生活摄影
  • 新增 RSS 订阅入口:侧边栏日夜间切换按钮旁增加 RSS 图标链接直达 /rss.xml,方便读者订阅更新
  • 侧边栏精简:移除分类列表,减少视觉噪音、聚焦导航
  • 正文图片自动注入真实宽高与响应式 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 错误
  • 更新日志页新增更新频率统计:侧边栏显示「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),更新日志页同步展示三档规则
  • 新增划词高亮 + 读书笔记:选中正文即可用黄/绿/蓝三色荧光笔高亮、随手记笔记,刷新后自动恢复;右下角笔记面板可跳转/删除;数据仅保存在本地浏览器,不会上传
  • 站内搜索升级 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 统一处理)
阅读这篇更新的详解 →
  • 标题去竖条:移除 .post-title 的 border-left 蓝色竖条 + padding-left(原居中容器内左对齐竖条像引用块),改为纯大号衬线标题并加 text-wrap:balance
  • 新增分类 kicker:分类以蓝色圆角 pill 标签形式置于标题上方,可点击进入分类归档;面包屑精简为「首页 / 正文」,去掉旧花园风的叶子图标残留
  • 右栏减负:合并「作者」与「文章信息」为单张「关于本文」卡,删除与正文底部「相关文章」重复的「推荐阅读」卡,右栏由 5 张减到 3 张(目录/反向链接、关于本文、系列导航)
  • 目录卡新增竖向阅读进度线(.toc-rail + .toc-rail-fill),随正文阅读进度填充,配合既有的 TOC 高亮形成时间轴式导航
  • 标题锚点链接:.prose 内 h2/h3 鼠标悬停时左侧出现 #,点击复制带 #slug 的完整链接并用 Toast 提示,便于深链分享小节
  • 修复 ScrollProgress 顶部进度条的「章节名称气泡」因上轮 TOC 移入右栏后选择器失效(#tocCol 已不存在)的问题,改为 #tocLinks 选择器恢复章节感知
  • 移除「专注阅读模式」:删除 Header/Sidebar 的 eye 图标按钮、对应 JS 逻辑,以及 post.css/pc.css 中的 data-focus 样式(保留 Aa 阅读偏好设置)
  • 文章页从四栏精简为双栏:去掉左侧独立目录列,将「目录 + 反向链接」合并进右侧栏顶部卡片;正文宽度由 720px 加宽到 760px,阅读更舒展
  • 修复夜间模式下左侧全局导航栏背景仍为浅色的问题:在 [data-theme="dark"] 中补充 --bg-sidebar: #0B1120,使侧栏与暗色主题统一
  • 全站配色从黑白灰改为蓝白活力风:主色 #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
  • 修复 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 类型错误
  • 分类页和标签页从 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 规则,下划线样式与站点一致
  • 友链独立成页 /friends:从关于页迁出,新增友链页(标题+在线徽标+增强友链卡片+换链规则+我的友链信息卡),导航新增「友链」入口
  • 关于页重写为「数字花园手记」:手记开篇、花园生长状态(seed/bud/bloom 三态实时统计)、正在生长(种子圃:未发布的 5 篇文章 + 迭代与修订:最近修订文章)、园丁守则与被造访的花园并排
  • 关于页移除与首页/资产页/页脚重复的内容(此刻、花园入口、书橱、游戏、社交链接、每日一言),实现每页内容独特独有
  • 内容数据外部化:园丁守则移入 site.config.mjs,书单改为从 books_music_movies.json 读取;种子圃直接读取未发布的待发布文章
  • 关于页字体统一为衬线 Noto Serif SC(原 8 处等宽 JetBrains Mono 统一),模块间距加大至 48px 更透气
  • 清理 about.astro 约 400 行无对应内容的残留 CSS(游戏/此刻/入口/书橱/连接等)
  • filterPublished 日期过滤函数:未来文章构建时不生成页面、不进索引、不进 RSS,13 个页面全部接入
  • GitHub Actions 定时构建:每天 00:00 北京时间扫描文章生成日志 + commit + push,触发 CF Pages 重建
  • 分类精简为 6 类:产品→技术、阅读→随笔、观影→随笔、方法论→思考,共合并 7 篇文章分类
  • 去除日志中已经过时或移除的内容,避免误解
  • 首页 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
  • 样式架构重构: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抽屉开关、评论区跳转、返回顶部平滑滚动
  • 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
  • 首页「全部文章」列表改为按日期倒序,置顶文章不再特殊处理
  • 新建 rehype-image-figure 插件:文章正文 &lt;p&gt;&lt;img&gt; 自动包装为 &lt;figure class="post-image"&gt;,自动添加 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 头像)
  • 字体子集化: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个未引用文件)
  • 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
  • 首页完全重写: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 以下头像与文字纵向堆叠
  • 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 聚焦时正确弹出
  • 视觉基调升级:从锈橙系切换为高可读性绿系,主色 #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 篇,超出显示计数)
  • 专注阅读模式:点击 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 首行缩进的问题
  • 首页重设计为「沉浸阅读室」风格,内容优先:内容为王,首页就是书的封面+目录
  • 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 字段、新增分类、图片规范
  • 新增全站评论汇总页 /comments:统计卡片、文章筛选、关键词搜索、按月分组时间线
  • 字体自托管:Noto Sans SC、Noto Serif SC、JetBrains Mono 完整子集化
  • 修复 fonts.css 缺失 CJK @font-face 声明导致中文回退问题
  • 修复评论页筛选栏 flex-wrap 布局问题
  • 字体子集化:按 unicode-range 拆分,避免下载不必要字符
  • 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 字段
  • 装备图片转 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 样式
  • 字号层级拉开
  • 阅读进度条优化
  • 文章页基于 Frontend Design 原则完全重构:阅读优先、呼吸感、品牌克制
  • 头部独立全宽区域,面包屑导航+衬线标题+元信息紧凑排布
  • 三栏布局改为 grid 居中,正文 720px
  • TOC 左侧 2px 铁锈橙细线标识活动项
  • 正文排版优化:1.0625rem/1.9 行高
  • 右侧栏精简:作者卡+文章信息+推荐阅读+系列导航
  • 版权声明改为简洁声明 + 3px 强调边框
  • 相关文章卡片边框样式,hover 变铁锈橙
  • 移动端底部导航栏 + TOC 抽屉面板
  • 修复 TOC 和侧边栏 sticky 失效问题
  • 修复 body overflow-x:hidden 导致 sticky 失效
  • TOC scroll spy 改用 scroll 事件
  • 侧栏系列文章标题两行显示
  • 侧栏滚动条隐藏
  • 归档页完全重设计:T图标标题卡片 + 三级筛选 + 年份分组
  • 三级日期筛选器:年份→月份→日期级联展开
  • 分类胶囊颜色映射:技术蓝/生活绿/随笔黄/教程紫/游戏粉
  • 搜索页点击标签后清除按钮恢复默认视图
  • 归档页 JS 动态生成按钮无样式问题
  • 清除历史按钮清空搜索输入框
  • 字体切换新增思源宋体(CDN懒加载)
  • 字体切换新增思源屏显臻宋
  • 归档页今天文章显示 TODAY 徽章
  • 新增右下角悬浮字体切换按钮,支持四种字体
  • LXGW WenKai 采用 CDN 懒加载
  • 全局 font-family 使用 CSS 变量
  • 字体偏好保存至 localStorage
  • 友链可达性检测改为构建时服务端请求
  • 友链离线标识改为红色圆形角标
  • 清理 about.astro 残留 CSS
  • 新增主题介绍页 /theme
  • 博客导航栏新增「主题」入口
  • 主题更名为「Ink Editorial」
  • 评论悬浮按钮与回到顶部统一风格
  • 加载动画全面重设计:四角橙色装饰线 + 品牌字遮罩揭示
  • 加载动画适配暗色模式
  • 分类/标签链接跳转至归档页并支持 URL 参数
  • 独立分类页/标签页改为 JS 重定向
  • 归档页新增 URL 参数自动初始化
  • Google Fonts 异步加载
  • Twikoo 评论组件懒加载
  • 添加 DNS prefetch / preconnect
  • 开启 Astro compressHTML
  • 修复构建产物 CSS 文件名 404
  • 集成 Cloudflare Web Analytics
  • 侧边栏标签云重构:频率权重分级
  • 首页最新文章列表重构:Ink Editorial 杂志风
  • 正文排版重构:衬线体 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 目录隐藏
  • 装备页文本换行修复
  • 全局防溢出
  • 移动端表格滚动
  • 配置系统重构:删除 consts.ts,新增 site.config.mjs + changelog.json
  • 分类从文章 frontmatter 动态获取
  • 宽度统一:外容器 1200px / 内容区 800px
  • Hero 风格重构:导航、卡片、分类标签、文章列表
  • 搜索功能:全文搜索模态框,标签与年份筛选
  • 全局样式大修:仿 Heo 博客简洁风格
  • 适配器切换至 @astrojs/cloudflare
2024 1 次迭代 · 3 项变更
  • 博客站点初始化,基于 Astro 框架搭建
  • 支持 Markdown 文章发布,首页文章列表与归档页面
  • 关于页、友链页、404 页,Nginx 代理部署

END OF ARCHIVE

THE SITE IS STILL GROWING.