← 回到全部手记

2026.07.25 · 建站手记

建站记录 2:让首页真正活起来

Lindeer · 约 5 分钟阅读

图片
第一篇建站记录写在网站刚有基本结构的时候。那时最重要的问题是:内容放在哪里、怎样发布、哪些信息应该公开。

到了第二阶段,问题变了。页面已经能用,但还不像一个真正属于自己的首页:开屏之后留白太多,信息集中在中间,两侧空间没有发挥作用;音乐、天气、公告和社交入口也彼此分散。于是这次更新的目标,不再是继续堆功能,而是让首页从“展示页”变成一个可以停留、可以探索的信息入口。

从好看走向好用

全屏开场保留下来,因为它仍然是网站最鲜明的第一印象。但开场以下不再只是窄栏文章列表,而是用更完整的横向空间组织内容。

开场负责情绪,正文负责信息。两者之间用动态波形连接,首页、文章、动态和关于页都沿用同一套过渡语言。这样做不是为了增加一个动画特效,而是让背景图、玻璃导航和正文区之间有明确的层次,不会在深色模式下突然掉进一整块黑色区域。

波形动画只改变形状和位置,不参与正文布局。系统检测到“减少动态效果”偏好时,动画会停下来,页面仍然保持完整结构。

玻璃材质需要克制

这次保留了 iOS 风格的半透明玻璃,但没有把所有内容都塞进模糊卡片。

导航、开屏信息板、音乐与天气组件适合使用玻璃材质,因为它们需要浮在背景之上;文章正文和主要信息区则继续使用清晰的色块、标题和分隔线。玻璃的作用是建立层级,不是遮住内容。

深色模式也不再简单地把背景改成纯黑。页面使用带冷色倾向的深色渐变,让波形下方、正文区和卡片之间保持连续,同时确保文字、按钮边界和焦点状态仍有足够对比度。

把常用入口放回首页

“写下一些正在发生的事”下面增加了 B站、小红书、X 和 Steam 的平台直达。访问者不需要先进入关于页,也不用复制昵称重新搜索。

这些入口使用真实链接,并保留清晰的可访问名称。桌面端和移动端共用同一份数据,因此以后更换账号地址时,不需要分别修改两套页面。

公告也被放进首页信息区。它不是弹窗,不会打断阅读,只负责告诉访问者这里最近发生了什么,并提供一个可继续了解的入口。

音乐播放器不只是一个播放按钮

播放器现在只接受站内音频,不再连接网易云歌单或第三方音乐接口。指定歌曲的歌名、作者与时长已经写入配置;在有权公开播放的音频文件上传前,播放按钮会保持禁用,也不会用环境音伪装成歌曲。

这样处理是因为音乐平台的分享页不是音频文件,也不能证明第三方网站获得了复制和公开播放的许可。后台仍可上传 MP3、Ogg、M4A 或 WAV;上传后会生成站内地址,并通过 CDN 长期缓存。

音乐不会自动播放,首载也不会读取音频元数据。只有访问者点击播放后,页面才会挂载站内音频地址;播放器会记住进度和音量,并在站内切换页面时保持同一个音频节点。

后台字段也明确提醒:只能填写真实音频文件或使用上传功能,不能把音乐平台网页链接误当成音源。

天气改为访问者定位并按需加载

天气组件不调用 IP 定位服务,也不会在页面首载时请求位置或天气。只有访问者点击“使用我的位置”后,浏览器才会请求定位授权;授权成功后,页面把经纬度降到小数点后两位,以约公里级精度向 Open-Meteo 读取当前温度与未来三天预报。

页面不会保存坐标。为了显示访客所在地区,同一组降精度坐标还会由浏览器发送给 OpenStreetMap 的 Nominatim 服务做逆地理编码;页面只使用返回的国家、省州、城市和区县名称。点击前不会连接这些服务,也不会在定位失败后改用 IP 推测地区。和所有浏览器直连的第三方请求一样,服务提供方仍会看到请求的网络 IP。

如果访问者拒绝授权、浏览器不支持定位或定位超时,组件会明确说明原因,并暂时显示默认城市“上海”的天气,同时保留“重试定位”入口。定位或天气接口失败不会让整个首页报错。

后台终于可以管理这些组件

音乐来源、歌单链接、接口地址、封面和回退音频都可以在 /admin 中编辑。内容仍然不会因为点击保存就直接覆盖公网:后台先生成不可变 Revision,本机发布器再运行内容校验、30 项回归测试、Hugo 构建和 EdgeOne 部署。

这次发布过程中也暴露了一个真实问题。测试曾把音乐来源硬编码为“本地音频”,所以当后台合法切换到网易云歌单时,构建被错误拦截。修复方式不是把配置改回去,而是让测试验证字段是否合法:来源可以是 local 或 netease,标题必须非空,接口必须是 HTTP 或 HTTPS 地址。

EdgeOne CLI 还出现过另一种情况:公网文件已经更新,但命令进程没有及时退出。发布器因此不能只相信退出码,而要继续核对 /admin-publish.json。只有公网 Revision 与目标一致,后台才显示“已经上线”。

第二阶段留下了什么

这次更新没有让网站变得更“满”,而是让每一块空间有了职责:

  • 开屏负责建立氛围;
  • 平台直达负责快速连接;
  • 音乐和天气负责提供此刻的信息;
  • 文章与动态负责沉淀内容;
  • 后台和发布器负责让更新可以持续发生。

个人网站不会因为功能齐全就完成。更重要的是,它能否诚实地说明数据从哪里来、失败时会怎样、哪些效果只是参考、哪些内容真正属于自己。

建站记录 2 到这里结束。下一阶段不会急着增加更多组件,而会优先观察这些功能在真实访问中的速度、稳定性和使用频率,再决定什么值得保留。

— 谢谢读到这里 —继续翻阅其他手记 ↗原站文章 ↗