manifest.json
83 lines · 4180 bytes
1{
2 "version": 1,
3 "reference": {
4 "implementation": "orgo",
5 "repo": "krz/orgo",
6 "note": "Golden .html and .skeleton files are produced by orgo, which is validated against Emacs ox-html via its own oracle test. orgo is the reference; other implementations conform to it."
7 },
8 "comparison": "skeleton",
9 "cases": [
10 {
11 "name": "minimal",
12 "constructs": ["document-keywords", "preamble-paragraph", "heading", "property-drawer", "custom-id", "tags", "bold", "italic", "verbatim", "unordered-list", "checkbox", "custom-id-link"],
13 "scope": "in",
14 "note": "Smallest end-to-end document: metadata header, one nesting of headings, inline emphasis, a checkbox, an internal link."
15 },
16 {
17 "name": "core",
18 "constructs": ["heading", "bare-url", "inline-code", "ordered-list", "checkbox", "external-link", "src-block"],
19 "scope": "in",
20 "note": "The common README surface: links, code, lists, a source block."
21 },
22 {
23 "name": "elements",
24 "constructs": ["filetags", "src-block", "table", "external-link", "id-link", "footnote-ref", "footnote-def", "quote-block", "horizontal-rule"],
25 "scope": "in",
26 "note": "A sampler spanning most block-level elements."
27 },
28 {
29 "name": "headings",
30 "constructs": ["todo-keyword", "done-keyword", "priority", "tags", "property-drawer", "custom-id", "todo-word-boundary", "empty-title"],
31 "scope": "in",
32 "note": "Heading anatomy, including the negatives: 'TODOs' is not a keyword, a bare 'DONE' has no title."
33 },
34 {
35 "name": "lists",
36 "constructs": ["nested-unordered", "ordered-list", "nested-ordered", "checkbox", "checkbox-partial", "description-list", "inline-markup-in-term", "multi-paragraph-item"],
37 "scope": "in",
38 "note": "Every list shape, including three-deep nesting and multi-paragraph items."
39 },
40 {
41 "name": "table",
42 "constructs": ["table", "table-header-rule"],
43 "scope": "in",
44 "note": "A header band separated by a rule row."
45 },
46 {
47 "name": "blocks",
48 "constructs": ["quote-block", "center-block", "example-block", "export-html", "export-latex-dropped", "src-block", "src-block-no-lang", "nested-src-in-quote", "verse-block", "special-block"],
49 "scope": "in",
50 "note": "All standard blocks. Export blocks: html passes through raw, non-html backends are dropped. Named special blocks render as a container carrying the name."
51 },
52 {
53 "name": "timestamps",
54 "constructs": ["active-timestamp", "inactive-timestamp", "timestamp-with-time", "same-day-range", "multi-day-range", "repeater-dropped", "non-timestamp-text"],
55 "scope": "in",
56 "note": "orgo renders timestamps as <time datetime>; the last section checks that '3 < 4' and '[not a stamp]' stay literal."
57 },
58 {
59 "name": "footnote",
60 "constructs": ["footnote-ref", "footnote-def", "inline-footnote", "inline-markup-in-note"],
61 "scope": "in",
62 "note": "Numbered references, definitions, and an anonymous inline footnote."
63 },
64 {
65 "name": "images",
66 "constructs": ["bare-image", "captioned-figure", "attr-html", "caption-with-markup", "quoted-attr-values", "image-link-with-description"],
67 "scope": "in",
68 "note": "A bare image link becomes <img>; a #+CAPTION: promotes it to <figure>; a description turns it back into an ordinary link."
69 },
70 {
71 "name": "tblfm",
72 "constructs": ["table", "tblfm-inert"],
73 "scope": "in",
74 "note": "#+TBLFM: is kept inert: cells are emitted as written, never recalculated, matching org's HTML exporter."
75 },
76 {
77 "name": "outofscope",
78 "constructs": ["include-reported", "babel-results-dropped", "table-formula", "latex-literal", "macro-literal", "radio-target-literal", "logbook-drawer-dropped", "custom-drawer-dropped", "unknown-entity-literal"],
79 "scope": "out",
80 "note": "Deliberately unsupported constructs. The contract is not that they render, but that they degrade predictably and never crash. An implementation may legitimately differ from orgo here; treat this case as documentation, not a hard assertion."
81 }
82 ]
83}