[New Plugin] MarkdownViewer++
As I wasn’t able to find something similar very quickly (there probably is. . .), I decided to build a plugin to render the current file in a dockable window as a rendered HTML to see all changes and markup “beautified” in an instant. It can be found at GitHub MarkdownViewer++.
Why? What for?
I am writing everything in Markdown syntax ^^# As such, I also export HTML and PDF files and I am constantly checking how it looks etc. So far, I was using Dillinger or StackEdit. Great tools, actually awesome. That is why I used them for years now.
But, Notepad++ is my main editor, opened 24/7 basically. And to always track my files in the browser and “export” them to local directories just didn’t seem right anymore. That is why I went for a MarkdownViewer++, with basic rendering, HTML and PDF export.
It is my first Notepad++ plugin and credits goes to all the people in the README.md as I just assembled the their functionality to my current application case :)
So, I just did it for my own use case. But if it finds at least one additional (and happy) user, I will be happy, too ^^ The releases can be found here. Go try, if you like to.
I am eager for feedback. Found issues, bugs, potential enhancements etc. and will be happy to fix and add them. There are some open topics such as performance in big documents etc. which I am aware of and working on. But more feedback just increases the quality :) So, if you have any suggestions, just use the GitHub tracker and I will respond.
Thanks a lot and Best
thanks for this plugin!
I have tried to load several file formats (.txt, .log, .html etc.) and it works great.
Is it possible to document all the meaningful common file formats for the MarkdownViewer++ plugin?
Could you please add a check for these file formats in your plugin and refuse to process all the others (I accidentally loaded a bigger binary file and then the active MarkdownViewer++ plugin blocked the Notepad++ for a very long time as it evidently tried to interpret it…).
(maybe consider renaming this plugin to something more general as I see its usability in displaying and saving to html/PDF also for the other file formats in the future…)
Thanks for the positive feedback.
Yes, it works for multiple formats. Actually, I don’t care but am just looking at the current one. Big files and binary are still a bummer.
But you brought up a good point. I will probably add some checks for file formats, offer a configuration for these and think about loading/processing it asynchronously to try to circumvent blocking as much as possible. I will make myself a ticket and see, when I will have time to add this. But that’s also a reason, why I am not versioning it 1.0.0 ^^… at least for now… still a long way to go :)
Regarding the naming: Yeah, actually I had the same idea but I want to focus on Markdown and ensure that functionality first. As long as that is the focus, I will run with the given name.
But maybe future major versions or derived plugins will extend on that. Thanks for the hint.
Maybe similar to https://github.com/gclxry/NppMarkdown.
Yes, thanks for pointing that out. Regarding that link: I found that, too and also read up about it in this thread https://notepad-plus-plus.org/community/topic/13156/nppmarkdown-link-broken. But I was actually to lazy to compile it myself and just went straight for testing my own ^^’
Regarding x64 support: I am already using the newest NPPPluginPack.net version and also worked with the current PR and changes but wasn’t able to get it fixed quickly, why this is still on my ToDo list and will be done… but some more features and bugfixes first :)
Thanks a lot
Great stuff. Did you find the plugin pack easy to use (https://github.com/kbilsted/NotepadPlusPlusPluginPack.Net)? If you like it, please link to it from your readme - I’d be nice with some traction and more people to help out with maintaining it. And linking to it is the first step in that direction ;-)
Actually, it is the first link in my README.md under “License and Credits” as I would never take credit for your plugin pack. I hope that linkage and usage is fine for you. Otherwise, let me know.
It was an ease to use, especially with the Demo Plugin. Big thanks for that :) And after your hint to ILMerge and figuring out some stuff it worked even better.
Thanks and Cheers
Sorry I didn’t mean to say that due credits were not given! ;) I just overlooked that first bullet in the readme. Great to know that ilmerge worked. If you feel like it, it’d be great if you could jot down your experiences and setup for using 3rd party dll’s with the plugin pack - somewhere a suitable section should be created in the readme. If you feel like it that would be awesome! Looking forward to a PR :-P
btw. I’ve linked from the plugin pack to your plugin ;)
I just released an updated version 0.5.0 with several changes
- @xomx I added an options dialog to allow some configuration. For example you can configure file extensions that should be rendered
- Several bug fixes have been made (big thanks to @dail)
You can find the newest releases at https://github.com/nea/MarkdownViewerPlusPlus/releases.
The changes are bigger so there may be issue popping up. You can always leave a note at https://github.com/nea/MarkdownViewerPlusPlus/issues and I will see to it being fixed as quick as possible.
Upcoming additions will be:
- Asynchronous rendering to improve the behaviour with large documents
- View rendered HTML on-the-fly
- and everything you and I can think of :)
Thanks a lot and Cheers
- Updated to the newest NotepadPlusPlusPluginPack.net version by @Kasper-Graversen
- @chcg With the update of the plugin pack I started producing x86 and x64 releases
You can find the newest releases at https://github.com/nea/MarkdownViewerPlusPlus/releases
Again, should you discover any bugs, post them at https://github.com/nea/MarkdownViewerPlusPlus/issues and I will get to it as fast as I possibly can.
Thanks and Cheers
Tried a simple SVG file to render but with no luck, is it really working?
<!DOCTYPE svg PUBLIC “-//W3C//DTD SVG 1.1//EN”
<rect x=“80” y=“60” width=“250” height=“250” rx=“20”
style=“fill:#ff0000; stroke:#000000;stroke-width:2px;” />
<rect x=“140” y=“120” width=“250” height=“250” rx=“40”
style=“fill:#0000ff; stroke:#000000; stroke-width:2px;
How was the SVG embedded, so how was the url to the SVG?
I used the very svg file (see the above) and also the same in a simple html file like:
<meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8” />
<svg xmlns="http://www.w3.org/2000/svg" width=“467” height=“462”>
<rect x=“80” y=“60” width=“250” height=“250” rx=“20” style=“fill:#ff0000; stroke:#000000;stroke-width:2px;” />
<rect x=“140” y=“120” width=“250” height=“250” rx=“40” style=“fill:#0000ff; stroke:#000000; stroke-width:2px; fill-opacity:0.7;” />
Ok, then maybe it came of wrong.
The MarkdownViewer++ does not render SVG files in Notepad++. It renders SVG files from sources, embedded inside a Markdown file. Sorry if that got of wrong.
As I mentioned, I wanted to focus first on Markdown files, even if direct SVG rendering would be possible right now.
There was an issue in an earlier version where the used renderer library didn’t support SVG natively. So, I added it… for according links/URLs in the Markdown file. That is what I fixed and what should work at the moment.
Sorry about any confusion
PS: If you like to see that feature in the future, maybe add it as issue and I will see how I can generalize the rendering functionality in the future ^^
Ok, I see now.
Update 0.7.0 has just been released.
Some more new features/additions have been made besides some smaller bugfixing:
- Added a menu action to print the rendered content directly
- Added margins configuration for PDF exports
- Added a menu action to copy the rendered content to the clipboard
- Added options to open an exported PDF/HTML after the action completed
- Added a menu action to send content as HTML/Text E-mail (requires Outlook)
You can find the newest release at https://github.com/nea/MarkdownViewerPlusPlus/releases
Should you discover any bugs, post them at https://github.com/nea/MarkdownViewerPlusPlus/issues and I will get to it as fast as I possibly can.
Thanks a lot and Cheers