<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Plugin Request: Markdown navigation panel]]></title><description><![CDATA[<p dir="auto">VS Code has a plugin that would be a great idea for Notepad++ as well.<br />
It is called <strong>markdown-navigation</strong>, available at <a href="https://marketplace.visualstudio.com/items?itemName=AlanWalk.markdown-navigation" rel="nofollow ugc">https://marketplace.visualstudio.com/items?itemName=AlanWalk.markdown-navigation</a></p>
<p dir="auto">Upon every file save it creates a TOC tree in a panel. As well helping navigate large documents easily, it lets you use your editor as an outliner.</p>
<p dir="auto"><img src="https://raw.githubusercontent.com/AlanWalk/markdown-navigation/master/resources/screenshot.png" alt="markdown-navigation screenshot" class=" img-fluid img-markdown" /></p>
]]></description><link>https://community.notepad-plus-plus.org/topic/18808/plugin-request-markdown-navigation-panel</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Jul 2026 22:11:47 GMT</lastBuildDate><atom:link href="https://community.notepad-plus-plus.org/topic/18808.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Jan 2020 13:39:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Plugin Request: Markdown navigation panel on Thu, 23 Jan 2020 14:44:05 GMT]]></title><description><![CDATA[<p dir="auto">N++ “has” that.  It’s built-in and called the “Function List” (View =&gt; Function List).  Of course, you’ll need to do a little work to get it to “work”.</p>
<p dir="auto"><a href="https://community.notepad-plus-plus.org/topic/18458/display-markdown-outline-view-through-functionlist">Discussion</a><br />
<a href="https://community.notepad-plus-plus.org/topic/18458/display-markdown-outline-view-through-functionlist/8">Solution</a></p>
<p dir="auto"><strong>Summary below:</strong><br />
In your functionList.xml in the N++ install directory, in the “&lt;associationMap&gt;” section at the top, add:</p>
<pre><code>&lt;association id="markdown" userDefinedLangName="Markdown"/&gt;
&lt;association id="markdown" ext=".md"/&gt;
</code></pre>
<p dir="auto">And then at the bottom, in the &lt;parsers&gt; section, add:</p>
<pre><code>    &lt;!-- ==================================================== [ Markdown ] --&gt;

    &lt;parser
    displayName="Markdown"
    id   ="markdown"
    commentExpr="(?x)             # free-spacing (see `RegEx - Pattern Modifiers`)
      (?ms:               # Code block
        ^               # ...at start-of-line a
        (?'BLOCK'\x7E{3}(?!\x7E)|\x60{3}(?!\x60))     #  block-start indicator
        \w*\h*$             #
        .*?             # ...whatever,
        ^\x20{0,3}            # ...optional indentation for a
        \k'BLOCK'             #  block-end indicator
        \h*$            #  with trailing white-space only
      )
      "
    &gt;
    &lt;function
      mainExpr="(?x)            # free-spacing (see `RegEx - Pattern Modifiers`)
        (?m-s)            # ^ and $ match at line-breaks, dot does not
        ^               # at start-of-line
        (?'NOCODE_INDENT'
        \x20{0,3}(?!\x20)         # indent of 3 spaces max, otherwise it's code
        )
        (?:             # ATX-style heading
        (?'LEVEL'\x23{1,6}(?!\x23))       # nr. of hashes indicate level
        \h*             # whitespace?  ( use '+' instead of '*' for at least one white-space)
        \K            # discard text matched so far
        (?:
          [^\r\n\x5C]
        |   \x5C.           # backslash escape sequence
        )+
        (?:             # closing sequence
          \h+           # ...starts w/ at least one white-space
          \x23+           # ...contains only hashes, amount arbitrary
        )?            # ...is optional
        \h*$            # trailing white-space up till line-break
        |               # Setext-style heading
        \K            # discard text matched so far
        [^\r\n]+          # whatever,
        (?=             # ...up till
          \h*(?:\r?\n|\n?\r)        # ...any trailing white-space and a line-break,
          (?&amp;amp;NOCODE_INDENT)       # ...indent for header indicator
          (?:={3,}|-{3,})         # ...H1- or H2-header indicator resp.,
          \h*$          # ...trailing white-space up till line-break
        )
        )
      "
    &gt;
      &lt;functionName&gt;
      &lt;nameExpr expr="(?x)
        (?|
          (?:\h+\x23+\h*$)
          [^\r\n]+
          (?=
          \h+\x23
          )
        |   .*
        )
        "
      /&gt;
      &lt;/functionName&gt;
    &lt;/function&gt;
    &lt;/parser&gt;
</code></pre>
<p dir="auto">Cheers.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/50049</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/50049</guid><dc:creator><![CDATA[Michael Vincent]]></dc:creator><pubDate>Thu, 23 Jan 2020 14:44:05 GMT</pubDate></item></channel></rss>