| #
72b2703b |
| 20-Apr-2026 |
Andreas Gohr <gohr@cosmocode.de> |
add spec.txt-driven roundtrip test infrastructure for Markdown
Imports GitHub Flavored Markdown's test/spec.txt (671 examples combining the CommonMark baseline with GFM extensions: tables, strikethr
add spec.txt-driven roundtrip test infrastructure for Markdown
Imports GitHub Flavored Markdown's test/spec.txt (671 examples combining the CommonMark baseline with GFM extensions: tables, strikethrough, task lists, autolink, disallowed raw HTML) and runs each example as a data- provider-driven roundtrip test against DokuWiki's full parser + XHTML renderer.
Files:
_test/tests/Parsing/Markdown/SpecReader.php Parses the fenced-example format. Each example is ``` example [optional-label] ... . ... ``` delimited by 10+ backticks with a `.` separator; tracks most recent `## Heading` as section context and numbers examples sequentially from 1 to match the spec's rendered "Example N" labels.
_test/tests/Parsing/Markdown/SpecReaderTest.php Hand-crafted fixtures covering ordinary examples, section tracking, extension labels, multiline bodies, nested backticks, unclosed fences (throws).
_test/tests/Parsing/Markdown/GfmSpecTest.php Data-provider test. Renders each example's markdown through p_get_instructions + p_render('xhtml') and compares to the expected HTML with block-level-aware whitespace normalisation (DokuWiki emits \n around block tags; inline-tag whitespace is preserved because `<em>x</em> y` != `<em>x</em>y`).
_test/tests/Parsing/Markdown/gfm-spec/ spec.txt — verbatim from github/cmark-gfm, commit 587a12bb LICENSE — CC-BY-SA 4.0 full legal text README.md — upstream URL, pinned commit, resync notes skip.php — map example-number => reason for SPEC-excluded CommonMark behaviour (flanking-delimiter analysis, multiple-of-3 rule, excess-drop). Unimplemented features are NOT listed here — they show as real failures so they remain the visible TODO list.
show more ...
|