/markdown-plus-plus

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

Primary LanguageShellMIT LicenseMIT

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.

Screenshot

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
Markdown in Solarized Theme of Notepad++ Markdown in Solarized-light Theme in Notepad++
Solarized 🆕 Solarized-light 🆕

Supports file extensions: .markdown and .md
Tested: Notepad++ v7.6.2 Yellow Vest Edition 32-bit (Windows 10 64-bit)
Notepad++ Yellow Vest logo

"Our civilization is being sacrificed to the opportunity for a very small number of people to continue making enormous amounts of money." -- Greta Thunberg at UN COP 24

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.

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

Usage

  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
    Solarized 🆕 userDefinedLang-markdown.solarized.modern.xml userDefinedLang-markdown.solarized.classic.xml
    Solarized-light 🆕 userDefinedLang-markdown.solarized-light.classic.xml userDefinedLang-markdown.solarized-light.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. test.classic.md

Enjoy!!

Limitations

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: build-workflow.md

Options 🆕

In v2.1.0, the build script adds supports of extra stuff besides Markdown:

  • "extraHighlight": Will highlight HEX value. It is not a Markdown syntax but eye candy.
  • "transparentBg": In original theme, each text has background of a specific color. "transparentBg": true will take out the background color. Good for customized theme.

You can change their value in json files. Then run the build script to produce the XML file you need.

As usual, you need npm to run the build script. Feel free to contact me if you need help.

Contribution

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 CONTRIBUTING.md.

🍺 Thank you so much! 🙏

License

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-2019.

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