Add shared card schemas layouts and renderer
This commit is contained in:
@@ -0,0 +1,524 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "Źródło karty pracy",
|
||||
"description": "Schemat wspólnego źródła treści generowanego do TeX i HTML.",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"schema",
|
||||
"card",
|
||||
"generated",
|
||||
"template",
|
||||
"learning_effects",
|
||||
"assessment_criteria",
|
||||
"educational_requirements",
|
||||
"sections",
|
||||
"tasks",
|
||||
"tasks_order"
|
||||
],
|
||||
"properties": {
|
||||
"$schema": {
|
||||
"type": "string"
|
||||
},
|
||||
"schema": {
|
||||
"const": "esc-card-source.v1"
|
||||
},
|
||||
"card": {
|
||||
"$ref": "#/$defs/card"
|
||||
},
|
||||
"generated": {
|
||||
"$ref": "#/$defs/generated"
|
||||
},
|
||||
"template": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"dictionary_refs": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"pp_json_root": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"side_margin_tree_layout": {
|
||||
"$ref": "#/$defs/sideMarginLayout"
|
||||
},
|
||||
"learning_effects": {
|
||||
"type": "object",
|
||||
"minProperties": 1,
|
||||
"additionalProperties": {
|
||||
"$ref": "#/$defs/learningEffect"
|
||||
}
|
||||
},
|
||||
"assessment_criteria": {
|
||||
"type": "object",
|
||||
"minProperties": 1,
|
||||
"additionalProperties": {
|
||||
"$ref": "#/$defs/assessmentCriterion"
|
||||
}
|
||||
},
|
||||
"educational_requirements": {
|
||||
"type": "object",
|
||||
"minProperties": 1,
|
||||
"additionalProperties": {
|
||||
"$ref": "#/$defs/educationalRequirement"
|
||||
}
|
||||
},
|
||||
"sections": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/$defs/section"
|
||||
}
|
||||
},
|
||||
"tasks": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/$defs/task"
|
||||
}
|
||||
},
|
||||
"tasks_order": {
|
||||
"type": "array",
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"model_block": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"steps": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"code_block": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"blocks": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"slug": {
|
||||
"type": "string"
|
||||
},
|
||||
"goal": {
|
||||
"type": "string"
|
||||
},
|
||||
"web_steps": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
},
|
||||
"web_commands": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["label", "command"],
|
||||
"properties": {
|
||||
"label": {
|
||||
"type": "string"
|
||||
},
|
||||
"command": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"hardware_procedure": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/$defs/procedureStep"
|
||||
}
|
||||
}
|
||||
},
|
||||
"$defs": {
|
||||
"stringList": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"id",
|
||||
"series",
|
||||
"number",
|
||||
"count",
|
||||
"slug",
|
||||
"title",
|
||||
"version",
|
||||
"uuid"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"series": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"number": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"count": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"slug": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9-]*$"
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"generated": {
|
||||
"type": "object",
|
||||
"required": ["tex", "html"],
|
||||
"properties": {
|
||||
"tex": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"html": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"html_css": {
|
||||
"type": "string"
|
||||
},
|
||||
"bibliography": {
|
||||
"type": "string"
|
||||
},
|
||||
"report_tasks_json": {
|
||||
"type": "string"
|
||||
},
|
||||
"report_tasks_tex": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"sideMarginLayout": {
|
||||
"type": "object",
|
||||
"required": ["columns"],
|
||||
"properties": {
|
||||
"columns": {
|
||||
"type": "array",
|
||||
"minItems": 2,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["id", "label", "side", "tree"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"enum": ["ogolne", "zawodowe"]
|
||||
},
|
||||
"label": {
|
||||
"type": "string"
|
||||
},
|
||||
"side": {
|
||||
"enum": ["left", "right"]
|
||||
},
|
||||
"tree": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"learningEffect": {
|
||||
"type": "object",
|
||||
"required": ["text"],
|
||||
"properties": {
|
||||
"text": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"label": {
|
||||
"type": "string"
|
||||
},
|
||||
"bloom_level": {
|
||||
"type": "string"
|
||||
},
|
||||
"assessment_criteria": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"assessmentCriterion": {
|
||||
"type": "object",
|
||||
"required": ["text", "learning_effects"],
|
||||
"properties": {
|
||||
"text": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"learning_effects": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"educationalRequirement": {
|
||||
"type": "object",
|
||||
"required": ["text", "learning_effects", "learning_tree"],
|
||||
"properties": {
|
||||
"text": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"label": {
|
||||
"type": "string"
|
||||
},
|
||||
"learning_effects": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
},
|
||||
"learning_tree": {
|
||||
"type": "object",
|
||||
"required": ["ogolne", "zawodowe"],
|
||||
"properties": {
|
||||
"schema": {
|
||||
"type": "string"
|
||||
},
|
||||
"policy": {
|
||||
"type": "string"
|
||||
},
|
||||
"ogolne": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/$defs/treeItem"
|
||||
}
|
||||
},
|
||||
"zawodowe": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/$defs/treeItem"
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"treeItem": {
|
||||
"type": "object",
|
||||
"required": ["tree_id", "effect_ref", "display", "text", "kw"],
|
||||
"properties": {
|
||||
"tree_id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"effect_ref": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"display": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"text": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"source": {
|
||||
"type": "string"
|
||||
},
|
||||
"official": {
|
||||
"type": "string"
|
||||
},
|
||||
"local": {
|
||||
"type": "string"
|
||||
},
|
||||
"kind": {
|
||||
"type": "string"
|
||||
},
|
||||
"kw": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"$ref": "#/$defs/treeCriterion"
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"treeCriterion": {
|
||||
"type": "object",
|
||||
"required": ["criterion_ref", "display", "text"],
|
||||
"properties": {
|
||||
"criterion_ref": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"display": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"text": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"source": {
|
||||
"type": "string"
|
||||
},
|
||||
"official": {
|
||||
"type": "string"
|
||||
},
|
||||
"local": {
|
||||
"type": "string"
|
||||
},
|
||||
"kind": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"section": {
|
||||
"type": "object",
|
||||
"required": ["title"],
|
||||
"properties": {
|
||||
"title": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"content_kind": {
|
||||
"type": "string"
|
||||
},
|
||||
"content_tex": {
|
||||
"type": "string"
|
||||
},
|
||||
"area_tree_refs": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
},
|
||||
"educational_requirement_refs": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
},
|
||||
"learning_effect_refs": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
},
|
||||
"assessment_criterion_refs": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
},
|
||||
"steps": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/$defs/sectionStep"
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"sectionStep": {
|
||||
"type": "object",
|
||||
"required": ["id", "title", "tree_refs"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"tree_refs": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"educational_requirement_refs": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
},
|
||||
"learning_effect_refs": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
},
|
||||
"assessment_criterion_refs": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
},
|
||||
"equation_refs": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
},
|
||||
"figure_refs": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"task": {
|
||||
"type": "object",
|
||||
"required": ["prompt_tex", "criterion"],
|
||||
"properties": {
|
||||
"prompt_tex": {
|
||||
"type": "string"
|
||||
},
|
||||
"criterion": {
|
||||
"type": "string"
|
||||
},
|
||||
"assessment_criterion_ref": {
|
||||
"type": "string"
|
||||
},
|
||||
"educational_requirement_refs": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
},
|
||||
"learning_effect_refs": {
|
||||
"$ref": "#/$defs/stringList"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"procedureStep": {
|
||||
"type": "object",
|
||||
"required": ["step", "action", "condition"],
|
||||
"properties": {
|
||||
"step": {
|
||||
"type": "string"
|
||||
},
|
||||
"action": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"condition": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
}
|
||||
Reference in New Issue
Block a user