[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 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
This post is deleted!last edited by
@nea This is one of those times, I come across something and feel the need to slap myself on the forehead and go “DOOH” Homer Simpson-style… A lot of colleagues and I work A LOT with markdown since it’s fast to write, and very little effort to write a lot of descriptive text - for instance complex unstructured datasets while research is ongoing - and still make it look good and professional… only downside with describing datasets is, that there is NO way around not checking regularly to how it looks in output, especially since records or JSON sets can get very long - describing fields in blocks lining up with what could be a relationship… writing them in an online tool isn’t ideal and so wasn’t switching between windows either… and that’s why not thinking of a plugin myself or any colleague I regularly work together with, is pretty stupid actually for a bunch of scientists :-) Shows again that visionaries in one field, can be blind as a bat in a different field :-) I like the plugin a lot sofar and had no trouble in convincing others to give it a go… sending the link to your github did the trick :-) Thank you !
Would you consider a dark theme option for those of us that enjoy to work in the dark?
Fantastic plugin! I was looking for something just like this … even better that it is a Notepad++ plugin. The ability to use a custom .css is a great feature!
However, the only issue that I am having is that images do not display in viewer nor or they picked up when I export to PDF. However, they are present when I export to HMTL. This occurrs for both PNG and JPG files.
I use thing the following to include images:
Thank you very much for that great tool ! Although I am already happy and have gotten more than I expected, I will gladly follow any improvement. One very little improvement for new users may be to set the “synchronize” checkmark to “on” as default, ;-) .
After a long idle period (really sorry about that) I just updated to 0.8.0:
- Changed CommonMark converter to Markdig to support more custom Markdown syntax such as Pipe Tables etc.
- Updated PDFSharp and HTMLRenderer.PDFSharp accordingly (custom compilation, not in NuGet for the moment as HTMLRenderer has to merge my PR first!)
- Updated the NPP.net Plugin Template
You can find the newest release at https://github.com/nea/MarkdownViewerPlusPlus/releases/tag/0.8.0
Regarding all the issues: I have not forgotten about them but have to find the time and will get onto them ^^