I used to live in Evernote. Then it started wanting money to sync multiple devices. Now it considers the web UI a “device” in that multiple devices category, so I can’t use it on any local device at all and still access in the web, so that’s cool.
I’m trying to unpack gigabytes of ENEX backups from 10 years ago that I haven’t synced – it’s worth noting that if you have your notes synced, the conversion process is easy and you can do it in the web UI under settings. If you’re like me and don’t have your notes synced, because you didn’t want to pay to sync it, then you have to do some more work. As of the time of this post I wasn’t able to find a no-code tool for this, so we’re breaking out the command prompt.
This assumes you have ENEX exports already, from Evernote backup.
YARLE
YARLE appears to be one of the better ways to do this. It requires a node.js install, so do that first. They have instructions on their website, but they are written for people who know what they’re doing with command lines already, which I took one look at it and
Then create a file called yarle.config.json (make sure the extension is actually json, this can be funky if you have file extensions hidden) and paste in the config info. This was mine, update yours for your path and notebook name. The path assumes the file and output path are on your local drive under your user account, so usually c:/users/yourusername/whateverfolderpathyouwant.
{
"enexSources": [
"evernote/NOTEBOOKNAME.enex"
],
"outputDir": "evernote/converted",
"isZettelkastenNeeded": false,
"useZettelIdAsFilename": false,
"plainTextNotesOnly": false,
"skipWebClips": true,
"useHashTags": true,
"outputFormat": "StandardMD",
"taskOutputFormat": "StandardMD",
"urlEncodeFileNamesAndLinks": false,
"skipEnexFileNameFromOutputPath": false,
"monospaceIsCodeBlock": false,
"keepMDCharactersOfENNotes": false,
"keepOriginalAmountOfNewlines": false,
"addExtensionToInternalLinks": true,
"trimStartingTabs": false,
"convertPlainHtmlNewlines": false,
"encryptionPasswords": [],
"nestedTags": {
"separatorInEN": "_",
"replaceSeparatorWith": "/",
"replaceSpaceWith": "-"
},
"replacementCharacterMap": {
"<": "_",
">": "_",
":": "_",
"\"": "_",
"/": "_",
"\\": "_",
"|": "_",
"?": "_",
"*": "_"
},
"globalReplacementSettings": [
{
"type": "title" ,
"regex": "X",
"replace": "<replaced_X>"
},
{
"type": "content",
"regex": "a",
"replace": "<replaced_a>"
}
],
"resourcesDir": "resources",
"turndownOptions": {
"headingStyle": "atx"
},
"dateFormat": "YYYY-MM-DD",
"haveEnexLevelResources": true,
"haveGlobalResources": false,
"useUniqueUnknownFileNames": false,
"useLevenshteinForLinks": false,
"convertColorsToMDHighlight": false,
"logseqSettings":{
"journalNotes": false
},
"obsidianSettings": {
"omitLinkDisplayName": false
}
}
I created the folders in my c:\users\myusername folder above (‘evernote’ with a ‘converted’ folder under that) because I wasn’t sure if it would auto-create them, and dropped my ENEX file into the evernote folder.
I removed the template line from the config file because I can’t be bothered to make a template and I just want the notes out of lockdown, right. There’s instructions for how those work in the YARLE link above. If you leave that line out, it uses a default template.
Run the command to convert
Windows start menu -> Run -> cmd gets you a command prompt, then run:
yarle --configFile "C:\PATH_TO_JSON_FILE_HERE\yarle.config.json"
This uses the info in the config file to convert the ENEX to markdown files in the \converted folder (or wherever you told them to go in the config file).
Now, import your markdown somewhere
Notion has an option to import markdown from a ZIP, so I zipped the converted markdown folder and imported it (the option is in the settings link in Notion). That created the objects in Notion based on the markdown.
Some of my photos didn’t come through, I read somewhere that the “clips” in Evernote don’t make it, but haven’t gotten to looking into that yet. Most of my notes are photos from recipes.
I haven’t tried this with my larger notebooks yet, I’m not sure how well Notion will handle those – if not I’ll stick them in Obsidian most likely. This blog article is mostly notes for myself so that I don’t have to re-figure-out how to do this next week because my memory is spotty. 😅