技术实验室
折腾记录——不是教程,是「我这么踩过来的」账本。
- 完成
全站审计 + 集中修 Bug
给整站做了一次代码级体检(可访问性/性能/主题/响应式/实现完整性五个维度),然后一口气修掉 20 处:安全侧补 CSP + HSTS 响应头(白名单只放行 Cloudflare Analytics 和 Cusdis);卡片扫光动画从动画 left 改成 translateX(不再触发 layout 重排);移动端折叠菜单收起后链接仍能 Tab 聚焦的「隐藏 ≠ 不可聚焦」问题;弱提示色对比度从 3.2:1 提到 4.5:1;播放器进度条补全键盘操作(Home/End/PageUp/PageDown)和 aria-valuetext。顺手做了点工程收拾:主题色硬编码收口到 theme.ts 单一来源、抽了 utils/site.ts 干掉 13 处复制粘贴的路径归一化、播放器内联脚本从组件挪到 Layout(likes 页从 6 份相同脚本降到 1 份)、mermaid 依赖移到 devDependencies。构建验证通过,16 页全部正常生成。
- 完成
转场升级:换台与故障
主题切换从颜色淡入淡出改成「电视换台」:旧主题压扁成一条过曝亮线,新主题从亮线展开(CRT 开关屏,走 View Transitions API,ThemeToggle 加 .tv-switch 标记与页面转场互斥);页面导航在霓虹主题下改故障撕裂——clip-path 切片跳变 + 色差偏移 + 平移抖动,纸面保持安静交叉淡化。不支持的浏览器(微信 X5)自动降级原淡入淡出,减弱动效时转场压到 1ms 直切。
- 完成
全站视觉重做:羊皮纸 × 多巴胺
双主题彻底分家。正式模式换「日光羊皮纸」学院装:霞鹜文楷 + Cinzel 字体自托管接入(unicode-range 分块按需加载),拱顶头像、黄铜角花框、纹章分隔线、罗马数字 Volume 编号,铺纸纹 + 暗角氛围层;乐子人模式上 70% 浓度多巴胺:宇宙紫黑底叠点阵/斜纹/渐变雾,五色轮换卡片(粗彩边 + 6px 硬阴影 + 交错微倾),背景巨字「乐」和漂浮件。同一套 DOM,纯 CSS 按主题换构图,零新 JS 依赖。
- 完成
首屏动效大片化
首页换巨型衬线标题(视口 clamp 缩放)、身份跑马灯无缝循环、索引式全宽入口行;进场动画升级模糊聚焦 + 逐行升起,霓虹模式卡片加 3D tilt 悬停(最多 2.4° 不眩晕)。全部走既有 reveal 观察器扩展,无 JS 或开启减弱动效时内容恒可见。
- 完成
自定义域名上线
注册 returndm.top 并接入 Cloudflare(NS 托管 + Pages 绑定),替换 pages.dev 作为正式域名——国内访问从"随机被干扰"变成稳定顺畅;旧域名 301 跳转到新域名,老链接无缝迁移。
- 完成
留言板改版:弹窗式 + 全中文
留言板从首页底部大块改成页脚「留言」入口 + 弹窗(dialog 二级窗口):首次点开才加载 Cusdis(懒加载)、注入完整中文文案(发表评论/回复/昵称等)、点遮罩/Esc/✕ 关闭、手机全屏。
- 完成
留言板上线
用 Cusdis 托管评论系统(免登录、无需自建后端):访客直接留言,管理后台批准/删除、邮箱收通知;双主题联动走官方 setTheme API(不重建 iframe、不丢草稿)。
- 完成
内容页改版:置顶改横幅
《关于本站》不再占用文章列表第一位,改成顶部一行紧凑横幅入口;列表恢复纯时间排序(新→旧),同日文章按 slug 升序修正「打工人们 1/2」先后。
- 完成
返回顶部 + 友链申请
全站加返回顶部按钮(滚动超过一屏淡入,点击平滑回顶,双主题);友链页加「申请友链」区块,给出站名/网址/介绍/头像的填写格式。
- 完成
页脚联系方式上线
页脚新增 QQ 邮箱入口。邮箱拆成 user/domain 两个属性、由页面 JS 拼接渲染,HTML 源码里不出现完整地址,防爬虫抓去群发垃圾邮件。
- 完成
图片全面 WebP 化
全站图片转 WebP:头像 46KB→5.6KB,喜好背景图等体积降约 60%;补全 _headers 缓存规则、正文标题层级修正、LCP 首图预加载,加载速度明显提升。
- 完成
喜好卡片背景图
喜好页每张卡片背景换成对应图片:歌曲用曲绘、番剧用剧照、游戏用海报、运动用球类图。低透明度 + 渐变遮罩保证文字可读,双主题下都有氛围感。
- 回退
首页泡泡实验(已回退)
给霓虹模式首页入口做过一版重力物理泡泡:卡片可拖拽、互相碰撞、掉到边界弹起,带"整理"按钮。实测视觉有点乱、手感一般,整体回退保留网格布局——这次尝试本身也是记录。
- 完成
整页动态特效
View Transitions 页面切换过渡 + 霓虹模式鼠标光斑跟随。交互脚本全部改成 document 事件委托,适配新页面架构(切换动画后脚本重跑、主题恢复、实时获取元素)。
- 完成
霓虹导航升级
品牌与导航链接改彩虹渐变缓慢流动 + 文字辉光,active 灯条加亮——乐子人模式该有的张扬。
- 完成
涂鸦背景上线
霓虹模式背景加 SVG 手绘涂鸦层(星星/螺旋/音符/爱心/闪电)叠加氛围光,黑底手绘风。
- 完成
内容排序与置顶
文章列表支持置顶(pinned 字段):《关于本站》固定在顶部,其余按更新时间倒序(新→旧),列表与详情页排序一致。
- 完成
友链上线
新增友链页,第一位好友 Li0nFish(魚の池)入驻,欢迎串门。
- 完成
阅读体验优化
文章加载提速:Mermaid 图改为构建期静态渲染成 SVG(运行时零 JS 加载);正文标题加收展按钮,可收起/展开任意小节内容;标题自动生成锚点 id。
- 完成
修复播放器点击无反应
播放器脚本用 currentScript.closest 找自己所在卡片,但脚本输出在卡片外面(兄弟节点),导致事件从未绑定。改用事件委托:全局绑定一次 click/keydown,运行时匹配 .mp-play / .mp-track,任意多个播放器都能工作,切歌自动停上一首。
- 完成
修复微信内置浏览器无法交互
微信 X5 内核不执行 ES module 脚本,汉堡菜单和主题切换在微信里全部失灵。把三个交互脚本从打包 module 改成内联普通脚本(播放器用 currentScript 绑定实例 + 全局共享播放状态),微信里恢复正常。
- 完成
RSS 订阅上线
内容模块加了 RSS 订阅源(/rss.xml):官方插件生成 feed,页脚与内容页加入口,head 里也补了自动发现标签——以后写文章,订阅工具能直接跟进。
- 完成
文章媒体配套优化
给内容模块补了媒体能力:图片自动懒加载(rehype 插件,零依赖)、音频视频播放器随双主题变色(color-scheme 方案)、单文件 25MB 以内的上传约定。
- 完成
本站搭建
用 Astro 从零搭了个人主页:双主题、零后端,部署到 Cloudflare Pages。占位图方案也在这里定型。