HTTP API Request: Markdown Rendering

Please add a feature to the HTTP API to render markdown using Joplin's internal renderer and settings.

I've brought up this up before on Github where it received little traction, but since then, Joplin's renderer has become far more configurable, with around 20 features available to toggle, as well as the potential for plugins to modify the process further. The result of this is that it is impossible to expect an external tool to faithfully render notes from Joplin. Joplin itself is required.

There are some complications, but these should not be insurmountable:

Joplin's internal CSS or script files could be inlined into the rendered HTML file. It would not be difficult for even an external application with special requirements to detect, e.g. "", and do whatever it needs to.

Similarly, handling of resources such as other linked notes, files, or images is obviously also a problem that the caller would need to solve in an application specific way. Nonetheless, finding <a> and <img> tags and rewriting their href/src is not difficult in any modern language.

The goal is not to make a perfect final product HTML file that can be directly displayed in a browser, but to give external applications access to a rendered product that is comparable to the display of a note in Joplin, which they can then adapt to their purposes.

If I want to publish a Joplin note on my website, or upload it to my blog, or whatever fancy ideas others may come up with, the details of how things are hosted, uploaded, etc, will change, and will necessarily be different for each application, but with all the customization currently in Joplin, providing the base rendered DOM for applications to adjust would be an extraordinary benefit. I can't perfectly mimic all of Joplin's multitude of rendering features and settings. Particularly when I'm writing in another language that cannot copy/paste, in some form, Joplin's existing rendering code.

It doesn't have to be perfect. Having it at all is a massive help, in starting from a solid foundation.

2 Likes

In fact, you can copy some of joplin's code, which uses markdown-it to handle various renderings, I guess some code is reproducible. In addition, regarding exporting to blog or website, there are already a large number of existing plugins for rendering markdown. Compared with joplin, only a subset is implemented. You can refer to joplin-blog, except for the need to convert resources and links to internal notes, other parts are basically based on existing open source tools, no big deal.

This is correct. In fact, I already use another markdown renderer for this purpose. My problem is that what you say is not true. I can only copy Joplin's code when writing in JavaScript. I cannot integrate it into applications written in other languages.

The result of this is that it can be difficult for external applications to produce results that are comparable to Joplin, due to the amount of effort required to configure and replicate all features, particularly if they are not easily available in your language of choice, not to mention that there is no way to externally access Joplin's markdown rendering settings.

Joplin already knows exactly how its rendered markdown should look, and it already knows exactly how to produce that output. Providing access to that output to other applications would be a significant benefit.