<?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 skip.php</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>1beb745045ec82c76dc27b814d474310020435ed - GfmSpecTest: skip deferred-feature spec cases</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#1beb745045ec82c76dc27b814d474310020435ed</link>
        <description>GfmSpecTest: skip deferred-feature spec casesHeading-inline syntax (#36, #46) is deferred; the existing headerinstruction and downstream renderers would need rework to processinline modes inside heading content.Bare URL autolinking without angle brackets (#619) is a deliberateDokuWiki feature in Externallink, not a feature we&apos;ll remove to matchthe strict CommonMark &#167;6.8 rule.The GFM bare-email autolink extension (#629-631) is out of scope -DokuWiki&apos;s Email mode only recognises emails inside angle brackets.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Tue, 12 May 2026 14:03:46 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>451f2842c2213b735961a38825afae4ca84cdfcf - clean up markdown spec test skips</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#451f2842c2213b735961a38825afae4ca84cdfcf</link>
        <description>clean up markdown spec test skipsOrdered by example number, same format, single line.Some skips now actually pass - removed. A couple others should pass butdon&apos;t yet - also removed. Code fix follows.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Tue, 05 May 2026 18:58:27 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>198d33e86f4eaf806204c105ccb60c962db6c6ba - GfmSpecTest: skip task list items extension (#279, #280)</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#198d33e86f4eaf806204c105ccb60c962db6c6ba</link>
        <description>GfmSpecTest: skip task list items extension (#279, #280)GFM task list items (`- [ ] foo` / `- [x] foo`) are not implemented;the literal marker stays as the first content of the list item.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Tue, 05 May 2026 14:26:22 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>506762f46c22593263c96a0f689023ae89b32527 - GfmSpecTest: skip indented-code &#167;4.4 family and Disallowed Raw HTML #652</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#506762f46c22593263c96a0f689023ae89b32527</link>
        <description>GfmSpecTest: skip indented-code &#167;4.4 family and Disallowed Raw HTML #652The 4-space indent trigger fires on paragraph-continuation lines andexits on any blank line, both of which collide with CommonMark &#167;4.4 &#8212;fixing either would require paragraph-open state the single-pass lexercannot carry. List-interior cases additionally need the columnarithmetic documented as out of scope for the &#167;2.2 tabs family.#652 (Disallowed Raw HTML) is a filter on top of raw HTML pass-through,which DokuWiki escapes by policy (see #118-160), so it has no input.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Tue, 05 May 2026 14:23:06 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>f9d3b7bd008099dc4c61ce262a02a0ed8bc94254 - Externallink: add per-scheme angle-bracket autolinks for MD syntax</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#f9d3b7bd008099dc4c61ce262a02a0ed8bc94254</link>
        <description>Externallink: add per-scheme angle-bracket autolinks for MD syntaxAdds CommonMark &#167;6.5 &lt;URL&gt; autolinks to Externallink, gated tomd/md+dw/dw+md syntax via ModeRegistry::isMdPreferred(). Per-schemepatterns share the existing conf/scheme.conf allow-list so unknownschemes fall through to literal cdata instead of being silentlydropped by the renderer. Internal whitespace inside the bracketsdisqualifies the autolink and the whole envelope is emitted ascdata to keep the bare-URL detector off the URL.LinksTest gains 5 cases covering success, internal-whitespace andleading-whitespace disqualification, unregistered scheme fallthrough,and the dw-only no-op path. SpecCompatRenderer URL encoder is updatedto match cmark-gfm&apos;s HREF_SAFE table (square brackets and a few othercharacters move from safe to encoded). skip.php loses the obsolete#356 entry and gains #605/#606/#607/#609 explaining the unregistered-scheme cases that the per-scheme regex naturally rejects.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Tue, 05 May 2026 14:16:44 +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/gfm-spec/skip.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/gfm-spec/skip.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>b37c6ef7375e15c7eafc4a62d7d0f7ae95caff19 - more test skips</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#b37c6ef7375e15c7eafc4a62d7d0f7ae95caff19</link>
        <description>more test skips

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Mon, 04 May 2026 14:13:43 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>6359e7fdf570c2d76e6de8eb24d1cf4c5eb296ae - percent-encode URLs in SpecCompatRenderer to match spec output</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#6359e7fdf570c2d76e6de8eb24d1cf4c5eb296ae</link>
        <description>percent-encode URLs in SpecCompatRenderer to match spec outputCommonMark&apos;s reference renderer percent-encodes URL bytes outside theRFC 3986 unreserved/reserved set (and existing %XX sequences passthrough unchanged). DokuWiki&apos;s XHTML renderer leaves UTF-8 andbackslashes literal in href, which is fine for live wiki output butdiverges byte-for-byte from spec.Adds specEncodeUrl() to the spec-compat renderer and applies it inspecLink(). Same shape as the earlier `&#8594;`-&gt;`\t` substitution: atest-harness alignment with spec convention, no production behaviorchange.Unskips #510 (backslash in URL) and #511 (entity / percent-encoding inURL); both now match spec output with the parser-side decoding fromthe previous commit and the renderer-side encoding here.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Mon, 04 May 2026 13:00:51 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>eb15e634e1400f6c4d78f5fb40179ca25f41574d - extract Helpers\HtmlEntity, wire into GfmCode and GfmLink URL slot</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#eb15e634e1400f6c4d78f5fb40179ca25f41574d</link>
        <description>extract Helpers\HtmlEntity, wire into GfmCode and GfmLink URL slotNumeric and named HTML entity decoding moves out of GfmHtmlEntity intoa pure helper, so capture-by-regex modes can apply the same decodepost-extraction (the inline lexer never reaches their bodies). Mirrorsthe Helpers\Escape pattern.Wired up in two slots:  - GfmCode info string: f&amp;ouml;&amp;ouml; now decodes to f&#246;&#246; in the    language class. Clears spec example #330.  - GfmLink URL: GfmLink::extractUrl() decodes entities. URL pattern    extends from `[^)\n]+` to `(?:\\.|[^)\n])+` so an escaped \) no    longer terminates the URL early; the existing post-classify    Escape::unescapeBackslashes call strips the backslashes after    Link::classify has done its work. Clears #504, #506, #508.Skip #328 with a self-contained title-slot reason: the URL side nowdecodes correctly, but the title attribute is still discarded(DokuWiki link instructions have no title slot).

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Mon, 04 May 2026 13:00:28 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>b414dba2b10d2f550b453d752c86bb62343bec93 - skip a few more spec tests</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#b414dba2b10d2f550b453d752c86bb62343bec93</link>
        <description>skip a few more spec testsThose are all deliberately not supported cases

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Mon, 04 May 2026 11:02:25 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;gohr@cosmocode.de&gt;</dc:creator>
    </item>
<item>
        <title>c4bcbc2e0c397783de26c1e3c211d82d1ac21bb4 - add GfmLinebreak for GFM hard line breaks</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#c4bcbc2e0c397783de26c1e3c211d82d1ac21bb4</link>
        <description>add GfmLinebreak for GFM hard line breaksTwo-or-more trailing spaces, or a single backslash, immediately beforea non-final newline render as a `&lt;br/&gt;`. Both delimiter forms share asingle SUBSTITION mode at sort 140, loaded under any MD-active syntax(markdown, dw+md, md+dw); pure dokuwiki is unaffected.Reuses the existing `linebreak` handler call and renderer; no newinstructions or renderer changes. SpecCompatRenderer overrideslinebreak() to emit the spec&apos;s `&lt;br /&gt;` shape. Examples 662, 663(line break inside a raw HTML tag) are skipped &#8212; raw HTML is notpassed through by default.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Mon, 04 May 2026 09:21:04 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>3e6baeff313fa406e4d4b5dd2e5ab85ec7d7816d - replace DW Hr with unified GfmHr</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#3e6baeff313fa406e4d4b5dd2e5ab85ec7d7816d</link>
        <description>replace DW Hr with unified GfmHrSingle mode covers both DokuWiki (4+ dashes) and GFM (3+ of -/*/_)horizontal rules; pattern self-narrows on $conf[&apos;syntax&apos;]. Alwaysloaded across all four syntax settings, mirroring the GfmQuotereplacement pattern. Same `hr` handler call so renderers and thecall API are unchanged.Drops DW&apos;s old [ \t]* leading-whitespace tolerance &#8212; inert inpractice past 0-1 spaces (Preformatted at sort 20 interceptseverything &#8805; 2 spaces or any tab).Spec examples 13, 20, 26-28, 224 turn green; 17, 21-24, 29, 30, 31go to skip.php as deliberate non-implementations (whitespacetolerance and list-precedence cases).

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Thu, 30 Apr 2026 13:14:27 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>309a08521b24a6fff00f318e061096f69771bbad - replace DW Quote with unified GfmQuote</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#309a08521b24a6fff00f318e061096f69771bbad</link>
        <description>replace DW Quote with unified GfmQuoteGfmQuote covers blockquote parsing for both DokuWiki and GFM dialectsin a single mode. Same quote_open/quote_close handler instructions; aDW-preferred post-pass flattens sub-parsed paragraph wrapping intolinebreak calls so existing pages keep their &lt;br/&gt;-between-linesrendering. MD-preferred keeps the &lt;p&gt;-wrapped spec shape.Block content (lists, fenced code, tables) inside `&gt;` quotes nowrenders, since the body is sub-parsed. Headers stay excluded(BASEONLY) &#8212; TOC and section-edit anchors don&apos;t compose with&lt;blockquote&gt;, same rationale as GfmListblock.Convert ModeRegistry&apos;s sub-parser cache into an acquire/release poolto support same-key re-entrancy: a list inside a quote re-entersgfm_quote during the list-item sub-parse, and the inner call needsits own parser instance even though the exclusion key matches.GfmListblock is updated to use the new acquire/release primitives.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Thu, 30 Apr 2026 11:58:30 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>74031e463764923581b9204cebc0fc3f34ce881f - add GfmEscape for GFM backslash escapes</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#74031e463764923581b9204cebc0fc3f34ce881f</link>
        <description>add GfmEscape for GFM backslash escapesImplements GFM &#167;6.1 backslash-escape handling. GfmEscape is a sort-5inline mode in CATEGORY_SUBSTITION that claims `\X` for any escapableASCII punctuation char before competing delimiters can match. Theshared character class lives on Helpers\Escape so the lexer patternand the post-hoc unescape stay in lockstep.Whole-span captures (GfmCode info string, GfmLink label/URL) bypassthe lexer; those modes call Escape::unescapeBackslashes() on therelevant slot. GfmLink skips the unescape when the URL classifies asa windowssharelink so the leading \\host survives intact.GfmTable cells get a separate per-cell `\|` to `|` pass in therewriter to honour the tables-extension rule that pipes alwaysunescape, even inside code spans where standard &#167;6.1 escapes don&apos;tfire.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Tue, 28 Apr 2026 17:08:30 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>685560eb3044321b3bdd0be40985871ced5f1d05 - add GfmListblock for GFM lists</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#685560eb3044321b3bdd0be40985871ced5f1d05</link>
        <description>add GfmListblock for GFM listsGfmListblock captures an entire list block atomically with oneaddSpecialPattern match, then walks the captured text in handle()grouping lines into items. Each item&apos;s body is dedented to itscontent column and parsed by ModeRegistry::getSubParser() soblock content (paragraphs, fenced code, blockquotes, pluginblocks) works inside items uniformly. Sub-parsed calls are wrappedin a Nest call before they reach the outer handler, matching theFootnote pattern: the main handler&apos;s Block rewriter treats nestas opaque and the renderer base class unwraps it transparently,so multi-paragraph items don&apos;t get double-wrapped in &lt;p&gt;.Marker syntax: -, *, + (unordered) or 1-9 digits followed by. or ) (ordered). Indentation is a 2-space-multiple step startingat 0; depth = (indent / 2) + 1, odd indents round down, tabs becometwo spaces. The first ordered item&apos;s number drives the startattribute on &lt;ol&gt; via the listo_open $start parameter.GfmLists subclasses AbstractListsRewriter with the GFM markerparser; the state machine on the base class is shared with DW Lists.GfmListblock loads only when $conf[&apos;syntax&apos;] is markdown or md+dw.Under those settings the DW Listblock is suppressed because the twolist models conflict &#8212; DW&apos;s mandatory 2-space indent rule vs GFM&apos;szero-indent top-level rule, and -/*/+ markers shared. Plugins thatrelied on Listblock loading under md+dw will see it absent there.Sub-parser exclusion set: CATEGORY_BASEONLY (no Header inside listitems) and gfm_listblock itself (defensive guard against re-entryon pathological inputs; nested lists are handled by the outerpattern, not by re-entry).Tests cover marker variants, ordered start numbers, nested lists attwo and three levels, inline formatting inside items, marker-character switches keeping one list, type switches splitting thelist, fenced code inside items, multi-paragraph (loose) items, andtwo regressions on blank-line tolerance inside the captured block.SpecCompatRenderer learns to render the list call sequence, andspec.txt tests for digit/marker-width/lazy-continuation behaviorthat GfmListblock deliberately doesn&apos;t implement are documented ingfm-spec/skip.php with the per-bucket reasons (A-F).Drops two now-obsolete entries from skip.php (image escapes thatland via earlier GfmLink/GfmMedia work) and inlines the Setextexplanation that previously pointed at SPEC.md. Replaces theSPEC.md reference in GfmEmphasisTest with the inline reason.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Tue, 28 Apr 2026 06:23:11 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>b1c59bed2e3645a1f5f11438cdbe7d1596f4a3a4 - add GfmCode / GfmFile for fenced code blocks</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#b1c59bed2e3645a1f5f11438cdbe7d1596f4a3a4</link>
        <description>add GfmCode / GfmFile for fenced code blocksGfmCode (backticks) emits the `code` handler instruction; GfmFile(tildes) emits `file`. Column-0 fences only, no length pairingbetween opener and closer, and unclosed fences stay literal &#8212;matching DokuWiki&apos;s `&lt;code&gt;` tag convention. The info string acceptsDW&apos;s full attribute vocabulary (language, filename, [options])through a new shared `Helpers::parseCodeAttributes` that `Code`also uses, with `html` aliased to `html4strict` and `-` meaning &quot;nolanguage&quot;.Preformatted&apos;s indent threshold is now preference-gated: 2 spacesin DW-preferred settings, 4 spaces in MD-preferred, matching GFM&apos;sindented code block rule. A single tab is a trigger in both.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Thu, 23 Apr 2026 14:01:03 +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/gfm-spec/skip.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/gfm-spec/skip.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>e89aeebd5989e476b6a69236d9aabf72a9a01f14 - add GfmLink for GFM inline links `[text](url)`</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#e89aeebd5989e476b6a69236d9aabf72a9a01f14</link>
        <description>add GfmLink for GFM inline links `[text](url)`Extracts the URL-classification ladder from Internallink into aLinkDispatch trait so both modes route identically across all sixDokuWiki link flavors (internal, external, interwiki, email,windowsshare, local anchor). GfmLink parses the `[text](url)` formwith optional `&quot;title&quot;` / `&apos;title&apos;` and hands the URL to the trait.The GFM title attribute is discarded &#8212; DokuWiki link instructionshave no slot for it.

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Wed, 22 Apr 2026 10:30:14 +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/gfm-spec/skip.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/gfm-spec/skip.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>8ed75a23932353c18b43f67323808e9a662f532a - add GfmBacktickSingle / GfmBacktickDouble for GFM inline code spans</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php#8ed75a23932353c18b43f67323808e9a662f532a</link>
        <description>add GfmBacktickSingle / GfmBacktickDouble for GFM inline code spansTwo new inline formatting modes covering GFM code spans in their n=1and n=2 forms:  GfmBacktickSingle   `text`    &#8594; &lt;code&gt;text&lt;/code&gt;  GfmBacktickDouble   ``text``  &#8594; &lt;code&gt;text&lt;/code&gt;Both emit monospace_open and monospace_close around an unformatted()call (the same instruction shape as DokuWiki&apos;s two-single-quote pairwrapping a nowiki span), so renderers that distinguish verbatim textfrom plain cdata &#8212; metadata, indexer, non-XHTML backends &#8212; treat thebody as literal.GfmBacktickDouble extends GfmBacktickSingle to reuse handle() and thebody-normalization helper; only the delimiter length and the bodycharacter class differ. Both share sort 165 and gate on Markdownbeing loaded.Design notes:* The lexer has no backreferences, so each length is its own mode.  Length-boundary guards (?&lt;!`)...(?!`) on every opener and closer  ensure a run of two-or-more backticks is never read as an n=1  delimiter and a run of three-or-more is never read as n=2. The two  modes never steal each other&apos;s input regardless of registration  order &#8212; sort can&apos;t reach this kind of cross-position constraint.* Edge-whitespace handling and newline normalization live in handle(),  not in the regex. On DOKU_LEXER_UNMATCHED the body is normalized:    1. CR/LF and LF become single spaces (GFM line-ending rule).    2. If the body starts and ends with a space and is not entirely       whitespace, one space is stripped from each end.  That produces the right GFM output for the tricky cases without  special-casing the entry pattern:    ` `          &#8594; &lt;code&gt; &lt;/code&gt;    (all-whitespace, no strip)    ` a`         &#8594; &lt;code&gt; a&lt;/code&gt;   (asymmetric, no strip)    ` `` `       &#8594; &lt;code&gt;``&lt;/code&gt;   (interior run-of-2 + strip)    ``foo`bar``  &#8594; &lt;code&gt;foo`bar&lt;/code&gt;* Body character classes admit exactly the runs that cannot be valid  closers for this mode&apos;s length: n=1 allows `[^`] | ``+`, n=2 allows  `[^`] | `(?!`)`. That is what lets a single-backtick span contain  a pair and a double-backtick span contain a lone backtick.* allowedModes is empty &#8212; no other inline parsing runs inside a span.Deliberately not implemented, with skip.php entries explaining why:  351 &#8212; code-span precedence over emphasis (*foo`*` expected to render        as *foo&lt;code&gt;*&lt;/code&gt;). Cross-positional: the single-pass        lexer matches leftmost-first and cannot reject an earlier        emphasis opener because a later backtick span would consume        its closer. A proper fix would need a pre-scan pass; sort        values only break ties at the same position.  353 &#8212; the trailing &quot; outside the code span gets converted to a        curly quote by DokuWiki typography, diverging from spec HTML.  354 &#8212; raw HTML tag pass-through; DokuWiki does not render raw HTML        by default.  356 &#8212; GFM angle-bracket autolink &lt;http://&#8230;&gt;: not implemented.Per-mode unit tests cover basic matching, flanking via the length-boundary guards, interior-run support in the body, edge-spacestripping, newline normalization, all-whitespace bodies, paragraph-boundary rejection, content-is-literal, and sort values.ModeRegistryTest&apos;s gating data provider picks up both modes.Net effect on GfmSpecTest: eleven previously-red code-span examplesnow pass (339, 340, 341, 342, 344, 345, 346, 347, 349, 350, 357, 359&#8212; the simple pairs, edge-space, interior-run, newline-normalization,and mismatched-run cases). Four skipped. Three remain pending outsidethe code-span scope (emphasis interactions that need GfmLink oncethat lands).

            List of files:
            /dokuwiki/_test/tests/Parsing/Markdown/gfm-spec/skip.php</description>
        <pubDate>Wed, 22 Apr 2026 07:39:11 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;gohr@cosmocode.de&gt;</dc:creator>
    </item>
</channel>
</rss>
