<?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 Externallink.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/inc/Parsing/ParserMode/Externallink.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/ParserMode/Externallink.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>15429f02faae079ee2b0d8112fedf410ca65d9f2 - Externallink: GFM autolink extension - parens and entity-ref tail</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Externallink.php#15429f02faae079ee2b0d8112fedf410ca65d9f2</link>
        <description>Externallink: GFM autolink extension - parens and entity-ref tailIn Markdown-preferred mode, allow `(` and `)` inside URL char classesand consume an optional trailing entity reference via the sharedHtmlEntity::PATTERN. The Markdown-only post-processing peels offmismatched closing parens and decodes the trailing entity reference,emitting the peeled chars as cdata after the link. Refactors handle()to dispatch to handleAngleAutolink() and handleBareUrl(), with the newtrim logic in peelGfmTail() and the protocol-prefix step inaddProtocolPrefix(). DW-only mode behavior is unchanged.Brings GFM spec examples #624, #625, #626 to passing.

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/Externallink.php</description>
        <pubDate>Tue, 12 May 2026 14:03:56 +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/inc/Parsing/ParserMode/Externallink.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/inc/Parsing/ParserMode/Externallink.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>71096e46fcbfaeaa808667aba794e77fe2780169 - move handler methods into ParserMode classes and rename Handler</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Externallink.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/ParserMode/Externallink.php</description>
        <pubDate>Sat, 18 Apr 2026 15:35:30 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>90fb952c4c30c09c8446076ba05991c89a3f0b01 - code style: operator spacing</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Externallink.php#90fb952c4c30c09c8446076ba05991c89a3f0b01</link>
        <description>code style: operator spacing

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/Externallink.php</description>
        <pubDate>Thu, 31 Aug 2023 20:38:07 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>bcaec9f47d06126b3e653fea89a86d8b6a6cbef8 - Apply rector fixes to inc/Parsing</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Externallink.php#bcaec9f47d06126b3e653fea89a86d8b6a6cbef8</link>
        <description>Apply rector fixes to inc/Parsing

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/Externallink.php</description>
        <pubDate>Tue, 29 Aug 2023 16:14:40 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>206d3a69f56a6436df591e9818f4ec81de068734 - Merge pull request #2433 from splitbrain/issue2399</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Externallink.php#206d3a69f56a6436df591e9818f4ec81de068734</link>
        <description>Merge pull request #2433 from splitbrain/issue2399Fixed broken link rendering for external links at start of line

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/Externallink.php</description>
        <pubDate>Tue, 13 Oct 2020 11:10:58 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>5c99934fa496e741110e47e8fd4d9ef528851259 - Public access to patterns in external link parser</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Externallink.php#5c99934fa496e741110e47e8fd4d9ef528851259</link>
        <description>Public access to patterns in external link parser

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/Externallink.php</description>
        <pubDate>Wed, 12 Aug 2020 07:53:38 +0000</pubDate>
        <dc:creator>Anna Dabrowska &lt;dabrowska@cosmocode.de&gt;</dc:creator>
    </item>
<item>
        <title>4da6a3ce612d972b13310df55b55ba30a32071b6 - Fix php styling of too long regexp</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Externallink.php#4da6a3ce612d972b13310df55b55ba30a32071b6</link>
        <description>Fix php styling of too long regexp

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/Externallink.php</description>
        <pubDate>Tue, 10 Mar 2020 00:42:56 +0000</pubDate>
        <dc:creator>Phy &lt;git@phy25.com&gt;</dc:creator>
    </item>
<item>
        <title>f216edae611a9a1677577709a8b2e33f231b6a7d - Fixed broken link rendering for external links at start of line</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Externallink.php#f216edae611a9a1677577709a8b2e33f231b6a7d</link>
        <description>Fixed broken link rendering for external links at start of lineExternal links at the start of line like &apos;www.example.com&apos; werenot rendered as links any more. The issue was introduced with PR #1988.Fixes #2399.

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/Externallink.php</description>
        <pubDate>Thu, 21 Jun 2018 19:20:36 +0000</pubDate>
        <dc:creator>Lars Paulsen &lt;lars_paulsen@web.de&gt;</dc:creator>
    </item>
<item>
        <title>be906b566b9bdfd92c032ee07c4fd077d820a8d1 - moved all parsing related namespaces to their own</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/Externallink.php#be906b566b9bdfd92c032ee07c4fd077d820a8d1</link>
        <description>moved all parsing related namespaces to their own

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/Externallink.php</description>
        <pubDate>Fri, 04 May 2018 12:22:09 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
</channel>
</rss>
