feat: add repeated dual-QR A4 resource headers
This commit is contained in:
@@ -47,6 +47,23 @@
|
||||
"side_margin_tree_layout": {
|
||||
"$ref": "#/$defs/sideMarginLayout"
|
||||
},
|
||||
"reference_registries": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["uuid", "source"],
|
||||
"properties": {
|
||||
"uuid": {
|
||||
"$ref": "#/$defs/uuid"
|
||||
},
|
||||
"source": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"learning_effects": {
|
||||
"type": "object",
|
||||
"minProperties": 1,
|
||||
@@ -147,6 +164,26 @@
|
||||
}
|
||||
},
|
||||
"$defs": {
|
||||
"uuid": {
|
||||
"type": "string",
|
||||
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
|
||||
},
|
||||
"externalReference": {
|
||||
"type": "object",
|
||||
"required": ["kind", "registry_uuid", "uuid"],
|
||||
"properties": {
|
||||
"kind": {
|
||||
"enum": ["strategy", "card", "content", "formula"]
|
||||
},
|
||||
"registry_uuid": {
|
||||
"$ref": "#/$defs/uuid"
|
||||
},
|
||||
"uuid": {
|
||||
"$ref": "#/$defs/uuid"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"stringList": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
@@ -174,6 +211,10 @@
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"series_title": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"number": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
@@ -242,18 +283,65 @@
|
||||
"checked_by": { "type": "string" },
|
||||
"approved_by": { "type": "string" },
|
||||
"title": { "type": "string" },
|
||||
"url": { "type": "string" },
|
||||
"url_host_uuid": { "type": "string" },
|
||||
"url": {
|
||||
"type": "string",
|
||||
"pattern": "^https?://"
|
||||
},
|
||||
"repository_url": {
|
||||
"type": "string",
|
||||
"pattern": "^https?://"
|
||||
},
|
||||
"url_host_uuid": {
|
||||
"type": "string",
|
||||
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
|
||||
},
|
||||
"url_port": { "type": ["string", "integer"] },
|
||||
"doc_uuid": { "type": "string" },
|
||||
"doc_uuid": {
|
||||
"type": "string",
|
||||
"pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
|
||||
},
|
||||
"revision": { "type": "string" },
|
||||
"issued_on": { "type": "string" },
|
||||
"series": { "type": "string" },
|
||||
"document_type": { "type": "string" },
|
||||
"tool": { "type": "string" },
|
||||
"sheet": { "type": "string" },
|
||||
"show_qr": { "type": "boolean" }
|
||||
"sheet": {
|
||||
"type": "string",
|
||||
"description": "Legacy static sheet label. Repeated page headers compute page/total dynamically."
|
||||
},
|
||||
"show_qr": { "type": "boolean" },
|
||||
"show_repository_qr": { "type": "boolean" },
|
||||
"height_cm": { "const": 3 },
|
||||
"repeat_on_every_page": { "const": true },
|
||||
"replace_front_matter": { "const": true }
|
||||
},
|
||||
"allOf": [
|
||||
{
|
||||
"if": {
|
||||
"required": ["show_qr"],
|
||||
"properties": {
|
||||
"show_qr": { "const": true }
|
||||
}
|
||||
},
|
||||
"then": {
|
||||
"anyOf": [
|
||||
{ "required": ["url"] },
|
||||
{ "required": ["url_host_uuid", "doc_uuid"] }
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"required": ["show_repository_qr"],
|
||||
"properties": {
|
||||
"show_repository_qr": { "const": true }
|
||||
}
|
||||
},
|
||||
"then": {
|
||||
"required": ["repository_url"]
|
||||
}
|
||||
}
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"sideMarginLayout": {
|
||||
@@ -469,10 +557,49 @@
|
||||
"items": {
|
||||
"$ref": "#/$defs/sectionStep"
|
||||
}
|
||||
},
|
||||
"assets": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/$defs/sectionAsset"
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"sectionAsset": {
|
||||
"type": "object",
|
||||
"required": ["path", "caption", "label"],
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"caption": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"label": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z0-9][A-Za-z0-9:.-]*$"
|
||||
},
|
||||
"alt": {
|
||||
"type": "string"
|
||||
},
|
||||
"kind": {
|
||||
"enum": ["screenshot", "figure", "diagram"]
|
||||
},
|
||||
"width": {
|
||||
"type": "number",
|
||||
"minimum": 0.1,
|
||||
"maximum": 1.0
|
||||
},
|
||||
"full_size_link": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"sectionStep": {
|
||||
"type": "object",
|
||||
"required": ["id", "title", "tree_refs"],
|
||||
@@ -506,6 +633,12 @@
|
||||
},
|
||||
"figure_refs": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
},
|
||||
"references": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/$defs/externalReference"
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
@@ -520,6 +653,21 @@
|
||||
"criterion": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"flow": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"$ref": "#/$defs/taskFlowItem"
|
||||
}
|
||||
},
|
||||
"assessment_criterion_ref": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -532,6 +680,56 @@
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"taskFlowItem": {
|
||||
"oneOf": [
|
||||
{ "$ref": "#/$defs/taskBlock" },
|
||||
{ "$ref": "#/$defs/taskExercise" }
|
||||
]
|
||||
},
|
||||
"taskBlock": {
|
||||
"type": "object",
|
||||
"required": ["kind", "id", "title"],
|
||||
"properties": {
|
||||
"kind": { "const": "block" },
|
||||
"id": { "type": "string", "minLength": 1 },
|
||||
"title": { "type": "string", "minLength": 1 },
|
||||
"content_tex": { "type": "string" },
|
||||
"steps": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/$defs/taskBlockStep" }
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"taskBlockStep": {
|
||||
"type": "object",
|
||||
"required": ["id", "title"],
|
||||
"properties": {
|
||||
"id": { "type": "string", "minLength": 1 },
|
||||
"title": { "type": "string", "minLength": 1 },
|
||||
"content_tex": { "type": "string" },
|
||||
"tree_refs": { "$ref": "#/$defs/stringList" },
|
||||
"references": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/$defs/externalReference" }
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"taskExercise": {
|
||||
"type": "object",
|
||||
"required": ["kind", "id", "title", "prompt_tex", "criterion"],
|
||||
"properties": {
|
||||
"kind": { "const": "exercise" },
|
||||
"id": { "type": "string", "minLength": 1 },
|
||||
"title": { "type": "string", "minLength": 1 },
|
||||
"prompt_tex": { "type": "string", "minLength": 1 },
|
||||
"evidence_tex": { "type": "string" },
|
||||
"criterion": { "type": "string", "minLength": 1 },
|
||||
"based_on": { "$ref": "#/$defs/stringList" }
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"procedureStep": {
|
||||
"type": "object",
|
||||
"required": ["step", "action", "condition"],
|
||||
|
||||
Reference in New Issue
Block a user