Add shared card schemas layouts and renderer
This commit is contained in:
@@ -0,0 +1,215 @@
|
||||
{
|
||||
"$schema": "../schemas/card-template.schema.json",
|
||||
"schema": "esc-card-template.v1",
|
||||
"id": "karta-5b",
|
||||
"name": "Karta 5b",
|
||||
"version": "1.3",
|
||||
"approved": "04.07.2026 — layout referencyjny zatwierdzony przez prowadzącego (symetria 0,55/2,05/0,55/14,70; gołe drzewka); v1.1 — nagłówki punktowe zamiast §, 05.07.2026; v1.2 — linie nagłówka/stopki jako warstwa strony ograniczona do bloku treści, 06.07.2026; v1.3 — margines gorny/dolny 2,5 cm, 06.07.2026",
|
||||
"description": "Wielostronicowy layout A4 portrait: charakter 5a z ramkami sekcji, ale z golymi drzewkami WE->EN/EK jako marginalia bez paneli i bez luznych KW. Linie strony sa warstwa overlay i nie wychodza pod drzewka. Blok tresci zaczyna sie 2,5 cm od gornej krawedzi i konczy 2,5 cm od dolnej.",
|
||||
"tokens": {
|
||||
"page": {
|
||||
"format": "a4",
|
||||
"orientation": "portrait",
|
||||
"width_px": 794,
|
||||
"height_px": 1123,
|
||||
"padding_px": {
|
||||
"top": 95,
|
||||
"right": 21,
|
||||
"bottom": 95,
|
||||
"left": 21
|
||||
},
|
||||
"paper": "#fefefc",
|
||||
"desk": "#eceae4",
|
||||
"ink": "#1c1c1a"
|
||||
},
|
||||
"grid": {
|
||||
"columns": [
|
||||
"77px",
|
||||
"21px",
|
||||
"1fr",
|
||||
"21px",
|
||||
"77px"
|
||||
],
|
||||
"gap_px": 0,
|
||||
"left_gap_px": 21,
|
||||
"right_gap_px": 21,
|
||||
"geometry_cm": {
|
||||
"top": 2.5,
|
||||
"bottom": 2.5,
|
||||
"outer_margin_left": 0.55,
|
||||
"left_tree": 2.05,
|
||||
"left_gap": 0.55,
|
||||
"content": 14.7,
|
||||
"content_height": 24.7,
|
||||
"right_gap": 0.55,
|
||||
"right_tree": 2.05,
|
||||
"outer_margin_right": 0.55
|
||||
},
|
||||
"left_role": "TECH",
|
||||
"right_role": "OG"
|
||||
},
|
||||
"page_rules": {
|
||||
"layer": "overlay",
|
||||
"portrait_content_width_cm": 14.7,
|
||||
"portrait_content_height_cm": 24.7,
|
||||
"portrait_rule_scope": "kolumna tresci; linia nie wchodzi pod drzewka ani w przerwy marginesowe",
|
||||
"landscape_schematic_slot_mm": 242,
|
||||
"landscape_schematic_slot_height_mm": 160,
|
||||
"landscape_schematic_figure_height_mm": 135,
|
||||
"landscape_rule_scope": "slot schematu technicznego; pasek sekcji i stopka maja ta sama szerokosc co arkusz",
|
||||
"line_weight_pt": 0.5
|
||||
},
|
||||
"typography": {
|
||||
"text": "STIX Two Text",
|
||||
"mono": "JetBrains Mono",
|
||||
"body_px": 11,
|
||||
"line_height": 1.42,
|
||||
"margin_tree_px": 7.2,
|
||||
"label_px": 7.8,
|
||||
"footer_px": 8.2
|
||||
},
|
||||
"colors": {
|
||||
"paper": "#fefefc",
|
||||
"desk": "#eceae4",
|
||||
"ink": "#1c1c1a",
|
||||
"muted": "#8a887f",
|
||||
"subtle": "#4a4944",
|
||||
"header": "#f4f3ef",
|
||||
"line": "#d8d6d0",
|
||||
"line_soft": "#e4e2dc",
|
||||
"tree_line": "#c9c7bf",
|
||||
"hairline": "#f0efe9",
|
||||
"accent": "#3b5a8f"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"section_box": {
|
||||
"border": "1px solid #1c1c1a",
|
||||
"header": "N. + uppercase title, letter-spacing .12em, background #f4f3ef"
|
||||
},
|
||||
"metric_header": {
|
||||
"border": "1.5px solid #1c1c1a",
|
||||
"title_bar": true,
|
||||
"grid": "2x2",
|
||||
"fill_fields": [
|
||||
"Uczen",
|
||||
"Klasa · data"
|
||||
]
|
||||
},
|
||||
"margin_tree_panel": {
|
||||
"left": "TECH jako gole drzewko tekstowe WE->EK/EN bez KW, bez ramki, tla, naglowka i stopki",
|
||||
"right": "OG jako gole drzewko tekstowe WE->EK/EN bez KW, bez ramki, tla, naglowka i stopki",
|
||||
"footer": false
|
||||
},
|
||||
"checkbox_row": {
|
||||
"size_px": 10,
|
||||
"border": "1.1px solid #1c1c1a"
|
||||
},
|
||||
"agenda_grid": {
|
||||
"columns": [
|
||||
"46px",
|
||||
"1fr"
|
||||
],
|
||||
"time_color": "#3b5a8f"
|
||||
},
|
||||
"theory_table": {
|
||||
"border": "1px solid #d8d6d0",
|
||||
"id_font": "JetBrains Mono"
|
||||
},
|
||||
"tech_stack_table": {
|
||||
"columns": [
|
||||
"72px",
|
||||
"1fr"
|
||||
],
|
||||
"groups": [
|
||||
"Software",
|
||||
"Hardware"
|
||||
]
|
||||
},
|
||||
"footer": {
|
||||
"rule": "1.5px solid #1c1c1a",
|
||||
"layer": "page overlay",
|
||||
"width": "content block only: 14.7cm portrait, 242mm technical landscape",
|
||||
"format": "commit · uuid · wersja · data | strona N / M | status"
|
||||
},
|
||||
"running_card_header": {
|
||||
"rule": "1.4px solid #1c1c1a",
|
||||
"layer": "page overlay",
|
||||
"width": "content block only: 14.7cm portrait, 242mm technical landscape"
|
||||
},
|
||||
"fill_in_line": {
|
||||
"style": "1px dotted #9a988f"
|
||||
}
|
||||
},
|
||||
"block_map": {
|
||||
"page_1": [
|
||||
"metric_header",
|
||||
"mission",
|
||||
"objectives",
|
||||
"agenda",
|
||||
"hw_gate",
|
||||
"theory_refs",
|
||||
"tech_stack"
|
||||
],
|
||||
"page_2": [
|
||||
"running_card_header",
|
||||
"math_block",
|
||||
"part_a_banner",
|
||||
"model_block",
|
||||
"code_block",
|
||||
"container_test",
|
||||
"bom"
|
||||
],
|
||||
"page_3": [
|
||||
"part_b_banner",
|
||||
"safety_rules",
|
||||
"reference_settings",
|
||||
"figures",
|
||||
"hardware_procedure"
|
||||
],
|
||||
"page_4": [
|
||||
"observation_table",
|
||||
"troubleshooting"
|
||||
],
|
||||
"page_5": [
|
||||
"analysis_tasks",
|
||||
"team_decision",
|
||||
"git_gate",
|
||||
"session_record",
|
||||
"ai_rules",
|
||||
"references"
|
||||
],
|
||||
"objectives": "checkbox_row + objective_refs",
|
||||
"agenda": "agenda_grid",
|
||||
"hw_gate": "checkbox_row + teacher_signature",
|
||||
"theory_refs": "theory_table",
|
||||
"tech_stack": "tech_stack_table",
|
||||
"math_block": "equations + answer_lines",
|
||||
"model_block": "notebook + constants_table + manual_inputs",
|
||||
"code_block": "skeleton_files + interfaces + responsibilities + pass_condition",
|
||||
"container_test": "command_list + evidence_line",
|
||||
"bom": "checkbox_table",
|
||||
"safety_rules": "golden_rules_grid",
|
||||
"reference_settings": "compact_reference_table",
|
||||
"figures": "kicad_includegraphics",
|
||||
"hardware_procedure": "checkbox_steps",
|
||||
"observation_table": "spacious_grid",
|
||||
"troubleshooting": "symptom_hypothesis_action_result_log",
|
||||
"analysis_tasks": "answer_lines",
|
||||
"team_decision": "mini_adr",
|
||||
"git_gate": "checkbox_criterion_evidence_signature",
|
||||
"ai_rules": "compact_policy_box",
|
||||
"references": "compact_mono_list"
|
||||
},
|
||||
"emitters": {
|
||||
"html": "5b",
|
||||
"latex": "5b"
|
||||
},
|
||||
"limitations": {
|
||||
"latex": [
|
||||
"pdfLaTeX nie uzywa fontow Google Fonts; renderer wybiera stix2, jesli jest dostepny, oraz mono z pakietu inconsolata/beramono/lmodern jako fallback.",
|
||||
"HTML odwzorowuje pikselowe rozmiary 794x1123; LaTeX mapuje je na A4 portrait z minipage dla marginesow.",
|
||||
"Drzewka marginesowe sa statycznym tekstem mono: lewy margines TECH, prawy margines OG."
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user