Markdown syntax highlighting for Notepad++, by customized UDL (user defined language) file
Clone or download

Markdown Syntax Highlighting for Notepad++

Writing docs in Markdown is common today, but Notepad++ doesn't provide syntax highlighting for Markdown by default. That's why this repo exists.

This repo markdown-plus-plus is a collection of User Defined Language XML files for Markdown syntax highlighting in Notepad++. You download a file that matches your favorite theme, import in Notepad++, and then you are good to go.

Thanks for encouragements and comments. This repo is not only for myself anymore. It's for everyone.

If you are a Notepad++ and Markdown user, this is made for you.


Your Taste!
Markdown in Default Theme of Notepad++ Markdown in Zenburn Theme of Notepad++
Default Zenburn
Markdown in Blackboard Theme of Notepad++ Markdown in Deep Black Theme of Notepad++
Blackboard Deep Black

Supports file extensions: .markdown and .md
Tested: Notepad++ v7.5.1 (Windows 10)

Step Zero: Pick Your Side

In this latest release, there are 2 types of builds:

  • modern build: The new build having better highlighting; restriction(s) on how you write Markdown.
  • classic build: Long living in this repo since day 1 (v1.x); no restriction.

Note for current user:

You are probably using the "classic" build. The new "modern" build is trying to fix the limitation of multiple em words. If you have lots of docs using the following syntax, you may stick to "classic" build.

Difference between "modern" and "classic" builds:

modern build classic build
comes from formerly beta branch formerly master branch
*multiple em words* parse ALL words only parse the first word
* asterisk-style bullet points not support (use - or + instead) fully support
preview modern build preview classic build preview


  1. Choose one of the following Markdown language definition files. You can directly download using "save as":

    Theme modern classic
    Default userDefinedLang-markdown.default.modern.xml userDefinedLang-markdown.default.classic.xml
    Zenburn userDefinedLang-markdown.zenburn.modern.xml userDefinedLang-markdown.zenburn.classic.xml
    Blackboard userDefinedLang-markdown.blackboard.modern.xml userDefinedLang-markdown.blackboard.classic.xml
    Deep Black userDefinedLang-markdown.deep-black.modern.xml userDefinedLang-markdown.deep-black.classic.xml
  2. In Notepad++ menu, click Language and select Define your language... .

  3. In User Defined Language windows, click Import then open the xml file.

  4. Restart Notepad++.

  5. Open and test with a Markdown file e.g.



Need your input to solve the following problems:

  • _em text_, __strong text__ and ___em strong text___ only parse the first word because it will screw up some URL contains example__url
  • In modern build, you can not use the asterisk-style bullet points (* a bullet point)
  • In classic build, *em text* only parse the first word because it will screw up unorder list

Build Script for Developers

From v1.1, a build script is provided for your convenience. For details, please read the document:


tl;tr For pull request, please do check Allow edits from maintainers, and merge from your new branch into my master branch; Or, propose a file change in Github directly; Or, hit me a message via issue page or my social contacts.

For details, please kindly read

🍺 Thank you so much! 🙏

Note to Original Repo from @thomsmits

Basically I revised the original repo from scratch.
If you don't feel good in my settings, please comment.
I'll try my best to improve.
Or, use Thomsmits' current repo :)


Copyright for portions of this repository are held by Thomas Smits, 2010 as part of his repository. All other copyright are held by Edditoria, 2012-2017.

See the LICENSE file for license rights and limitations (MIT).