Migrating From Evernote to Obsidian - July 2023

I’m a long-time user of Evernote, with roughly 1700 notes, and I’m exploring alternatives. Obsidian and UpNote are my leading options. In order to choose between them, I’m migrating all of my notes to both and briefly trying them out in parallel. In light of the recent announcement that Evernote’s US operations are being closed and everything is moving to Europe, I suspect many others will be making this same migration, so I wanted to share a few notes on what worked for me.
Obsidian does not offer a direct import of Evernote content. Instead, the recommended approach — and the method I used — is to export notebooks from Evernote, use Yarle to convert the exported .enex filed to .md files, and then use the directory containing your .md files as your Obsidian vault. Now that I’ve smoothed the rough spots, this is a process I can do in about half an hour.

Exporting from Evernote

The process here is simple, albeit tedious. For each of your notebooks in Evernote:
  • Right-click on the notebook and choose "Export notebook..."
  • Choose ENEX (.enex) as the file format
  • Check all the boxes to export all note attributes
  • Click the "Export" button
  • Select a folder where you’ll save all your .enex files
If you use stacks, as I do, I recommend that you create a folder structure on your file system to match your stacks. For example, I have a stack called "dev", so I created a folder called "dev" and exported all the notebooks from my dev stack into the dev folder. I found that creating a nested-folder hierarchy in Obsidian was a bit more pleasant this way.

Migrate From .enex To .md

Thanks to Akos Balasko, the maker of Yarle (Yet Another Rope Ladder for Evernote), converting all your exported Evernote notebooks to folders of .md files is relatively quick and painless. I found that the default settings didn’t work quite right, so I’m noting the approach I used.

Template

The main thing to know is that Yarle includes a configurable template file that dictates what information goes where in the .md files that are generated, and that you’ll probably want to edit it. Here’s the template I used:
{tags-array-block}
---
tags: {tags-array}
---
{end-tags-array-block}
{content-block}{content}{end-content-block}

{source-url-block} Source: {source-url}{end-source-url-block}

An aspect of Obsidian you’ll want to understand is that it has special treatment for metadata that appears at the top of a markdown file, delineated with three-hyphen lines above and below. When you’re viewing a file in Obsidian in reading mode, this block is removed from view. In editing mode, it appears as a visible, collapsible block of text at the top of the editor. (I find this distracting and annoying, and would much prefer that it be accessed via a separate UI.)
Tags can be added to a file within the metadata block or anywhere below it. I don’t use tags extensively, and when I do I don’t want them to appear in reading mode, so I chose to have Yarle place my tags in the metadata section. I also made it so no metadata block will be created at all if there are no tags, by placing the three-hyphen block delimiters inside the tags-array-block : no tags, no metadata block.
I chose to leave the creation and last-updated dates out of my notes. I prefer for this information to reside exclusively on the file system, and this is something that Yarle mostly does well. For some reason, on my Windows machine, some of the .md files ended up with last-updated timestamps that correspond with the moment I ran Yarle, not with the last time the note was updated. I’ve reported this bug and am hoping Akos will be able to fix it, as I find it very handy to be able to sort the notes within a big notebook by last-updated timestamp. But it’s by no means a deal breaker, and it’s the only problem I see in my migrated notes.

Internal Links

In addition to the modified output template, I made only one other tweak to the default settings in Yarle: I changed the "Add 'md' extension of internal links" option from no to yes. Prior to making this change, my links from note-to-note didn’t work within Obsidian.

Summing It Up: My Yarle Process

Now that you have the background info I think you need, here are the steps I followed.
  • Download Yarle, then install and run it
  • Click "Next" after you’ve read the intro page
  • Select the .enex files you’d like to migrate
    • If you use stacks in Evernote, I recommend doing one stack at a time
  • On the next screen, make sure the target dialect is "Obsidian", then change the "Add 'md' extension of internal links" option to "Yes"
  • Replace the default template with the one I shared above and click "Save"
  • On the next screen, select your output folder — this will be where your Obsidian vault is located
  • On the final screen, click the "Start conversion" button, then as Yarle works its magic you can scroll the "Logs" text field to monitor what’s happening
  • If you use stacks in Evernote, go to the output folder you selected, and create a similar nested-folder structure
    • Open the "notes" folder
    • Create a folder for your stack and name it accordingly
    • Move the notebook folders into the stack folder you just created
  • At this point, open Obsidian, point it at your Yarle output folder, and try it out, making sure that data came over, images show up, internal links work, etc.
    • If you don’t like the way something came over, you can delete all the folders in the "notes" directory, make whatever tweaks you think might fix the issue, and then try again
  • If you have more notebooks to migrate, you can click the "Previous" button in Yarle four times, change your selection of .enex files, then click the "Next Button" four times and start another conversion

And when that's all done, maybe buy Akos a coffee. I just did!

comments powered by Disqus