I love writing in Markdown and would like to be able to write and preview Markdown content in Notepad++.
Are there any WYSIWYG Markdown plugins for Notepad++?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
There's a project called Markdown Syntax Highlighting for Notepad++ on GitHub.
This project adds custom language highlighting for Markdown:
There's a version available for both the standard color scheme and the dark (ZenBurn) theme. After installation, you'll find a new option in the Language dropdown.
MarkdownViewer++ is a Notepad++ plugin that lets you type a file using Markdown and see the preview in real time, in a preview panel.
To clarify: unlike Markdown Syntax Highlighting for Notepad++, which was recommended by Oliver Salzburg here, it doesn't support syntax highlighting and inline rendering. The text file is treated as a normal one, and the plugin shows it rendered in another pane.
A picture will make it clearer:
Among its features:
To install it, use Notepad++'s plugin manager: open Notepad++ and go to Plugins → Plugin Manager → Show Plugin Manager, then scroll to MarkdownViewer++, select it, and click on Install. It will automatically download the plugin and install it. At this point the editor must be restarted, and it will ask you whether you want to do it immediately (so there's no risk of losing your work).
If you want to automatically preview Markdown in Notepad++ you can use the HTML Preview plugin (version 1.3 and higher) in combination with a Markdown tool. In the HTML preview plugin you can define a filter (a program that will be executed on a source file automatically before previewing the file).
You can define a filter using a menu option (changing the provided sample file does not work), or manually if you put Filters.ini file in the folder plugins\Config\PreviewHTML. An example of Filter.ini file is enclosed in the Preview plugin archive file available from PreviewHTML web page.
This is an example of Filters.ini file that uses a Python Markdown implementation:
; Content of Filters.ini file [Markdown] Extension=.md Language=Markdown Command=python -m markdown "%1"
The "Edditoria" GitHub repository has a number of bugs (for example,
# inside a link is broken) and hasn't been updated for years. After trying out the most active forks, this one is much better.
For syntax highlighting I would go for the solution of Oliver Salzburg.
Here I found a link to a nice trick if you want to preview Markdown in Notepad++ (link to the "trick").
The Gist: There is a Notepad++ extension called NPP_EXEC, which executes scripts. Combine it with the Perl (Python, Node.js, etc.) Markdown script to generate HTML output into a tab.
It is not very verbose, but I hope this still helps others that want the same. (Like me:))
This is a version, that could be used (it with a Node.js implementation of md2html), for people that don't like to wade through documentation:
NPP_SAVE SET OUTFILE = C:\temp\md2html.html cmd /c md2html "$(FULL_CURRENT_PATH)" > $(OUTFILE) NPP_RUN chrome $(OUTFILE)
Just a few tweaks to winner joiner's answer. I now have two NPP_EXEC scripts, each under a keyboard shortcut.
One creates an HTML version of the Markdown file, with the same filename in the same directory, launches it in the default browser and shuts the console window. You then alt-tab over to the browser to admire the results.
NPP_SAVE SET OUTFILE = "$(CURRENT_DIRECTORY)\$(NAME_PART).html" cmd /C \Python34\python.exe -m markdown2 "$(FULL_CURRENT_PATH)" > $(OUTFILE) NPP_RUN $(OUTFILE) NPP_CONSOLE 0
The other does the same, except does not launch it in the browser (
NPP_RUN $(OUTFILE) isn't there). I find this handy when I've already run the first script once: just alt-tab over to the browser and hit F5 to refresh it, rather than opening a new tab with the most recent edits.
You can save each script with its own name, stick it in the Macro menu with NPP_EXEC's Advanced Options, and then assign a keyboard shortcut to it via menu Settings → Shortcut Mapper.