更新日志
事不目见耳闻,而臆断其有无,可乎?
每一次的更迭、功能的增减、文字的沉淀,皆如实录于此。
2026·09·12 文章右侧目录栏
桌面右侧目录栏
- 桌面(≥1240px):正文右侧 sticky 目录栏——滚动高亮当前章节、阅读进度 0%→100%、展开/收起全部子目录、点击平滑定位(含 URL hash 同步)
- 工具栏含「回到顶部」按钮:平滑回顶 → 清除 URL hash
- 移动端(<1240px):目录整栏隐藏
- 目录由 JS 从
.prose的h2 / h3自动构建(标题 id 由 goldmark 生成),内容改动无需维护目录 - 有效标题 < 3 个自动整栏隐藏;front matter 加
toc: false可整页关闭;books(阅读器模式)与gallery不启用 - 宽布局类
html.toc-enabled在<head>预置(与阅读模式同思路),首帧即生效,正文宽度不跳动、底部导航不闪现 - 适用:posts / thinking / about 共 14 页;构建侧注意——Hugo
--minify的 JS 压缩器对正则字面量与\n\r转义有误判,目录脚本已完全规避
2026·09·11 排版 · 书籍移动端阅读模式
首字下沉不再误伤引用(> 引文)
- 修复:引文块首个字被意外放大下沉(如文章开头的
>说明块) - 根因:原选择器
.prose p:first-child::first-letter过于宽泛——blockquote/ 列表 / 表格内的第一个段落都会被命中 - 方案:收紧为
.prose > p:first-child::first-letter(仅命中正文首个直接段落),引文不再自动触发
首字下沉改为「按需开启」
- 开启 goldmark 块级属性:
markup.goldmark.parser.attribute.block: true - 在需要下沉的段落(含引文内段落)后另起一行写
{.dropcap}即可,行内 Markdown(代码 / 粗体)不受影响;删掉该行即恢复普通排版
有序列表序号向左溢出修复
- 修复:正文有序列表(如文章「目录」的
1. 2. 3. …)序号被挤出容器左侧、掉进页边距 - 根因:
.prose ul, .prose ol { padding-left: 0 }对有序列表同样生效,而ol序号默认list-style-position: outside,没有留下悬挂空间 - 方案:拆开规则——
ul保留 0(改用自定义「—」伪元素);ol单独给padding-left: 2em悬挂缩进,并让序号统一为弱化灰 + 等宽字体,与「—」项目符号呼应
超长 token 撑破移动端布局修复
- 修复:正文里的超长不可断行内容(长路径 / 类名 / 配置键)顶破容器,移动端整页出现横向滚动条
- 根因:
.prose未声明overflow-wrap,行内<code>中如Views/ViewModels/Models/Services/Helpers/Resources/tools/(57 字符 ≈ 436px)无法折行,而移动端main.page+article.post-shell双层内边距后可用宽度只有约 272px - 方案:
.prose { overflow-wrap: break-word }——长 token 仅在放不下时折行;<pre>因white-space: pre不受影响仍横向滚动,表格单元格沿用更激进的anywhere
书籍章节:取消首字下沉
- 章节正文改用
.prose--book,重置::first-letter(长篇连续阅读时首字放大会打断节奏) - 重置写法与
.prose--thinking保持一致;如需某段单独启用,仍可手动写{.dropcap}
书籍章节:移动端沉浸阅读(阅读器模式)
- ≤600px 时底部导航默认收起,轻触正文空白处唤出 / 收起,营造阅读 App 的沉浸感
<head>中尽早打html.reader-mode标记,避免底部导航「先渲染再收起」的闪现(与主题 FOUC 处理同思路)- 导航收起时同步收回为其预留的 72px 底部空间,正文可占满整屏;过渡与导航滑出同节奏
- 点按链接 / 按钮 / 代码复制 / 评论区 / 灯箱时不触发切换,避免误操作;首次进入有一次轻提示(每会话仅一次)
- 自动收起:点击唤出后 2.5 秒无操作自动收起;页面滑动(向上 / 向下)立即收起
- 在导航内操作(触摸 / 移动 / 聚焦)会重置这 2.5 秒,翻看章节目录不会看到一半被收走
- 滑动判定设 200ms 宽限期 + 12px 位移阈值:唤出导航会让
.page底部内边距变化,避免出现「刚唤出就被收走」
- 滑到底部自动弹出:滚到距底部 24px 内自动唤出导航(方便点「下一章 / 返回目录」),且不参与 2.5 秒倒计时——触底弹出的导航保持常驻,直到离开底部(向上滑动)或轻触收起;点击唤出的导航仍按 2.5 秒自动收起
2026·09·09 明暗主题方案重构 · 点赞识别修复
明暗主题切换改为「单一 data-theme 驱动」
- 重构:弃用此前「
<html>内联color-scheme+ JS 运行时改写 style」的方案(移动端存在竞态,切回亮色仍被浏览器压暗) - 最终方案:
<head>加<meta name="color-scheme" content="light dark">(HTML 级、最早生效的退出 Auto Dark 锚点)color-scheme完全交由 CSS[data-theme='light'/'dark']属性选择器跟随- JS(FOUC 初始化 / 手动切换 / 跟随系统)只切换
data-theme,不再手动写内联样式,杜绝双写竞态
- 效果:移动端系统暗色时也能真正切回亮色,明暗分明
点赞计数按真实 IP 识别
- 修复:换设备 / 换 IP 点赞仍只能 +1(看似只有一次赞)
- 根因:站点经 Nginx 反代,Artalk 服务端
http.proxy_header未配置,所有请求的c.IP()相同(内网地址)→ 不同访客被识别为同一人,互相"取消" - 方案:
artalk.yml配置http.proxy_header: "X-Forwarded-For"读取真实访客 IP,重启容器后不同 IP 各自独立计数
2026·09·06 阅读量修复 · 明暗主题加固 · 移动端体验优化
书籍章节页评论默认关闭
- 章节内容下方不再默认显示评论区,页面更聚焦阅读
- 如需某章开放讨论:该章 front matter 加
comments: true即可
阅读量(👁)失效修复
- 修复:评论关闭的页面阅读量恒为 0(评论挂载才会触发 Artalk 初始化,而 PV 统计依赖初始化)
- 新增独立 PV 统计
trackPV+ 公共兜底partials/pv-fallback.html:评论关闭时直接调用 Artalkpages/pv接口累计回填 - 覆盖:书籍章节页、关于页、更新日志页等所有"关闭评论但仍显示阅读量"的页面,全站 PV 恢复真实计数
明暗主题跟随系统加固(移动端)
- 修复:移动端(Android Chrome 等)系统暗色时无法切回亮色,表现两色相近
- 根因:浏览器 Auto Dark Theme 对未强声明
color-scheme的页面强制套暗色滤镜 - 初版方案:
<html>内联color-scheme+ JS 切换时同步更新 +html铺满背景色- 此方案后有竞态缺陷,已重构为「单一 data-theme 驱动 + meta color-scheme」,见 2026·09·09 条目
页脚备案完善
- 页脚新增公安备案(含官方图标)
- ICP 与公安备案、版权信息等字体间距统一
- 备案号按网安要求指向官方查询站(beian.miit.gov.cn / beian.mps.gov.cn)
点赞与匿名评论说明
- 点赞采用 Artalk 页面投票:同一访客(按 IP)可赞/取消 toggle,不叠加;不同访客各自累计
- 评论支持免登录匿名(填昵称即可),邮箱字段不再必填
2026·08·23 碎碎念体验升级 · 打字机修复
碎碎念图片九宫格
- 新增
say-photosshortcode:一句话 + 下方 1~9 张图片,微信朋友圈式布局自适应(1 张原比例 / 2 张 3:4 竖图 / 4 张 2×2 / 其余 3 列方形网格) - 图片点击进入 PhotoSwipe 全屏灯箱,左右翻看 / 缩放 / 键盘导航(与画廊同款,每条说说图片独立成组)
- 用法:图片放
static/says/<说说文件名>/,正文写{{< say-photos "1.png" "2.png" ... >}}
碎碎念评论数徽标
- 每条说说「💬 评论」旁新增 +N 评论数徽标:有评论才显示、无评论隐藏
- 批量统计接口一次请求取回全部说说的评论数,不逐条轮询
首页碎碎念模块纯文字
- 首页活动区碎碎念仅显示文字摘要(剥离图片),点击直达
/says/#say-xxx对应锚点查看完整内容
打字机效果修复
- 修复:一言 API 成功时仅取回 1 句,导致首页打字机永远重复同一句
- 改为:本地 8 条语录始终为基础 + 并行拉取 4 条一言(文学/诗词/网络/影视,去重),完整实现「打出 → 停顿 → 删除 → 切换下一句」轮换
聚合时间线优化
- 首页发丝图 Tooltip 中碎碎念条目点击直达对应说说锚点(原为跳到列表页顶部)
代码审查与清理
- 移除已废弃的 Giscus 主题文件;清理
domal.css旧分页死类(.pagination) - 清理注释代码与未使用变量(页脚导航注释、Tooltip 注释、
$featured、打字机死参数等) - 更新关于页栏目定名与功能描述,与首页实际显示一致
2026·08·22 Artalk 评论系统上线
评论系统迁移(Giscus → Artalk)
- 评论系统由 Giscus(需 GitHub 登录)迁移为 Artalk(Go 单二进制 + SQLite 自托管),访客免登录匿名评论
- 覆盖范围:文墨集 / 静思笺 / 丹青匣 / 藏书阁章节页 / 关于页
- 深浅主题自动跟随站点切换;管理面板支持评论审核、删除、防垃圾与邮件通知
阅读量升级(不蒜子 → Artalk)
- 文章 / 思考 / 画廊 / 书籍章节页阅读量改为 Artalk 页面浏览量:真实计数、数据存于本地 SQLite 可导出备份
- 移除不蒜子第三方脚本与 localStorage 防重复计数逻辑
点赞真实化(localStorage → Artalk 页面投票)
- 文章 / 思考页 ♡ 点赞改为 Artalk 页面投票:服务端真实计数、同访客防重复、点击后变 ♥
- 移除原先仅存本机浏览器的假点赞
碎碎念(Says)评论上线
- 每条说说底部新增「💬 评论」入口,展开即见该条说说的独立评论区(QQ 空间式)
- 手风琴交互:同一时间只展开一条评论,点击其他说说自动收起上一条,再次点击收起本条
- 首次展开才挂载评论实例,多条说说互不串评、不重复计数
其他
- Artalk 前端本地托管(无 CDN 依赖),非首页按需加载
- 新增部署指南
themes/domal/README-artalk.md(服务端一键启动脚本 + 上线注意事项)
2026·08·18 正文表格窄屏自适应
表格自适应优化(About 等正文页)
- 修复:正文表格在移动端超出屏幕宽度、撑破容器的问题
- 根因:单元格内无空格的长路径(如
content/gallery/*/)无法断行,表格按最大内容宽度被撑开 - 方案:保持原生表格结构不变,仅让长路径允许任意断行(
overflow-wrap: anywhere),窄屏下再压缩单元格内边距与字号,表格自动收缩到容器宽度内,不再横向溢出
2026·08·13 分页功能上线 · 文章卡片化 · 代码演示组件
列表分页(全站统一)
- 新增自定义翻页组件:
← 上一页 共 X 页 · 第 Y 页 下一页 → - Posts 列表:每页 9 篇,超过 9 篇下方自动出现翻页按钮
- Tags / Categories / Thinking 列表同步统一翻页样式
- 翻页仅在多页时显示,单页不出现
文墨集(文章列表)卡片化
- 每条文章改为一组独立卡片框(暖灰底 + 圆角 + hover 梅红),与闲谈录风格一致
- 摘要限制最多两行,超出自动省略号
代码演示组件模板化
- 新增通用 shortcode:
html-sample(HTML 代码 / 渲染预览 / 一键复制)与code-block(任意语言代码块 + 复制) - 两组件样式合并去重,视觉与主题统一
2026·08·12 文章体验优化 · 页脚导航 · 岁序谱修复
文章页体验
- 文章详情顶部元信息栏新增返回栏目链接(
← Posts/← Gallery/← Thinking),与画廊详情页风格统一,一键回到列表
页脚导航升级
- 新增页脚导航链接行:About / Friends / Update / Projects / Tag
- 桌面端:tagline 居左、链接右对齐;移动端自动居中堆叠
- ICP 备案号在移动端自动换行显示于版权文字下方
- 移除页脚导航行的顶部分隔线,观感更轻盈
岁序谱(首页聚合时间线)Tooltip 修复
- 修复:悬停发丝日期时 Tooltip 被上下裁切的问题
- 根因:原 Tooltip 内嵌于 SVG
<foreignObject>,受overflow-x: auto滚动容器双重裁切 - 方案:Tooltip 改为独立 HTML 浮层 + JS 动态定位(完全脱离 overflow 裁切,支持左右/上下越界自动翻转、滚动/缩放跟随重定位、移入卡片保持显示可点击)
岁序谱(时间线页)全面优化
- 年份 Tab 切换:点击年份胶囊仅显示该年内容,其他年份自动隐藏;激活年份胶囊高亮主题色
- 移除冗余:删除被注释禁用的
timeline-progress年份进度条 - 年份导航降序:
2026 → 2025 → 2024从新到旧排列 - 年份标题显示发布月份:如
2026 (12) 八月 · 七月 · 四月,月份为可点击锚点,平滑定位并展开对应月份分组 - 按月折叠分组:默认展开最新月份,其余折叠为紧凑胶囊(
▸ 八月 (6)) - 视觉升级(参考 Geil.Danke! 时间线):菱形节点(hover 旋转 + 主题色光晕)、日期标签柔和化、竖向线对齐节点中心
- 锚点联动:
#year-2025/#month-2026-8/#day-2026-04-15自动切换年份、展开分组并平滑滚动
2026·08·11 画廊上线 · 首页焕新 · 主题精简
画廊系统( Gallery)
- 废弃「手记」栏目,新增「丹青匣」画廊
- 画廊列表:响应式相册卡片网格(封面自动取色 + hover 缩放 + 照片数/日期)
- 相册详情:内嵌 PhotoSwipe 5 专业灯箱(左右滑动 / 缩放 / 键盘 / URL 直达 +
#图片名) - 修复:无图/缺图相册也渲染占位卡片,不再"上传多组只显示一组"
- 图片标题:优先 front matter
title,自动去除.jpg扩展名
首页活动区升级
- 四栏布局定名:文墨集 / 丹青匣 / 静思笺 / 闲谈录
- 丹青匣:展示相册封面缩略图(可点进详情)
- 闲谈录:点击直达 says 页面对应锚点(平滑滚动)
- 文墨集:严格限定只展示 posts 文章
主题精简与健壮性
- 修复 FOUC(主题初始化前置
<head>,无闪烁) - 修复缺失的
favicon.ico;清理main.js/mainSections死引用 - 清理
domal.css死类(旧 hero__ / btn* / 色板 / 反模式 / 代码框 / notes 残留) - 构建改用
--cleanDestinationDir,杜绝public/旧产物残留引发的"内容消失"
页面完善
- 关于页:同步最新功能与四栏栏目命名
- 相册详情头:日期 + 👁 浏览量 + 返回画廊列表
2026·07·27 重构
- 参考 Shiro 交互(弹性导航 / 首页 Hero / 活动区 / 聚合时间线)
- 移植 Yohaku 设计 token(梅红强调色 / 十阶中性灰 / 纸面底色)
- 实现深浅主题切换、Giscus 评论、PhotoSwipe 画廊、KaTeX 公式、不蒜子阅读量