检查规则
feyxo check 和扉阅装扩展包时用的是同一份检查。这一页的条数和每一条的说法,都是从检查器读出来的。
文件
小节标题“文件”- 只许
.json、.md、.jsonl(外观包另外认两个.png)。 - 单个文件最多 1 MB,全部最多 8 MB。
- 哪里都不许写网址(清单里的
homepage、updateUrl除外):这里只能放文字,不能从网上加载东西。 - 一个扩展包只能是一种
type;practice(题型)、panel(记录看板)要写代码,这一版装不了。
名字
小节标题“名字”id里不能含feyxo;name、author里不能含“扉阅”或feyxo(不分大小写)。这两个名字留给扉阅自己。id写成作者/名字,各是小写字母、数字、连字符。
发布前的要求(feyxo check 比装的时候多查两样)
小节标题“发布前的要求(feyxo check 比装的时候多查两样)”- 要写
license(写哪一种自己选,检查器不限定)。 - 每个语法点至少 10 句评测句(
points/<id>/cases.jsonl)。
我们的规矩
小节标题“我们的规矩”检查器只能查出格式问题,查不出意图。所以另外说明白,扩展包不许:联网、收集句子、放广告、冒用扉阅的名字。前两条在技术上也没有路:扩展包只有数据,没有代码,碰不到网络,也碰不到用户读的句子。
每一条不合格是怎么说的
小节标题“每一条不合格是怎么说的”装的时候和 feyxo check 打出来的每一条,后面都跟一句人话。下面是全部 47 种({f} 是出问题的那一项的名字,会被换成具体的字段名;以简体中文界面为准):
| 代号 | 说法 |
|---|---|
required | 少了{f} |
type | {f}写得不对 |
maxLength | {f}太长了 |
pattern | {fd}写法不对 |
enum | {f}不是认得的一种 |
minimum | {f}太小了 |
maximum | {f}太大了 |
minItems | {f}太少了 |
maxItems | {f}太多了 |
uniqueItems | {f}有重复的 |
zones | 场地里摆的格子跟列出来的格子对不上 |
range | 标几段要在 1 到 3 之间 |
unknown_name | {f}不是公开的名字(小节名照公开的写,字段名要跟内置的一字不差) |
before_heading | 第一个“## 小节名”前面不能有别的话(要换开头,就写“## start”) |
folder | 语法点的编号跟它的文件夹名对不上 |
reserved | {f}不能用“扉阅”“feyxo”,这两个名字留给扉阅自己 |
url | 写了网址:这里只能放文字,不能从网上加载东西 |
not_data | 不是文字数据(只收 .json、.md、.jsonl) |
too_big | 太大了(一个文件最多 1 MB,全部最多 8 MB) |
json | 打不开,不像是扉阅的扩展包 |
no_manifest | 没有 feyxo-plugin.json,不像是扉阅的扩展包 |
newer_app_needed | 是给新版扉阅做的,先把扉阅更新一下 |
no_upgrade | 格式太老了,这版扉阅认不出来 |
tag | {f}的记号没写对 |
unbalanced | {f}的记号没配对(⟦if⟧、⟦join⟧ 要有 ⟦end⟧) |
slot | {f}写了只有扉阅自己能用的空位 |
later | 是题型包或记录看板包:这两类要写代码,现在还不能装 |
same_mark | {f}跟同一组里另一种样子一模一样,分不出来 |
only_color | “放对”和“放错”只差颜色:分不清红绿的人看不出来,线型或粗细也得不一样 |
slots | {f}的占位({…})跟原来的对不上 |
missing | 缺了“{f}”这一句 |
empty | {f}什么都没写 |
nested | 组合里不能再放组合 |
not_needed | 打进来了却没写在“要先装的”里 |
member | 缺了要装的那一个(组合要把它打进来) |
version_range | 版本不在“要先装的”写的范围里 |
bad_slot | {f}里写了不认得的占位(只能用 {sentence}、{date} 这些) |
overlap | {f}跟前一块重叠了(分块按位置排、互不重叠) |
outside | {f}超出了这一句(词号从 0 数,标点也占一个) |
edge | {f}的头尾得是词,不能是标点 |
trunk | 分块里至少要有一块主干 |
cycle | {f}绕圈了:修饰来修饰去又回到了自己 |
pair | {f}放的地方不对:打开、关上总开关的按钮只能放在“总开关开着”这个条件的那一步里 |
once | {f}只能放一处 |
sentences | {f}得是完整的一句,前后不留空白 |
line_shared | {f}要跟下划线的颜色、线型、粗细一样:浏览器的文字装饰只有一份 |
forbidden | {f}不许写在组合里:这是你自己在设置里决定的 |