秘密花园
2023 年 10 月,为了用 Cloudflare 的 Tunnel 功能,我买了一年 jackchou00.icu 这个域名,顺便作为 GitHub 的自定义域名。后来,有了写博客的动力,想多买几年的时候,阿里云上却无法续费,于是换上了之前在别的地方买的一个续费比较便宜的 jackchou.top,然后续到了 2035 年。
作为一个放在 GitHub 上的静态网站,换域名实在是一件再简单不过的事情,无非买个域名,换一下自定义域名和 DNS 记录,而让网站消失在互联网上也是一件同样简单的事情,几乎没有排名和 SEO,一个月都不更新的分享小众领域冷门方向的个人小站,换个域名或是过期,可能就找不到了。
翻看收藏夹里几位前辈的博客,多是一年半载不曾更新,或是再也无法访问的。写个人博客这种全凭自觉的事情,放弃是再自然不过,也许等到我开始工作,甚至换了领域,或者干脆哪天不想写了,这里也会变成一片寂静吧。
我不喜欢“运营”社交媒体的感觉,我会不自觉的去关注那些数据和流量,我也不喜欢博人眼球的标题和内容。在这里写这个博客反而会让我有一种记录和分享的快感,在这里,数据也不重要,因为我根本不统计,我只假设并期待来访者能有所收获,在这里,我只需要对自己负责,好像是在打理一片只属于自己的,却又对全互联网开放的小花园,这种在大庭广众的阴暗角落的感觉很微妙。
不过至少到 2035 年前,您可以通过 jackchou.top 访问这里,之后,也可以用 jackchou00.github.io。我充分相信 Cloudflare 和 Github 的可用性,这里可以说是与天地同寿。
换域名的细节
我本来以为换域名会是一件麻烦事,不过回头想想好像工作量只有改一下 DNS 和 CNAME,更多的是如何让知道这个地方存在的人继续知道,SEO 什么的其实我也无所谓。
我暂时把我所有的域名都重定向过来了,你可以通过 jackchou00.icu, zms.im, jackchou.xyz 访问这里。不过只有 jackchou.top 买的比较久。
如果你在 2025.7-2025.10 这三个多月间访问过这里,也许你会注意到一条横幅,这是 Claude Code 的作品,感兴趣的话请看他自己写的日志。
需求背景
博客域名从 jackchou00.icu
迁移到 jackchou.top
,需要创建一个醒目的横幅通知访问者域名变更,并考虑三个月后的移除便利性。
实现方案
选择的方法
修改 PaperMod 主题的 extend_head.html
文件,这是主题提供的自定义扩展点,所有页面都会加载。
文件位置
themes/PaperMod/layouts/partials/extend_head.html:15-157
核心功能
-
固定顶部横幅
- 使用
position: fixed
固定在页面顶部 - 渐变背景色增加视觉吸引力
- 高 z-index 确保在最上层显示
- 使用
-
双语支持
- 自动检测页面语言(通过
document.documentElement.lang
和 URL 路径) - 中文:
👋 再见,jackchou00.icu 🚀 新的旅途,从 jackchou.top 起程
- 英文:
👋 Goodbye, jackchou00.icu 🚀 A new chapter will begin at jackchou.top
- 自动检测页面语言(通过
-
用户交互
- 可点击 ✕ 按钮关闭
- 关闭状态保存到 localStorage,刷新页面不再显示
- 显示通知时自动给 body 添加
padding-top
避免内容被遮挡
-
自动过期
- 硬编码过期时间:
2025-10-31
(三个月后) - 过期后自动不显示,无需手动操作
- 硬编码过期时间:
-
响应式设计
- 桌面端和移动端不同的布局和间距
- 移动端文字和按钮垂直排列
技术细节
CSS 样式
- 渐变背景:
linear-gradient(135deg, #667eea 0%, #764ba2 100%)
- 链接颜色:黄色
#ffeb3b
增加可读性 - 阴影效果:
box-shadow: 0 2px 10px rgba(0,0,0,0.1)
JavaScript 逻辑
- 使用 IIFE(立即执行函数)包装,避免全局变量污染
DOMContentLoaded
事件确保页面加载完成后执行insertAdjacentHTML
动态插入 HTML
移除方法
有两种移除方式:
方法一:自动过期(推荐)
- 无需任何操作
- 2025 年 10 月 24 日后自动不显示
方法二:手动移除
删除 themes/PaperMod/layouts/partials/extend_head.html
文件中的第 15-157 行:
<!-- Domain Migration Notice -->
<style>
...
</style>
<script>
...
</script>
即删除从 <!-- Domain Migration Notice -->
开始到最后一个 </script>
结束的所有代码。
注意事项
- 主题更新:如果更新 PaperMod 主题,需要重新添加这些代码
- 缓存问题:用户浏览器可能有缓存,新访客会立即看到通知
- SEO 影响:横幅不会影响 SEO,因为它是通过 JavaScript 动态添加的