Write your own bank as a .json file (UTF-8), then use “Import your own bank” on the catalog page to practice it — nothing is uploaded; it stays in your browser.
A bank is a JSON array of question objects. Three question types are supported: single-choice, multiple-answer, and fill-in-the-blank.
| Field | Required | Meaning |
|---|---|---|
id | ✅ every question | Unique string within the file, e.g. "ch3-12". Progress (wrong/star records) is keyed on it. |
question | ✅ (unless image present) | The stem, plain text. \n makes a line break. |
choices | ✅ for choice questions | Array of at least 2 strings. |
answer | single-choice | 0-based index into choices (first choice = 0). |
answers | multiple-answer | Array of 0-based indexes, e.g. [0,2]. Player switches to checkboxes automatically; all must match. |
type | fill-in only | Set "fill" (or just provide blanks). |
blanks | fill-in | One array per blank, each listing the accepted answers: [["8","eight"]] = 1 blank with 2 accepted spellings; [["a"],["b"]] = 2 blanks. |
question_html | optional (fill-in) | HTML stem with <input data-blank="1"> placed where blanks belong (1-based). Omit it and inputs are appended below the stem. |
answer_sets | optional (fill-in) | Alternative whole-row combinations; any ONE set matching counts as correct. |
image | optional | Image URL or base64 data:image/... string — or an array of them. Shown above the choices. |
source | optional | Where the question came from; shown small under the card. |
check list = checklist).id, fewer than 2 choices, out-of-range answer, fill-in without accepted answers…).题库就是一个 JSON 数组,每个元素是一道题。支持三种题型:单选、多选、填空。
id:每题必填、文件内唯一(错题/收藏记录靠它存)。question:题干纯文本(有 image 时可留空);\n 换行。choices(≥2 个选项)+ answer(正确选项的下标,从 0 开始)。answers: [0,2] 数组代替 answer,播放器自动变复选框,需全对。type:"fill" + blanks——每个空一个数组,列出全部可接受答案,如 [["8","eight"]];判分忽略大小写、多余空格、空格有无(check list = checklist)。image(图片 URL 或 base64 data-URI,可数组)、source(来源标注)、question_html(题干内嵌输入框 <input data-blank="1">)、answer_sets(多组合答案,任一组全匹配即对)。[
{
"id": "demo-1",
"question": "Which fabric is approved for aircraft covering?",
"choices": ["Polyester", "Cotton bedsheet", "Nylon tarp", "Canvas drop cloth"],
"answer": 0,
"source": "Chapter 3 – Coverings"
},
{
"id": "demo-2",
"question": "Select ALL tools required for fabric testing. (multiple answers)",
"choices": ["Punch tester", "Hammer", "Maule tester", "Torque wrench"],
"answers": [0, 2]
},
{
"id": "demo-3",
"type": "fill",
"question": "A hole smaller than ____ inches may be repaired with a doped-on patch.",
"blanks": [["8", "eight"]]
},
{
"id": "demo-4",
"question": "Identify the part shown in the image.",
"image": "https://example.com/part-diagram.png",
"choices": ["Rib", "Spar", "Longeron"],
"answer": 1
}
]
Save as e.g. my-bank.json → catalog page → “Import your own bank”. The Extractor's “导出全部合并 JSON” produces exactly this format. / 保存为 .json 后到目录页导入即可;提取器导出的合并 JSON 就是这个格式。