Convert Evernote’s .enex to .md Format

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 finally found a way.

Let’s get into it…

🎯 Also see: Obsidian Keyboard Shortcuts to Boost Productivity

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 the installation process for other OS is pretty straightforward too.

Install Node.js on your computer

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.

Export Evernote .enex File

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:

{
    "enexSources": [
       "/absolute-path-of-your-enex-dir/test-template.enex"
       ],
    "templateFile": "/absolute-path-of-your-template-dir/sampleTemplate.tmpl",
    "outputDir": "/path-of-your-desired-output-folder",
    "isZettelkastenNeeded": false,
    "useZettelIdAsFilename": false,
    "plainTextNotesOnly": false,
    "skipWebClips": false,
    "useHashTags": true,
    "outputFormat": "StandardMD",
    "taskOutputFormat": "StandardMD",
    "urlEncodeFileNamesAndLinks": false,
    "skipEnexFileNameFromOutputPath": false,
    "monospaceIsCodeBlock": false,
    "keepMDCharactersOfENNotes": false,
    "keepOriginalAmountOfNewlines": false,
    "addExtensionToInternalLinks": true,
    "nestedTags": {
      "separatorInEN": "_",
      "replaceSeparatorWith": "/",
      "replaceSpaceWith": "-"
   },
   "replacementCharacterMap": {
      "<": "_",
      ">": "_",
      ":": "_",
      "\"": "_",
      "/": "_",
      "\\": "_", 
      "|": "_",
      "?": "_",
      "*": "_"
    },
   "resourcesDir": "resources",
   "turndownOptions": {
      "headingStyle": "atx"
   },
   "dateFormat": "YYYY-MM-DD",
   "haveEnexLevelResources": true,
   "haveGlobalResources": false,
   "useUniqueUnknownFileNames": false,
   "useLevenshteinForLinks": false,
    "logseqSettings":{
        "journalNotes": false
    },
   "obsidianSettings": {
      "omitLinkDisplayName": false
    }

}

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 yarle-evernote-to-md@latest yarle --configFile ./config.json
Run the Command in Terminal

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.

📢 Update:
Yarle now has desktop apps for Windows, Linux, Debian, and Mac which makes the whole process straightforward. You can download the desktop app and follow the process here. And, for the desktop app to work, you don’t need the above config.json file adjustments.

That’s it.

If you get stuck somewhere in the process, just let me know in the comments below.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

13 Comments

  1. 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 yarle-evernote-to-md@latest yarle –configFile ./config.json
    The system cannot find the path specified.

    Thanks 🙂

    1. 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.

  2. Same problem here, “The system cannot find the path specified.”
    Tried relative paths and absolute paths. Not working for me on windows 10. I guess the output template is missing. I installed the full app and it did work for me ( https://github.com/akosbalasko/yarle )

    1. Thanks for pointing it out, Michael. I have updated the article.

  3. Please help a complete rookie in that when following your instructions and running the command in the correct directly through the command prompt window, I get the error:” ‘npx’ is not recognized as an internal or external command,
    operable program or batch file.”

  4. Guy Stalnaker says:

    Brilliant! Exactly what I wanted to use with Notebook (and get away from the ever-worsening Evernote).

    1. DeepakNess says:

      Glad it helped. Thanks.

  5. Rosemarie Linfoot says:

    Just a heads up – your readers are probably more skilled in doing the conversion. I had started to create all my .enex files in Evernote before using Yarle. I thought I had better recheck the instructions before doing them all.
    Right at the bottom were the instruction to create a TOC before doing the conversion.
    Luckily I hadn’t got too far.
    Many thanks for your article. I was completely stumped as to with what and how I could replace Evernote. It has been steadily moving away to serving the big corporations, and leaving the individual users out in the cold.

    1. DeepakNess says:

      Glad you found it useful, Rosemarie. 🥂

  6. Paul Usher says:

    Great article, thank you. Yarle is now a desktop app, which was simple to use, but a warning… it fails to convert images after the first notebook, you need to restart the app each time. But, like you, I found Obsidian a great tool and happy to move away (after 12.5 years) from the grips of corporate greed.

    1. DeepakNess says:

      Thank you very much, Paul. I have been using Obsidian for more than 2 years now, and greatly enjoy it. I think you will enjoy it too.

  7. Dear Deepak, this is a fantastic article (I found it in reddit) and I thoroughly enjoyed reading and following the steps. The Yarle initially displayed some error related to the .length of the ENEX file path, which led me to believe that something isn’t right with the path within the config.json file. Sure enough having reviewed the `config.json` file in GitHub repository that you have referenced I saw that, at least in December 2023, the .ENEX file path has to be wrapped in square brackets as follows (also “enexSources” happens to be plural):

    `”enexSources”: [
    “/Users/jacksmith/Downloads/MyNotes.enex”
    ],`

    1. Thank you, Tim. I have made changes in the code.