Home / GitHub Page

[Feature request] Export to ENEX

In https://joplinapp.org/#importing-from-other-applications it says “Most note-taking applications support ENEX files…” which makes it a good format for data exchange between note-taking apps.

Considering this, I think it would be nice if Joplin offered an “Export to ENEX” function.
The JEX format is nice for backups but I don’t think many other applications offer a JEX import.
Exporting to ENEX would make a potential move out of Joplin easier if ever needed. Having this option makes it easier for me to put lots of valuable data into the application.

What do you think?

1 Like

you can already export to markdown and backup images from resources dir. That’s as plain forward as it can get…
markdown is so simple (it’s just plain text) you can always convert from there into everthing you like if you have to

I don’t think it`s top priority for the delelopers to spend time on exporting to other applications…

3 Likes

I know that the markdown export is plain, simple and human readable.
But in the markdown export metadata like tags is lost and the RAW/JEX format, although easily understandable and parsable, is Joplin-specific.

For a potential move to other applications ENEX would be the easiest as the cited statement from the Joplin website says.
I therefore would consider this a valuable features. Not high priority, but still nice to have.

1 Like

I guess it would not be too time consuming to include tags in the exportet markdown text…
from there it should be easy to write a converter … (and before you ask: Since I am comfortable with Joplin for now I am not planing to write a parsing tool… no pun intended :slightly_smiling_face:)

I would prefer to export to a more open format than ENEX, if such a format exists.

1 Like

ehm … :thinking:: markdown … JSON? :smile:

I've done a teensy bit of digging, and it appears there are existing JavaScript/Node.js libraries that could be useful for this purpose:

Marked, which parses Markdown into JavaScript objects:

and XML Builder 2, which builds XML from JavaScript objects:

The ENEX DTD can be found here:
http://xml.evernote.com/pub/evernote-export3.dtd

via:

Unfortunately, JavaScript is not my native language, but it seems like it should be relatively straightforward for someone to create a Markdown-to-ENEX converter by stitching these things together, no? I mean, I can take a stab at it myself, but if I make any progress, it will probably take me some time.

The main reason I would see this feature as worthwhile is that I personally have over 17,000 notes in Evernote, and I'm somewhat apprehensive about forking my Evernote library without the assurance that I can change my mind later on. I would really, really like to be able to escape the clutches of Evernote.

I should also emphasize that the feature need not be implemented directly within Joplin. It could be perfectly reasonable for me or someone else to start with an md2enex command-line utility and go from there.

3 Likes

The way it works in general is that apps support importing various formats, and then export their own format, plus open formats (for example Joplin can export to Markdown, HTML, PDF or text files).

It's rare that an app would support exporting to a closed, proprietary format, unless perhaps it's extremely popular (PSD or PDF for instance makes sense). So that's why I'm not keen on supporting ENEX export, or else why stop there? There's a ton of note-taking apps which are equally or more popular than Evernote and maintaining all these export formats is not feasible. Again, this is also the reason why it's the app's job to support various import formats, rather than expect other apps to do it for them.

Have you considered asking on Evernote forums to support importing the JEX format? I know how this sounds, but could be worth a try and that would be more logical than us supporting ENEX export.

Oh, I totally don't blame you for not wanting to implement ENEX export. I can't wait to escape Evernote's clutches. I do remember when Apple first launched iWork, though, that they made "round-tripping" MS Office files a priority, not because they liked the format but rather as a way to make people more comfortable switching.

I think the broader issue for me, though, is maintaining some semblance of metadata portability, which Markdown, HTML, PDF, and plaintext don't support particularly well. (I also strongly distrust file system metadata.) My main use case for Evernote is actually just treating notes as freeform metadata for attachments, though I do have plenty of actual notes. Evernote is incredibly mediocre for this purpose, of course.

I actually did succeed in importing my 17,489 notes into Joplin, only to find that they had all gotten dumped into a single notebook (albeit with tags intact). So it seems like I will have to do more "preflight" for my Evernote before I'll be able to finish switching. (I think the easiest thing would be to duplicate the notebook hierarchy as tags, rather than exporting a hundred or so different notebooks individually.)

You can export evernote notebooks one at a time, it can be menial if you have a lot of notebook, but it's probably still faster than tagging every notebook. When you import the notebooks into Joplin they'll be in the correct folders (because you import 1 folder at a time) but you'll have to manually re-create the hierarchy.

That's a good point, and I also don't like the idea of being stuck with a particular product.

Unfortunately no good open note format with metadata ever really emerged. A variation of EML for example would work very well and would allow both metadata and attachments within a single file, but without support from any note-taking tool it can't really happen. I think iCalendar has a Note object too, but again not well supported.

As for ENEX export, the coming plugin system will support creating custom importers/exporters so it should be possible to create one for ENEX. Although it won't be part of the main app, it will at least exist and allow moving the notes with metadata out of the app if one wants to.

1 Like