05 / LAB

技术实验室

折腾记录——不是教程,是「我这么踩过来的」账本。

  1. 完成

    全站审计 + 集中修 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 页全部正常生成。

    • 审计
    • Bug
    • 可访问性
    • 性能
    • 安全
  2. 完成

    转场升级:换台与故障

    主题切换从颜色淡入淡出改成「电视换台」:旧主题压扁成一条过曝亮线,新主题从亮线展开(CRT 开关屏,走 View Transitions API,ThemeToggle 加 .tv-switch 标记与页面转场互斥);页面导航在霓虹主题下改故障撕裂——clip-path 切片跳变 + 色差偏移 + 平移抖动,纸面保持安静交叉淡化。不支持的浏览器(微信 X5)自动降级原淡入淡出,减弱动效时转场压到 1ms 直切。

    • 转场
    • View Transitions
    • 动效
  3. 完成

    全站视觉重做:羊皮纸 × 多巴胺

    双主题彻底分家。正式模式换「日光羊皮纸」学院装:霞鹜文楷 + Cinzel 字体自托管接入(unicode-range 分块按需加载),拱顶头像、黄铜角花框、纹章分隔线、罗马数字 Volume 编号,铺纸纹 + 暗角氛围层;乐子人模式上 70% 浓度多巴胺:宇宙紫黑底叠点阵/斜纹/渐变雾,五色轮换卡片(粗彩边 + 6px 硬阴影 + 交错微倾),背景巨字「乐」和漂浮件。同一套 DOM,纯 CSS 按主题换构图,零新 JS 依赖。

    • 重构
    • 设计系统
    • CSS
  4. 完成

    首屏动效大片化

    首页换巨型衬线标题(视口 clamp 缩放)、身份跑马灯无缝循环、索引式全宽入口行;进场动画升级模糊聚焦 + 逐行升起,霓虹模式卡片加 3D tilt 悬停(最多 2.4° 不眩晕)。全部走既有 reveal 观察器扩展,无 JS 或开启减弱动效时内容恒可见。

    • 动效
    • 首屏
    • 零依赖
  5. 完成

    自定义域名上线

    注册 returndm.top 并接入 Cloudflare(NS 托管 + Pages 绑定),替换 pages.dev 作为正式域名——国内访问从"随机被干扰"变成稳定顺畅;旧域名 301 跳转到新域名,老链接无缝迁移。

    • 域名
    • Cloudflare
    • 网络
  6. 完成

    留言板改版:弹窗式 + 全中文

    留言板从首页底部大块改成页脚「留言」入口 + 弹窗(dialog 二级窗口):首次点开才加载 Cusdis(懒加载)、注入完整中文文案(发表评论/回复/昵称等)、点遮罩/Esc/✕ 关闭、手机全屏。

    • 留言板
    • Cusdis
    • UI
  7. 完成

    留言板上线

    用 Cusdis 托管评论系统(免登录、无需自建后端):访客直接留言,管理后台批准/删除、邮箱收通知;双主题联动走官方 setTheme API(不重建 iframe、不丢草稿)。

    • 留言板
    • Cusdis
    • 托管
  8. 完成

    内容页改版:置顶改横幅

    《关于本站》不再占用文章列表第一位,改成顶部一行紧凑横幅入口;列表恢复纯时间排序(新→旧),同日文章按 slug 升序修正「打工人们 1/2」先后。

    • 内容
    • 排序
    • UI
  9. 完成

    返回顶部 + 友链申请

    全站加返回顶部按钮(滚动超过一屏淡入,点击平滑回顶,双主题);友链页加「申请友链」区块,给出站名/网址/介绍/头像的填写格式。

    • 体验
    • 友链
    • UI
  10. 完成

    页脚联系方式上线

    页脚新增 QQ 邮箱入口。邮箱拆成 user/domain 两个属性、由页面 JS 拼接渲染,HTML 源码里不出现完整地址,防爬虫抓去群发垃圾邮件。

    • 联系方式
    • 隐私
    • JS
  11. 完成

    图片全面 WebP 化

    全站图片转 WebP:头像 46KB→5.6KB,喜好背景图等体积降约 60%;补全 _headers 缓存规则、正文标题层级修正、LCP 首图预加载,加载速度明显提升。

    • 性能
    • WebP
    • 缓存
  12. 完成

    喜好卡片背景图

    喜好页每张卡片背景换成对应图片:歌曲用曲绘、番剧用剧照、游戏用海报、运动用球类图。低透明度 + 渐变遮罩保证文字可读,双主题下都有氛围感。

    • 喜好
    • CSS
    • 图片
  13. 回退

    首页泡泡实验(已回退)

    给霓虹模式首页入口做过一版重力物理泡泡:卡片可拖拽、互相碰撞、掉到边界弹起,带"整理"按钮。实测视觉有点乱、手感一般,整体回退保留网格布局——这次尝试本身也是记录。

    • 实验
    • 物理
    • 回退
  14. 完成

    整页动态特效

    View Transitions 页面切换过渡 + 霓虹模式鼠标光斑跟随。交互脚本全部改成 document 事件委托,适配新页面架构(切换动画后脚本重跑、主题恢复、实时获取元素)。

    • 动效
    • View Transitions
  15. 完成

    霓虹导航升级

    品牌与导航链接改彩虹渐变缓慢流动 + 文字辉光,active 灯条加亮——乐子人模式该有的张扬。

    • 动效
    • 霓虹
    • CSS
  16. 完成

    涂鸦背景上线

    霓虹模式背景加 SVG 手绘涂鸦层(星星/螺旋/音符/爱心/闪电)叠加氛围光,黑底手绘风。

    • 动效
    • 涂鸦
    • SVG
  17. 完成

    内容排序与置顶

    文章列表支持置顶(pinned 字段):《关于本站》固定在顶部,其余按更新时间倒序(新→旧),列表与详情页排序一致。

    • 内容
    • 排序
  18. 完成

    友链上线

    新增友链页,第一位好友 Li0nFish(魚の池)入驻,欢迎串门。

    • 友链
    • 页面
  19. 完成

    阅读体验优化

    文章加载提速:Mermaid 图改为构建期静态渲染成 SVG(运行时零 JS 加载);正文标题加收展按钮,可收起/展开任意小节内容;标题自动生成锚点 id。

    • 文章
    • 阅读体验
    • Mermaid
  20. 完成

    修复播放器点击无反应

    播放器脚本用 currentScript.closest 找自己所在卡片,但脚本输出在卡片外面(兄弟节点),导致事件从未绑定。改用事件委托:全局绑定一次 click/keydown,运行时匹配 .mp-play / .mp-track,任意多个播放器都能工作,切歌自动停上一首。

    • Bug
    • 播放器
    • 事件委托
  21. 完成

    修复微信内置浏览器无法交互

    微信 X5 内核不执行 ES module 脚本,汉堡菜单和主题切换在微信里全部失灵。把三个交互脚本从打包 module 改成内联普通脚本(播放器用 currentScript 绑定实例 + 全局共享播放状态),微信里恢复正常。

    • Bug
    • 兼容性
    • 微信
  22. 完成

    RSS 订阅上线

    内容模块加了 RSS 订阅源(/rss.xml):官方插件生成 feed,页脚与内容页加入口,head 里也补了自动发现标签——以后写文章,订阅工具能直接跟进。

    • Astro
    • RSS
  23. 完成

    文章媒体配套优化

    给内容模块补了媒体能力:图片自动懒加载(rehype 插件,零依赖)、音频视频播放器随双主题变色(color-scheme 方案)、单文件 25MB 以内的上传约定。

    • Astro
    • 媒体
    • 性能
  24. 完成

    本站搭建

    用 Astro 从零搭了个人主页:双主题、零后端,部署到 Cloudflare Pages。占位图方案也在这里定型。

    • Astro
    • Cloudflare Pages
    • CSS

留言板

来都来了,说点什么再走。