2.2 用YAML格式编写牌堆(以 Visual Studio Code 为例)
我们介绍一种代码格式,即 YAML
格式,它的示例如下:
目标1:
- 参数1
- 参数2
- 参数n
其对应的 json
牌堆的内容如下:
{
"目标1": [
"参数1",
"参数2",
"参数n"
]
}
可以看到 YAML
格式相对于 json
格式明显更适合阅读,但是,当前版本的 Dice! 并无法直接读取 YAML
牌堆(如果你自行魔改了请无视,不过你既然能魔改源码还需要看这份文档吗)
该问题的解决方案很简单,在 Visual Studio Code 中有一个第三方的加载项 json2yaml
,利用该加载项即可快速实现 json
文件和 yaml
文件的格式转换。
下面介绍 Visual Studio Code 中 json2yaml
加载项的安装方法,如你对 Visual Studio Code十分了解,可以略去这一部分。
json2yaml
加载项的安装
在软件界面最左侧找到加载项,输入 json2yaml
,点击对应的插件右下方的 install
按钮进行安装。
安装结束后,你可以打开任意一个 json
文件。并使用键盘上的 F1
键打开操作,如没有问题,你应当看到这个工具的菜单(可能同时提供了其他的工具的菜单)。如果没有看到,尝试在此处输入 json
或 yaml
,成功安装后会出现这两个菜单。
利用如上操作,你可以快速进行 json
和 yaml
的文件转换,该转换方案不受文件的拓展名(即后缀)决定,仅仅取决于你是否使用了正确的代码格式。
YAML
格式说明
YAML
格式文件的后缀名为 .yml
,示例格式如下:
韵律源点:
- |-
这位摘星人,你随机到的曲目是
{韵律源点改后数据}
速度:{速度}
速度:
- 1速
- 1速
- 2速
- 2速
- 2速
韵律源点改后数据:
- "{PST}"
- "{PRS}"
- "{PRS}"
- "{PRS}"
PST:
- |-
[CQ:image,file=/Arcaea/auxesia.jpg]
Auxesia
Memory Archive曲目
曲师:ginkiha
曲目:Auxesia [PST]
难度:3
Note数:385
封面的光酱好可爱。
- |-
[CQ:image,file=/Arcaea/crosssoul.jpg]
CROSS✝︎SOUL
Memory Archive曲目
曲师:HyuN
曲目:CROSS✝︎SOUL [PST]
难度:4
Note数:606
魔能蛇曲
在 yaml
格式中,
- 缩进被视为格式的一部分(这一点在
json
格式中不做要求),为 4 个半角空格或一个 TAB 键; - 多行内容前用
|-
声明多行,并直接换行后在内容前空 8 个空格或两个 TAB 键; - 不得在
-
后直接以[]
开头;
以及一些不做强制的格式,如引用其他词条时单独的花括号 {}
不必须以半角双引号 ""
包裹。如你的代码格式存在问题,可以在底部看到错误提示。
简化的 YAML
处理方案
尽管 YAML
格式已经对于 JSON
格式进行了大幅度的简化,但对于编程基础稍弱的作者来说仍然容易出错。在此做出如下建议:
如软件不报错,则不需在直接单独引用其他词条而无其他内容时以
""
包裹内容:即韵律源点改后数据: - {PST}
而非
韵律源点改后数据: - "{PST}"
在处理换行时,仍然采用
JSON
文件的\n
进行描述:PST: - \n[CQ:image,file=/Arcaea/auxesia.jpg]\nAuxesia\nMemory Archive曲目\n曲师:ginkiha\n曲目:Auxesia [PST]\n难度:3\nNote数:385\n封面的光酱好可爱。
但是这样处理后,使用
json2yaml
插件转换为JSON
格式会将全部的\n
转换为\\n
,因此还需要使用“替换”功能将全部的\\n
替换为原本的\n
在 Visual Studio Code 中,替换功能的快捷键为
Ctrl+H
通过如上操作,你可以使用更为简洁的 YAML
格式编写牌堆并转换为可用的 JSON
牌堆。