官方更新页面模块说明
更新说明
目前的官方更新页面在 github 并没有直接对应于一个.md 文件,
目前的机制采用 build wiki 时,
利用 vitepress 的 include 功能,
将一个个的.md 文件引入到该页面中,
以下为自动产生的 news.md 范本示例。
---
title: 官方更新
tags:
- news
- 新闻
- 游戏更新
- 更新
---
# {{ $frontmatter.title }}
<!--@include: @/other/news/{日期}-{次序}-{md摘要}.md-->
<!--@include: @/other/news/20240628-03-demoUpdate.md-->
<!--@include: @/other/news/20240628-02-release.md-->
<!--@include: @/other/news/20240628-01-release.md-->
<!--@include: @/other/news/20240627-01-release.md-->如何命名
命名规则如下, 日期为8码数字, 如20240708
次序为2码数字, 如01, 02, 03... 用来表示当天的第几则信息
(不管是哪一种分类都视为同样, 有几个文件就直接加数字就可以了。)
md 摘要为一个分类 key, 共四种:
| key | 中文标签 | 用于 | 对应 Steam 标签 |
|---|---|---|---|
release | 游戏更新 | 正式版例行版本/修正更新 | patchnotes |
demoUpdate | 试玩版更新 | DEMO/试玩版更新 | (试玩版时期, 现已结束) |
majorUpdate | 重大更新 | 具名大型更新正式上线时 (如《崆峒神威》) | 无专属标签, 手动指定 |
announce | 公告/新闻 | 非版本更新的一切: PV、预告、活动、声明 | 无标签 |
自动抓取时 (node tools/fetchNews.js) 只能靠 Steam 标签分类, 而 Steam 只有 patchnotes 与「无标签」两种, 所以自动化只会产出 release 或 announce。majorUpdate / demoUpdate 没有对应标签, 需在 merge 前手动把文件名 suffix 改掉。
然后将这三个信息以-连接起来,
最终以.md 结尾。
像是这样: 20240628-02-release.md 或 20240628-01-demoUpdate.md 都是可以的。
@/other/news/{日期}-{次序}-{md摘要}.md如何使用
接着以 @/other/news/20240705-02-demoUpdate.md为例,
本次更新以后, 会将此模块直接引入到 news.md 中,
因此不需要在每一次更新的时候,
都要添加标题与文章 tag, title 等,
那些都可以直接重复使用,
上述红色部分不需要再次写入.md 中。
具体而言,
若您需要添加官方更新,
请先创建一个.md 档, 依照命名格式,放在 docs/other/news/ 底下
写完更新内容后运行 npm run build 就可以了。
## [试玩版更新 v2.1.4](https://store.steampowered.com/news/app/1859910/view/4267805297667980568?l=tchinese)
发表时间
2024 年 7 月 5 日 周五
功能调整
游戏存盘路径调整为
`%userprofile%\AppData\LocalLow\Obb Studio\Mortal\Save`
已有正式版的玩家,若要启动硬盘中的DEMO版本,请先进行存盘备份
正式版本的存盘路径,它是Steam云端存盘同步的文件夹
`%userprofile%\AppData\LocalLow\Obb Studio\Mortal\{SteamId}`
如何查找你的SteamId:
个人文件->帐户详细数据->帐户名称的下方半自动抓取(尚未调度时的补偿办法)
目前没有任何调度或 GitHub Action 会自动抓 Steam 新闻,
所以在「自动化上线」之前,请用 tools/fetchNews.js 手动抓取当作补偿办法。
它会抓活侠传 Steam 新闻,依分类产出符合上述格式的草稿档到 docs/other/news/。
用法
node tools/fetchNews.js --selftest # 纯函数回归测试, 印 "selftest OK" 即正常
node tools/fetchNews.js --dry-run # 只列出会产生哪些档, 不写入
node tools/fetchNews.js # 实际产出草稿档产完草稿后 → 人工检查/微调内容 → 需要时把文件名 suffix 改成 demoUpdate / majorUpdate → npm run build。
运作方式
- 来源:Steam RSS(
?l=tchinese)提供正确的 view 链接、繁中标题、发表日期; Steam JSON API 提供tags与内文。两者以同一个 unixdate对接 (RSS 的 gid 才是正确链接,JSON API 的 gid 不同,不能用来组链接)。 - 分类:只看 Steam 标签 ——
patchnotes→release,其余 →announce。demoUpdate/majorUpdate没有对应标签,需依上表判断后手动改文件名 suffix。 - 去重:扫现有文件的
/view/{gid},已存在就跳过(重复运行安全)。 - 排版:自动套用本页的旧风格(每行结尾两个空格硬换行);
release另外把 Steam 的调整/修正标题改成功能调整/功能修正。 - 防呆:RSS 解析到 0 则会直接报错(避免 feed 格式改变时静默当成「没有新闻」); 某则对不到 API 内文时会 warn 提醒该篇 body 需手补。
注意
产出为草稿,BBCode→markdown 为近似转换,发表日期取 Steam 发布时间(未必等于内文标注的更新日),请 merge 前人工确认。