What's new in Joplin 2.14

OCR

Optical Character Recognition (OCR) in Joplin enables the transformation of text-containing images into machine-readable text formats. From this version you can enable OCR in the Configuration screen under the "General" section. Once activated, Joplin scans images and PDFs, extracting text data for searchability.

While OCR search is available on both desktop and mobile apps, document scanning is limited to the desktop due to resource demands. For more information head to the OCR official documentation!

Bundled plugins

Joplin will now bundle high quality plugins that we feel will benefit most users. With this version we include the great Backup plugin by JackGruber. This will provide another layer of safety when using Joplin as by default it will automatically backup your notes in a "JoplinBackup" folder in your home directory.

Note that, just like any other plugin, you can change the plugin configuration or even disable it from the settings.

ENEX importer

As usual in recent version, there are plenty of improvements to the Joplin ENEX importer. Besides the various fixes and enhancement to support this format, we've added a few useful features:

Restore note links after importing an ENEX file

Evernote Export files do not include the necessary information to reliably restore the links between notes, so for a long time this feature was not supported by the importer.

Now however Joplin will try to guess what note is linked to what other note based on the note title, which in many cases will give the expected result. But not always - when that happens, and Joplin cannot detect the link target, the application leaves the original Evernote link. That way you can manually restore it yourself or at least find back what the note was linked to.

Import a directory of ENEX files

It is notoriously difficult to export data from Evernote because, among other issues, you can only export one notebook at a time, which is an obvious problems when you have dozens of notebooks. Unfortunately we cannot improve this part of the process since this up to Evernote, however we now make it easier to import all these notebook files by adding support for importing a folder of ENEX files. To use this feature, go to File > Import, and select one of the "ENEX (Directory)" options.

This will process all the ENEX files in that directory and create a notebook in Joplin for each of them.

Beta Markdown editor

This version features further improvements to the new Markdown editor based on CodeMirror 6. The goal eventually is to be able to use the same editor on both the desktop and mobile application (which already uses CodeMirror 6), which will allow a more consistent user experience across devices.

Plugin support has also been improved in this version - plugin authors can now write native CodeMirror 6 extensions using the plugin API. For more information check the documentation on how to create a Markdown plugin!

Another benefit of this new editor is that, in a future version, it will allow us to support plugins on the mobile application since a plugin written for the desktop app will work on mobile too. There are several other advantages that Henry listed in this forum post.

Rich text editor improvements

We continue making improvements to the Rich Text Editor (RTE) in particular to improve interoperability with other applications, such as LibreOffice, Office or web browsers, as well as better handling of copy and paste.

Another notable addition is support for setting colours, which was a frequently asked feature. To use the feature, select it from the "..." button in the toolbar. Note that once applied the colours will work in the Markdown editor too!

See below for the full list of RTE changes:

  • Fixed: Rich text editor: Fix context menu not shown in some cases
  • Improved: Speed up pasting text and images in Rich Text Editor
  • Fixed: Fix drag-and-drop of images and text in the rich text editor
  • Fixed: Fix images with SVG data URLs corrupted in the rich text editor
  • Fixed: Pasting rich text in the RTE sometimes result in invalid markup
  • Fixed: Rich text editor: Fix newline behavior in new notes
  • Improved: Add support for changing text colors in rich text editor
  • Fixed: Fix HTML resource links lost when editing notes in the rich text editor
  • Fixed: Fix code blocks with blank lines break tables in the rich text editor
  • Fixed: Copied and pasted text from Firefox to RTE does not include images
  • Fixed: Pasting rich text in the RTE sometimes result in invalid markup
  • Fixed: Fixed copying and pasting an image from Chrome in RTE

Full changelog

This is just an overview of the main features. The full changelog is available there:

15 Likes

Thanks for the update Laurent and other contributors!

I've been testing out the Evernote import process and I have some observations and feedback I'd like to share.

  1. It seems that note links are only restored if they point to a note in the same notebook/ENEX file.

    There is the obvious problem of the target note simply not having been imported yet.
    Even so, making sure that the target note has been imported first, the link restoration still does not work.

    The problem of the target note not being present yet, could be tackled by using the import directory of ENEX files feature. But probably the best way would be to allow the user to trigger the restoration of Evernote links manually, after all notebooks have been imported. See also this previous discussion: Evernote ENEX import suggestion (or plugin) re: note links.

  2. There is a small bug in the importer when parsing bullet lists. When placing a new line, within the same bullet point, this is placed in a new paragraph in Joplin. Interestingly, this does not happen with numbered lists.
    I can provide a sample ENEX if you wish, though the forum would not let me upload it as an attachment.

    Original in Evernote:

Result in Joplin:

  1. It is notoriously difficult to export data from Evernote because, among other issues, you can only export one notebook at a time, which is an obvious problems when you have dozens of notebooks.

    Exporting Evernote notebooks can be greatly sped up by using this Python tool: GitHub - vzhd1701/evernote-backup: Backup & export all Evernote notes and notebooks. It will automatically export all notebooks in separate ENEX files. Perhaps it deserves a mention on the importing/exporting wiki page? I'd be happy to try and create a PR for this.

    Of note is that exported notebook stacks are reproduced by folders. If you were to make the folder import function in Joplin recursive, this could allow you to automatically recreate the notebook structure.
    Visually, the exported file structure looks like this:

export\
│  Top level notebook.enex
│
├───Notebook Stack one
│      Notebook 1A.enex
│      Notebook 1B.enex
│
└───Notebook Stack two
        Notebook 2A.enex
        Notebook 2B.enex
  1. Now that colored text is supported, it would be good to have the ENEX importer deal with it too. :slightly_smiling_face:
4 Likes

Hi there,

Is there a difference between the tag design of 2.14 and 2.13? For example, I have a note comes with 20 tags, and then I want to see the notes tagged with "tag 1" , so I click on it and I see the notes tagged with "tag 1". Now, if I want to see the notes of "tag 15", I cannot just find it and click on it to see the notes of "tag 15" because there is not enough room to show all 20 tags in 2.14, but I don't seem to have the same issue with 2.13. Am I right? Or I am missing something?

[quote="Danio, post:2, topic:36390"]
Exporting Evernote notebooks can be greatly sped up by using this Python tool: GitHub - vzhd1701/evernote-backup: Backup & export all Evernote notes and notebooks . It will automatically export all notebooks in separate ENEX files. Perhaps it deserves a mention on the importing/exporting wiki page? I'd be happy to try and create a PR for this.
[/quote]i

Thank you for this. I will try this option to export my evernote notes under linux, as i do not have a windows system anymore.

2 Likes

Trying again to attach an enex file that demonstrates the issue with the list items:
List items.enex (859 Bytes)