内容提要
作者记录了将博客从 Stellar 1.18 升级到 1.23 的过程:用正则批量将参考文献改为 Markdown 链接格式,调整页尾许可、作者信息与友链分组配置;梳理 wiki 系统中 _data/wiki.yml、分组 yml 与 source 目录的对应关系;并测试时间线、网易云和 memos 接口。
延伸解读
批量迁移参考文献的实用技巧
作者使用正则表达式将旧版 references 的 YAML 格式批量替换为 Markdown 链接格式,显著减少手动工作量。但需注意,若标题包含特殊字符可能违背 Markdown 语法导致报错,剩余少数需手动修正。这提示迁移时正则并非万能,应预留时间处理边缘情况。
wiki 系统的三层配置关联逻辑
作者梳理了 wiki 系统的配置闭环:_data/wiki.yml 中的列表名指向 _data/wiki/同名.yml 文件,该文件内的 path 参数指向 source/wiki/ 下的目录,而目录内文件的 wiki 字段又需回指列表名。最终上线 URL 仅与 path 中的目录名有关,与列表名无关。理解这一关联可避免配置错位。
页尾与作者信息的配置调整
迁移中需更新 _config.stellar.yml 的 license 字段以自定义页尾许可声明,并在 _data/authors.yml 中维护作者信息。友链和站点分组则要求单独 yml 文件,不再沿用旧结构。这些改动涉及多个配置文件,建议逐项核对避免遗漏。
接口测试与时间线重构状态
作者对网易云和 memos 接口进行了联合测试,并给出了具体 API 地址示例。同时提到万能时间线功能已重构但文档待写、仍在测试中。这表明部分新功能尚未完全稳定,升级后需自行验证相关模块是否正常工作。
Q&A
Stellar 从 1.18 升级到 1.23 后,references 的写法有什么变化?如何批量替换?
references 的写法从原来的 `- title: '...'\n url: '...'` 格式改为 Markdown 链接格式 `- '[$1]($2)'`。可以使用正则表达式批量替换:查找 `- title: '(.*?)'\n url: '(.*?)'`,替换为 `- '[$1]($2)'`。注意如果标题包含特殊字符可能报错,需要手动修改。
升级后如何修改页尾的 license 信息?
在 `_config.stellar.yml` 中修改 `article.license` 字段,例如设置为:`license: | 本文为 [${author.name}](${author.url}) 撰写,采用 [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) 许可协议,转载请注明出处。`
如何配置作者信息?
在 `_data/authors.yml` 中配置作者信息,例如:`ThatCoder: name: '钟意' avatar: /custom/img/author.jpg banner: https://upyun.thatcdn.cn/myself/typora/202401120247887.webp description: 感谢你的阅读, 让我们拥有一段对彼此都有意义的时光.`
friends 和 sites 的分组配置有什么要求?
friends 标签和 sites 标签的分组都需要单独一个 yml 文件来配置。
wiki 系统中 _data/wiki.yml、分组 yml 和 source 目录是如何关联的?
关联逻辑如下:`_data/wiki.yml` 中的列表名字(如 pro_name)指向 `_data/wiki/pro_name.yml` 文件;该文件中的 `path: /wiki/pro_path/` 参数指向 `source/wiki/pro_path/` 文件夹;文件夹内文件的 `wiki: pro_name` 又指回 `_data/wiki.yml` 的列表名字。因此 `_data/wiki.yml`、`_data/wiki/pro_name.yml` 和文件中的 `wiki: pro_name` 必须一致为 pro_name。最终上线的项目在线 URL 与 pro_name 无关,而是关联 `source/wiki/pro_path/` 对应的 pro_path 目录名称。
如何测试网易云和 memos 接口?
网易云接口测试配置:`{ "api": "https://netease.thatapi.cn/user/event?uid=134968139&limit=10" }`;memos 接口测试配置:`{ "api": "https://mem.cns.red/api/v1/memos?filter=creator%3D%3D%27users%2F1%27&pageSize=10" }`。