A language-neutral conformance corpus for org-mode to HTML renderers.

conformance html org-mode testing

manifest.json

main
org-conformance/manifest.json history · blame · raw

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}