I’m using Evernote for the last 2 years and there were more than 1500 notes (including PDFs) saved in it.
But… recently, I discovered Obsidian and got fascinated by it. The offline notes, backlinks, privacy, speed and what not – it’s great. Finally, I decided to move all my notes from Evernote to Obsidian and then the problem started.
Evernote export file has .enex
extension but Obsidian supports simple markdown (.md
) files.
After researching a bit, I found a way, finally.
Let’s get into it…
Convert Evernote Notes to Markdown (.md)
We’ll take the help of a Node.js tool called Yarle to execute the process.
Let me explain everything step-by-step.
Step #1 – Install Node.js on your computer
Whether you’re running Windows, Mac, or Linux; Node.js
can be easily installed by following the instructions.
Right now, I’m on Windows 10; so all the screenshots will be according to that only. But… installation process for other OS is pretty straight forward too.
Download the installer, install it on your machine and move to the next step.
Please note, to run this tool you need to be using Node.js version 10.22.1 or higher.
Step #2 – Download Evernote export file (.enex
)
Select a notebook you want to export and click on the “Export Notebook” button as shown in the screenshot below.
Please remember that for your system, the process can be a bit different. You can follow this guide for that.
Seconds after you click on the button, your .enex
file will start downloading.
Save it anywhere on your computer and proceed next.
Step #3 – Create the config.json
file
To run the script, you need to create a config.json
file somewhere on your computer. I’d prefer to create the .json
in the same folder where Evernote’s .enex
file is.
For that, first of all create an empty file called config.json
and copy the below stuff in there:
{
"enexSource": "/absolute-path-of-your-enex-dir/test-template.enex",
"outputDir": "/path-of-your-desired-output-folder",
"isZettelkastenNeeded": false,
"plainTextNotesOnly": false,
"skipWebClips": false,
"useHashTags": true,
"outputFormat": "StandardMD",
"urlEncodeFileNamesAndLinks": false,
"skipEnexFileNameFromOutputPath": false,
"haveEnexLevelResources": false,
"monospaceIsCodeBlock": false,
"keepMDCharactersOfENNotes": false,
"nestedTags": {
"separatorInEN": "_",
"replaceSeparatorWith": "/",
"replaceSpaceWith": "-"
}
}
Now, replace /absolute-path-of-your-enex-dir/test-template.enex
with the absolute path of your .enex file and /path-of-your-desired-output-folder
with the folder where you want the output .md files to be saved.
Most of the times, you will not need to change anything else; but if you have some specific requirements, you can look at the various available configurational properties.
Save the file, exit and move to the next step.
Step #4 – Run the script
This is the last step.
Open your command prompt in the same folder (or, Terminal in Linux or Mac) and run the following command:
npx -p [email protected] yarle --configFile ./config.json

Please note that you should run the above command after navigating (use ‘cd’ to navigate) to the folder where the config.json file is.
Just wait for it to finish and you’re done.
All your notes should now be converted into .md format.
And, if you’re using Obsidian, just open that folder as a vault in the app and boom… all your notes (attachments too) are there.
That’s it.
If you get stuck somewhere in the process, just let me know in the comments below.
2 replies on “Convert Evernote’s .enex to .md Format”
This is a very useful step by step to use yarle, I found it in the obsidian forum trying to find alternatives to export my evernote into markdown notes. At some part of the process after the npx execution it tells me simply: “The system cannot find the path specified.” but it’s not saying anything else, so it’s hard to debug. Do you know if there is any debugging option available in yarle?
My config file is in the same path as where I’m running it:
PS C:\wip> npx -p [email protected] yarle –configFile ./config.json
The system cannot find the path specified.
Thanks 🙂
Yes, it’s really hard to debug. But to help, here’s exactly what I did in the config.json file and the command executed: https://i.imgur.com/NGVhROn.png
Hope that helps.
Thank you.