# Throwaway smoke engineering file for the cph-render template round (ADR-0011). # Exercises all 4 kinds + nested headings (per-level numbering) + an example with # a `source` scalar and one without + a lemma with proof and one without. # # The per-part `fields` array lists the content fields present ON DISK. The # template uses it to decide whether to load OPTIONAL content (lemma `proof`), # because typst has no file-exists primitive. (OPEN: the exact manifest shape for # declaring optional-field presence is for the Rust/manifest contract to pin.) [project] id = "smoke-eng" name = "cph-render template smoke" [info] title = "向量与几何 · 示例讲义" author = ["张老师", "李老师"] # segment — nested headings exercise per-level numbering (一、 / 1.1 / 1.1.1). [[parts]] kind = "segment" path = "segments/向量数量积" fields = ["textbook"] # example WITH source scalar [[parts]] kind = "example" path = "examples/坐标数量积" fields = ["problem", "solution"] # example WITHOUT source scalar [[parts]] kind = "example" path = "examples/求模长" fields = ["problem", "solution"] # lemma WITH proof (proof.typ present on disk; declared in fields) [[parts]] kind = "lemma" path = "lemmas/柯西不等式" fields = ["stmt", "proof"] # lemma WITHOUT proof (proof.typ absent; fields omits it) [[parts]] kind = "lemma" path = "lemmas/垂直判据" fields = ["stmt"] # sop [[parts]] kind = "sop" path = "sops/求夹角步骤" fields = ["sop"] [targets.student] artifact = "single-file" [[targets.student.steps]] type = "typst-compile" template = "exports/student.typ" [targets.teacher] artifact = "single-file" [[targets.teacher.steps]] type = "typst-compile" template = "exports/teacher.typ"