2.5 KiB
Definition-list test fixtures
Inputs (../NN-name.md) are the definition-list examples from
https://www.markdownlang.com/extended/definition-lists.html.
pandoc/ and hugo/ hold each input rendered by Pandoc (-f markdown -t html5)
and Hugo (Goldmark with markup.goldmark.extensions.definitionList = true).
They are retained as reference for a possible future "Option B" (full CommonMark
block semantics inside definitions). They are NOT the test oracle for the current
implementation.
../expected/NN.html is the oracle for convert_deflists: our inline fragment
format (no inter-tag newlines, no trailing newline), derived from the trusted
tool per the decisions below.
Decisions (Option A — simple / inline)
Marker whitespace follows CommonMark: : with 0–3 spaces of indent is a
definition; 4+ (tab = 4) is a code block. Definition bodies are inline/flat.
Every fixture has a concrete exact-match oracle in ../expected/NN.html.
| Fixture | Pandoc | Hugo | Decision | expected/ source |
|---|---|---|---|---|
| 01-basic | <dl> |
<dl> |
support | hugo (agreed) |
| 02-multiple-defs | multi <dd> |
multi <dd> |
support | hugo (agreed) |
06-compact (Term: Definition) |
<p> |
<p> |
NOT a deflist → passthrough | raw input |
07-extra-space (2-space :) |
<dl> |
<p> |
support (accept, CommonMark ≤3-space rule) | hand-written |
| 08-glossary | <dl> |
<dl> |
support | hugo (agreed) |
| 09-api-params | multi <dd> |
multi <dd> |
support | hugo (agreed) |
| 05-nested | flattens | nested <dl> |
flatten (matches Pandoc) | snapshot (== pandoc) |
| 03-multiline-def | ejects 2nd para | nests 2nd para in <dd> |
degrade | snapshot (current output) |
| 04-markdown-in-def | flattens list | nested <ul>/<blockquote> |
degrade | snapshot (current output) |
A detailed 3-way behavior comparison (ours vs Pandoc vs Hugo) for the diverging
fixtures is in COMPARISON.md, kept for Option-B review.
03/04/05 require block-level content inside <dd> (multi-paragraph, nested
lists/blockquotes, nested <dl>), which the inline preprocessor does not
produce. 05 flattens exactly as Pandoc does, so its snapshot equals Pandoc's
output. 03/04 emit a <dl> for the term and first line, then let the remaining
block content fall through as markdown; their expected/ files snapshot that
current degraded behavior as a regression guard, not an endorsed rendering.
Revisit via Option B (full CommonMark block semantics) if real content needs it.