最开始,只是觉得自己的博客该重新设计、整理一下了。打开目录,发现这里除了文章,还放着不少平时开发留下来的测试页面。于是,这次整理就从博客首页,一路延伸到了工具箱。

现在新版已经部署到了 GitHub Pages。趁过程还清楚,写一篇手记,把这次改了什么、为什么这样改,以及还没做完的事情记下来。

先让文章好找一点

这个博客始于 2015 年,改造前共有 33 篇文章,最近的一篇停留在 2019 年。内容主要是 iOS 开发、技术实践、Mac 工具,也有一些生活记录。旧页面是 Gridea 导出的静态文件,首页用大幅配图串起文章,翻起来很长,想快速找一篇旧文并不方便。

这次和 Codex 一起动手时,我选的方向是「简洁的个人技术手记」。首页把文章、主题和个人介绍重新排了一遍,视觉上用纸白、墨黑和一点暖黄色。黄色也呼应了原来的插画头像,这个小站还留着熟悉的样子。

新版博客首页:纸白背景、深色文字,以及暖黄色的个人介绍卡片
改版后的首页。文章入口清楚了,原来的头像也留下来了。

首页现在放最近的手记和一篇推荐阅读,归档按年份收拢全部文章,主题页保留 iOS、技术、Mac、生活四条线索。搜索可以查标题、主题和正文,按 / 打开,按 Esc 关闭。长文章补上了目录,代码块、段落间距和手机排版也一起整理了。

我比较喜欢首页现在那句话:保持好奇,持续记录。它和这个博客最初想做的事情很接近。

旧内容,照原样留下来

整理旧博客时,最在意的还是文章本身。原目录里没有找到 Markdown 源文件,所以先把所有文章的标题、日期、标签和 HTML 正文提取出来,集中保存在 content/posts.json,再用共享的页面结构重新生成。

原有 33 篇文章的正文和日期都与旧版本逐一核对过,旧文章地址、主题地址和分页地址继续保留。原先被用作「关于」入口的那篇《跟自己做个了断吧》,也仍然是一篇可以读到的旧文章,另外新增了独立的关于页面。

旧文章中的技术和工具已经有了变化,这次没有改写它们。它们记录的是当时的问题与理解,先完整留下来,后续有需要时再单独补充。

配图也暴露出一些时间留下的问题:仓库原本就缺少两张本地图片,还有文章依赖旧图床。现在加载失败会给出提示,原始图片地址仍然保留;这部分缺失的内容,暂时还没有找回来。

顺手把工具箱收拾一下

博客页面的风格确定之后,我又想起这个目录里还有不少测试工具。以前它们散落在不同地址,有的是几个裸按钮,有的是完整的编译应用,还有的结果只会打印到控制台。

于是给它们加了一个统一的工具箱入口,按日常工具、开发调试和钱包测试分组,支持分类筛选和搜索。一共整理了 11 个工具,也顺带统一了两份 App Support 页。

新版工具箱,按日常工具、开发调试和钱包测试展示工具卡片
散落的测试页,现在有了一个可以随时找到的入口。

界面统一之后,也顺着实际操作修了一些问题:

  • 出入境天数计算:保留 PDF 导入,增加文字输入、年份选择、自定目标和 CSV 导出;补上跨年、闰年、同日往返等检查,并修正日期与方向跨行错配的问题。统计口径写在界面上,结果仍需结合记录完整性核对。
  • ETH 交易解码:金额、Gas 等整数字段改用精确字符串展示,避免大整数精度丢失;目前支持 Legacy 交易,遇到 Typed 交易会明确提示。
  • 二维码:保留原来的参数化风格,把 SVG、PNG、JPG 导出接到本地实现,限制旧应用的外部统计请求。内置预览没有返回下载完成回执,因此页面也保留了可再次点击的下载链接。
  • Deeplink 和 JS Bridge:链接可以先填入、修改再打开;原生接口按用途分组,默认预览请求,需要在客户端中实际调用时再切换模式。
  • 钱包测试:补上环境检测、请求结果和错误日志,原有 TRON 回归样本保留。样本里的固定地址、区块和过期时间仍然是历史测试数据。

二维码、Direct Connect 和 E2E DApp 只有编译产物,因此保留了原 JS bundle,主要通过外层页面、样式和适配脚本整理它们。E2E 页原有的 55 个表单控件 ID 也做了核对,避免换界面时把原来的绑定弄丢。

这些测试也有边界。本地计算、PDF 解析、页面搜索和请求预览都做了验证,TRON 用例用了模拟 Provider。真实的钱包签名、授权、交易和原生调用,后续还要在对应客户端里实测。

把生成和部署的步骤理顺

博客主体仍然是静态 HTML、CSS 和 JavaScript,用 Python 标准库生成页面。改公共导航或页面结构时,集中修改模板,再重新生成,就能同步到文章和工具页。

python3 scripts/build.py
python3 scripts/check.py

检查脚本会核对文章正文、本地链接、目录锚点、主题归属和搜索索引。工具的日期边界、解码精度和模拟钱包用例,则有单独的测试脚本:

node scripts/test-tools.cjs

首次部署前检查了 62 个页面,也看过桌面和手机上的实际效果。发布仍沿用 GitHub Pages,推送到 master 后触发构建和部署。根目录补上了 .nojekyll,让静态文件直接发布,原来以下划线开头的文章地址也在线上回访确认过。

新版上线后,又检查了自定义域名的 HTTPS、首页、工具页和全文搜索。能在本地打开是一回事,部署之后这些入口是否都正常,还是值得再走一遍。

写作流程,还差最后一块

页面收拾好之后,很自然就问到了一个问题:以后怎么写博文?

目前的实际流程,是在文章数据里新增一条记录,维护标题、日期、标签、摘要和 HTML 正文,再生成页面、预览、提交推送,RSS 也需要同步。这篇改造手记,就是按这个流程加进来的。

这套方式能用,但日常写作还不够顺手。后面比较想补的是「一个 Markdown 文件,一篇文章」:准备好模板,正文直接写 Markdown,图片、代码、摘要和订阅源一起处理。

这次先把新版发布出来,写作入口留作下一步。动过一轮之后,至少文章和工具都重新有了清楚的位置,也有了一个可以继续往下整理的基础。

2015 年写第一篇博客时,就希望通过文字整理知识,也让以后的自己能看到当时的成长。多年之后回头看,那些旧记录还有用。把这次改造也记下来,算是接着往后写一页。