<?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 GfmEmphasis.php</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>bcefb8ae61f4ff776efdbad9508c8ee8e5c548a6 - add GFM emphasis and underscore-delimited strong modes</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Parsing/ParserMode/GfmEmphasis.php#bcefb8ae61f4ff776efdbad9508c8ee8e5c548a6</link>
        <description>add GFM emphasis and underscore-delimited strong modesThree new inline formatting modes for GitHub Flavored Markdown:  GfmEmphasis            `*text*`    &#8594; &lt;em&gt;  GfmEmphasisUnderscore  `_text_`    &#8594; &lt;em&gt;    (MD-preferred only)  GfmStrongUnderscore    `__text__`  &#8594; &lt;strong&gt; (MD-preferred only)All three emit the same handler instructions as DokuWiki&apos;s Emphasis /Strong, so existing renderers need no changes.Design notes:* Lexer mode names use snake_case (gfm_emphasis, gfm_emphasis_underscore,  gfm_strong_underscore) to keep PascalCase readable at the class level.  The asterisk variant emits `emphasis_open`/`emphasis_close` via the  getInstructionName() hook, so DW&apos;s Emphasis (`//...//`) and  GfmEmphasis (`*...*`) can coexist in mixed modes without a lexer  state collision while still producing the same &lt;em&gt; output.* Underscore variants gate on Markdown-preferred syntax (`markdown`,  `md+dw`) because `__` otherwise means DW underline. GfmStrongUnderscore  sorts at 70 (matching Strong) &#8212; below Underline at 90 &#8212; so when loaded  it wins the lexer race for `__` runs. Underline is already gated out  of MD-preferred modes in the previous commit.* Entry patterns enforce the simplified CommonMark flanking rules  already shared across DW inline modes (non-whitespace adjacency,  no paragraph-boundary crossing) plus the word-boundary check for  underscore variants using NO_WORD_BEFORE / NO_WORD_AFTER. The  positive non-word-char enumeration makes them multibyte-safe without  requiring the `u` flag: `f&#252;r_etwas` and `&#1087;&#1088;&#1080;&#1089;&#1090;&#1072;&#1085;&#1103;&#1084;_&#1089;&#1090;&#1088;&#1077;&#1084;&#1103;&#1090;&#1089;&#1103;_`  correctly stay literal.Per-mode unit tests cover basic matching, single-char bodies,leading/trailing-whitespace rejection, empty-delimiter rejection,paragraph-boundary rejection, multibyte intraword protection, andsort values. ModeRegistryTest&apos;s gating data provider picks up thethree new rules.

            List of files:
            /dokuwiki/inc/Parsing/ParserMode/GfmEmphasis.php</description>
        <pubDate>Mon, 20 Apr 2026 18:52:28 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;gohr@cosmocode.de&gt;</dc:creator>
    </item>
</channel>
</rss>
