<?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 Handler.php</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>7595d8da86a38ca641fad1933f799d25314992dd - &#55358;&#56598; Rector and PHPCS fixes</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/Handler.php#7595d8da86a38ca641fad1933f799d25314992dd</link>
        <description>&#55358;&#56598; Rector and PHPCS fixes

            List of files:
            /dokuwiki/inc/Parsing/Handler.php</description>
        <pubDate>Mon, 06 Jul 2026 12:48:15 +0000</pubDate>
        <dc:creator>splitbrain &lt;86426+splitbrain@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>21d6f17628c4d23bbd68d3bc6875455198d9fbe6 - fix(parser): restore BC for manual Handler/Parser construction</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/Handler.php#21d6f17628c4d23bbd68d3bc6875455198d9fbe6</link>
        <description>fix(parser): restore BC for manual Handler/Parser constructionThe parser rework made ModeRegistry a required constructor argument onHandler and Parser and dropped the Doku_Parser class alias, breaking thelong-documented manual sub-parsing pattern used by many plugins(new Doku_Handler(); new Parser($handler); ...): both threwArgumentCountError and new Doku_Parser() fatalled as an unknown class.Default the ModeRegistry argument on both constructors: Handler builds aregistry for the configured syntax, Parser takes it from the handler.Re-add the Doku_Parser alias. Constructing without a registry emits adeprecation pointing at p_get_instructions().

            List of files:
            /dokuwiki/inc/Parsing/Handler.php</description>
        <pubDate>Sun, 05 Jul 2026 16:28:58 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>47a02a102092be9e1e6f1ddaf158bdfffdb13d4f - Parsing: make parse syntax a per-parse value, drop ModeInterface</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/Handler.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/inc/Parsing/Handler.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>cb0a6471bb5821651602f528ca9699fcbcb7554f - Merge branch &apos;master&apos; into gfm</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/Handler.php#cb0a6471bb5821651602f528ca9699fcbcb7554f</link>
        <description>Merge branch &apos;master&apos; into gfm* master:  Fix syntax plugin rendering

            List of files:
            /dokuwiki/inc/Parsing/Handler.php</description>
        <pubDate>Tue, 12 May 2026 18:33:21 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>7686f2030b19f948d2e50df1613ef6592fa44b46 - Fix syntax plugin rendering</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/Handler.php#7686f2030b19f948d2e50df1613ef6592fa44b46</link>
        <description>Fix syntax plugin renderingReverse the order in which core modes and plugin modes are handled by the \dokuwiki\Parsing\Handler.Otherwise only the handle() method of the plugin is called, which is fine for core modes. Syntax plugins need to go through plugin() to actually add their own calls.

            List of files:
            /dokuwiki/inc/Parsing/Handler.php</description>
        <pubDate>Tue, 12 May 2026 17:18:06 +0000</pubDate>
        <dc:creator>Anna Dabrowska &lt;dabrowska@cosmocode.de&gt;</dc:creator>
    </item>
<item>
        <title>06ab3bb2c83692e8fee0c14ad0cc085ac2b07162 - Merge branch &apos;master&apos; into gfm</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/Handler.php#06ab3bb2c83692e8fee0c14ad0cc085ac2b07162</link>
        <description>Merge branch &apos;master&apos; into gfm* master: (176 commits)  Delete inc/Search/concept.txt  &#55358;&#56598; Rector and PHPCS fixes  &#55358;&#56598; Update deleted files  updated phpseclib dependency  use new ModeRegistry constant in info plugin  keep historic typo in value but not in constant  SearchIndex: fix comment position  &#55358;&#56598; Rector and PHPCS fixes  Translation update (tr)  Translation update (fr)  refactor(changelog): persist external-edit detection on first read  fix(infoutils): escape git log arguments for Windows compatibility  fix(preview): remove deprecated X-XSS-Protection header  fix: don&apos;t move the editor textarea into the toolbar  fix EXIF-rotated images shown cropped in previews, closes #4482  fix: avoid picker close/reopen race on toggle button click  subscriptions: include diff link in plain-text list mails too  Translation update (ru)  Translation update (pl)  Translation update (pt-br)  ...# Conflicts:#	inc/Parsing/ParserMode/Quote.php

            List of files:
            /dokuwiki/inc/Parsing/Handler.php</description>
        <pubDate>Tue, 12 May 2026 14:11:42 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>8788dbbd585b42284320d64cc932f3c875eab6b2 - &#55358;&#56598; Rector and PHPCS fixes</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/Handler.php#8788dbbd585b42284320d64cc932f3c875eab6b2</link>
        <description>&#55358;&#56598; Rector and PHPCS fixes

            List of files:
            /dokuwiki/inc/Parsing/Handler.php</description>
        <pubDate>Wed, 06 May 2026 19:32:03 +0000</pubDate>
        <dc:creator>splitbrain &lt;86426+splitbrain@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>309a08521b24a6fff00f318e061096f69771bbad - replace DW Quote with unified GfmQuote</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/Handler.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/inc/Parsing/Handler.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>9172eccff11a70df61d7aad697f84bbd815147ce - add sub-parser support to Handler / Parser / ModeRegistry</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/Handler.php#9172eccff11a70df61d7aad697f84bbd815147ce</link>
        <description>add sub-parser support to Handler / Parser / ModeRegistryA block mode that wants to parse the body of one of its capturedmatches needs a second Parser instance configured with the activemodes minus whatever would re-enter the outer mode. Doing this byhand is verbose and easy to get wrong &#8212; modes hold a $Lexer slotthat addMode() overwrites, so the same mode object can&apos;t be sharedbetween the main parser and a sub-parser.Three small additions:  Handler::reset() &#8212; clears calls, status, currentModeName, and  installs a fresh CallWriter. Lets one Handler instance be parsed  against repeatedly without state bleed.  Parser::getHandler() &#8212; accessor; sub-parser callers need it to  reach the handler for reset() and for harvesting the produced  call list.  ModeRegistry::getSubParser($excludeCategories, $excludeModes) &#8212;  returns a cached Parser preconfigured with every active mode  except those excluded. Mode objects are cloned before being  attached so connectTo()&apos;s assignment to $Lexer does not clobber  the main parser&apos;s references. Cache key is the exclusion-set;  default exclusion is CATEGORY_BASEONLY (no Header inside the  sub-parsed content).Tests cover Handler::reset&apos;s full clear, sub-parser caching,default and custom exclusions, registry-reset propagation, andthe clone-not-share invariant for $Lexer.

            List of files:
            /dokuwiki/inc/Parsing/Handler.php</description>
        <pubDate>Tue, 28 Apr 2026 06:22:27 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>04045feaa3a81b6a38bc817bbd154cc21c6a7f38 - remove unused rewriteBlocks property from Handler</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/Handler.php#04045feaa3a81b6a38bc817bbd154cc21c6a7f38</link>
        <description>remove unused rewriteBlocks property from HandlerThis flag was added in b7c441b9 (2005) for planned wiki syntaxconverters but was never set to false anywhere. Remove the deadconditional and always run Block processing.

            List of files:
            /dokuwiki/inc/Parsing/Handler.php</description>
        <pubDate>Sat, 18 Apr 2026 18:51:18 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>3ea3771b15c718db43d9be77115eba49aa1292e7 - supress code sniffer warning on deprecation wrapper</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/Handler.php#3ea3771b15c718db43d9be77115eba49aa1292e7</link>
        <description>supress code sniffer warning on deprecation wrapperPreviously the whole file was excluded. We can now be more precise.

            List of files:
            /dokuwiki/inc/Parsing/Handler.php</description>
        <pubDate>Sat, 18 Apr 2026 18:43:34 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>71096e46fcbfaeaa808667aba794e77fe2780169 - move handler methods into ParserMode classes and rename Handler</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/Handler.php#71096e46fcbfaeaa808667aba794e77fe2780169</link>
        <description>move handler methods into ParserMode classes and rename HandlerEach ParserMode class now implements handle() from ModeInterface,containing the token handling logic that previously lived as individualmethods on Doku_Handler.The Handler class (formerly Doku_Handler) is the single dispatch point:Lexer passes tokens to Handler::handleToken() which routes to modeobjects, plugins, or returns false. The Lexer only tokenizes andresolves mapHandler aliases.Key changes:- Add handle() to ModeInterface, implemented by all mode classes- Move Doku_Handler to dokuwiki\Parsing\Handler namespace- File extends Code (shared parsing via $type property)- Quotes uses mapHandler() + Handler::getModeName() for sub-modes- Media::parseMedia() replaces Doku_Handler_Parse_Media()- Code::parseHighlightOptions() replaces parse_highlight_options()- Per-parse state (footnote, doublequote) stays on Handler- Deprecated wrappers kept for base/header/internallink/media- Class alias and rector rules added for backward compatibility

            List of files:
            /dokuwiki/inc/Parsing/Handler.php</description>
        <pubDate>Sat, 18 Apr 2026 15:35:30 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
</channel>
</rss>
