<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in GfmSpecTest.php</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>47a02a102092be9e1e6f1ddaf158bdfffdb13d4f - Parsing: make parse syntax a per-parse value, drop ModeInterface</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php#47a02a102092be9e1e6f1ddaf158bdfffdb13d4f</link>
        <description>Parsing: make parse syntax a per-parse value, drop ModeInterfaceThe active parse&apos;s syntax flavour is a per-parse question, not process-global state: within a single request a plugin can render bundledDokuWiki-syntax text inside an otherwise-Markdown page. Yet ModeRegistrywas a singleton that read $conf[&apos;syntax&apos;] and the $PARSER_MODES global,and every mode reached it through ModeRegistry::getInstance() &#8212; so theflavour lived in shared mutable state that two parses in one requestwould fight over.Make the registry a short-lived value instead:- ModeRegistry is constructed once per parse with an explicit $syntax  and injected into Parser, Handler and every mode. getSyntax() /  isDwPreferred() / isMdPreferred() consult $this-&gt;syntax; the  DOKU_UNITTEST-gated mode-list cache hack is gone (each registry is  fresh, nothing to invalidate).- p_get_instructions() is now the single place in the pipeline where  $conf[&apos;syntax&apos;] is read; from there the flavour travels as a  parameter. No code under inc/Parsing/ reads $conf[&apos;syntax&apos;] directly  anymore &#8212; the five syntax-reading modes (Preformatted, GfmHr,  GfmEscape, Externallink, GfmQuote) route through $this-&gt;registry.Keep the two concepts apart, as documented in the ModeRegistry andAbstractMode docblocks: the user&apos;s configured *preference* stays in$conf[&apos;syntax&apos;] for UI code (toolbar, settings), while the activeparse&apos;s syntax is a parameter carried by the registry.$PARSER_MODES is demoted to a deprecated, read-only mirror, publishedduring loadPluginModes() &#8212; third-party syntax plugins (columnlist,alphalist2, phpwikify, skipentity) and the bundled info plugin read theglobal directly, often from their constructors, so the taxonomy muststay visible there. No core code reads the mirror.Fold ModeInterface into AbstractMode while here: getSort()/handle() areabstract, the connect callbacks carry defaults, and the public $Lexer&quot;FIXME should be done by setter&quot; becomes setLexer()/getLexer() injectedby Parser::addMode() alongside the registry. Nested-content resolutionmoves to the allowedCategories()/filterAllowedModes() hooks, resolvedonce when the registry is attached.Tests build their own parser/registry through ParserTestBase::setSyntax()instead of mutating $conf and calling the removed ModeRegistry::reset().

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php</description>
        <pubDate>Thu, 04 Jun 2026 12:27:59 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;gohr@cosmocode.de&gt;</dc:creator>
    </item>
<item>
        <title>8a34b0d87864546b9e35ee6a4621d30bf4cd6475 - remove comment about failing tests now that the work is complete</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php#8a34b0d87864546b9e35ee6a4621d30bf4cd6475</link>
        <description>remove comment about failing tests now that the work is complete

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php</description>
        <pubDate>Tue, 12 May 2026 16:31:02 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>aa346d4b22f9f1b8a72dc049417af675e416fdb3 - GfmSpecTest: clear acronym table in spec renderer</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php#aa346d4b22f9f1b8a72dc049417af675e416fdb3</link>
        <description>GfmSpecTest: clear acronym table in spec rendererThe default conf/acronyms.conf entries (notably FTP) get wrapped in&lt;abbr&gt; by the XHTML renderer&apos;s acronym() call, which the spec outputnever has. Clearing the renderer&apos;s acronym table makes acronym() fallthrough to literal text, mirroring how typography substitutions arealready neutralized via SpecCompatRenderer. Brings example #628 topassing without touching production wiki rendering.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php</description>
        <pubDate>Tue, 12 May 2026 14:04:15 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>d379b73752b2756b087fd1c1c0e5886f260e6761 - GfmSpecTest: neutralize DW typography for spec roundtrip</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php#d379b73752b2756b087fd1c1c0e5886f260e6761</link>
        <description>GfmSpecTest: neutralize DW typography for spec roundtripForce $conf[typography] = 0 in renderMarkdown() so the Quotes andMultiplyEntity modes are not loaded, override entity() inSpecCompatRenderer to emit the original match instead of the typographicglyph, and switch _xmlEntities() from ENT_QUOTES to ENT_COMPAT so `&apos;`stays literal in body text while `&quot;` is still escaped to &amp;quot;. Dropsthree skip entries (#308, #310, #353) that existed only to paper overthe same divergence and unblocks #16, #25 and #670.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php</description>
        <pubDate>Tue, 05 May 2026 09:11:52 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>09f34c310b22c62a5c9b4b7c2147a44baa6fdc6b - apply spec convention: &#8594; represents a tab in GfmSpecTest</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php#09f34c310b22c62a5c9b4b7c2147a44baa6fdc6b</link>
        <description>apply spec convention: &#8594; represents a tab in GfmSpecTestCommonMark spec.txt uses U+2192 RIGHTWARDS ARROW to visually markliteral tab characters in examples (see spec.txt, &quot;About thisdocument&quot;). Substitute &#8594; for \t in both markdown input andexpected HTML so the corpus exercises real tab handling.Surfaced by GfmNumericEntity: example #336 (&amp;#9;foo) now decodesthe entity to a tab and produces correct output, but the harnesswas comparing against literal &#8594; in the expected HTML.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php</description>
        <pubDate>Mon, 04 May 2026 11:55:51 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>13a62f810fbd091d15ab734b467eaec0a6bf829a - rename syntax flavors &apos;dokuwiki&apos; / &apos;markdown&apos; to &apos;dw&apos; / &apos;md&apos;</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php#13a62f810fbd091d15ab734b467eaec0a6bf829a</link>
        <description>rename syntax flavors &apos;dokuwiki&apos; / &apos;markdown&apos; to &apos;dw&apos; / &apos;md&apos;Symmetry with the existing &apos;dw+md&apos; / &apos;md+dw&apos; setting values.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php</description>
        <pubDate>Mon, 04 May 2026 10:18:11 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>3440a8c07d59952439e180d2c33a32262fd3a84c - add GfmMedia and extend GfmLink with image-as-label form</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php#3440a8c07d59952439e180d2c33a32262fd3a84c</link>
        <description>add GfmMedia and extend GfmLink with image-as-label form- New GfmMedia parses `![alt](url)` with the full DokuWiki media-parameter  vocabulary in the URL slot (?100x200, ?right, ?nolink, ?recache, &#8230;).  Adds `?left`/`?right`/`?center` align keywords shared with DW `{{&#8230;}}`  &#8212; gives pure-Markdown users a way to align inline images.- GfmLink now also matches `[![alt](img)](target)` &#8212; the GFM equivalent  of `[[target|{{img}}]]`. Detection is post-entry, mirroring  Internallink&apos;s `^{{&#8230;}}$` check; one mode covers the whole family.- LinkDispatch trait replaced by Helpers::classifyLink and  Helpers::parseMediaParameters &#8212; two pure static methods, shared by  DW and GFM counterparts.- Entry patterns for GfmLink / GfmMedia simplified (permissive URL slot,  handle-time parsing), following DW&apos;s Internallink style.- GfmSpecTest drives a test-only SpecCompatRenderer that emits bare  &lt;img&gt; / &lt;a&gt; instead of DW&apos;s wiki-wrapped HTML, recovering 13 spec  tests that previously failed/skipped only because of renderer shape.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php</description>
        <pubDate>Wed, 22 Apr 2026 14:28:30 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;gohr@cosmocode.de&gt;</dc:creator>
    </item>
<item>
        <title>8719732d06ab7306149725c7c5ea71deb8ff0382 - add GfmHeader for ATX headings (`# text` through `###### text`)</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php#8719732d06ab7306149725c7c5ea71deb8ff0382</link>
        <description>add GfmHeader for ATX headings (`# text` through `###### text`)Opener must sit at column 0. GFM tolerates 0-3 spaces before the `#`but that collides with DokuWiki&apos;s 2-space-indent preformatted block,so the tolerance is dropped rather than plumbed across modes.Widen the XHTML renderer&apos;s section-node tracker from 5 slots to 6 soh6 doesn&apos;t hit &quot;Undefined array key 5&quot;. Extend GfmSpecTest&apos;s HTMLnormalizer to strip DokuWiki&apos;s section-div wrappers, section-editcomments, and header id/class attributes so heading spec examplescan validate semantic correctness.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php</description>
        <pubDate>Wed, 22 Apr 2026 08:50:19 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;gohr@cosmocode.de&gt;</dc:creator>
    </item>
<item>
        <title>72b2703b4f922ca520e7cb2e7765a252175f30d3 - add spec.txt-driven roundtrip test infrastructure for Markdown</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php#72b2703b4f922ca520e7cb2e7765a252175f30d3</link>
        <description>add spec.txt-driven roundtrip test infrastructure for MarkdownImports GitHub Flavored Markdown&apos;s test/spec.txt (671 examples combiningthe CommonMark baseline with GFM extensions: tables, strikethrough, tasklists, autolink, disallowed raw HTML) and runs each example as a data-provider-driven roundtrip test against DokuWiki&apos;s full parser + XHTMLrenderer.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&apos;s    rendered &quot;Example N&quot; 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&apos;s markdown through    p_get_instructions + p_render(&apos;xhtml&apos;) and compares to the expected    HTML with block-level-aware whitespace normalisation (DokuWiki    emits \n around block tags; inline-tag whitespace is preserved    because `&lt;em&gt;x&lt;/em&gt; y` != `&lt;em&gt;x&lt;/em&gt;y`).  _test/tests/Parsing/Markdown/gfm-spec/    spec.txt     &#8212; verbatim from github/cmark-gfm, commit 587a12bb    LICENSE      &#8212; CC-BY-SA 4.0 full legal text    README.md    &#8212; upstream URL, pinned commit, resync notes    skip.php     &#8212; map example-number =&gt; reason for SPEC-excluded                   CommonMark behaviour (flanking-delimiter analysis,                   multiple-of-3 rule, excess-drop). Unimplemented                   features are NOT listed here &#8212; they show as real                   failures so they remain the visible TODO list.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/GfmSpecTest.php</description>
        <pubDate>Mon, 20 Apr 2026 18:42:37 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;gohr@cosmocode.de&gt;</dc:creator>
    </item>
</channel>
</rss>
