obsidianmd / obsidian-importer

Obsidian Importer lets you import notes from other apps and file formats into your Obsidian vault.
https://help.obsidian.md/import
MIT License
770 stars 75 forks source link

[Evernote] Links for Evernote notes are not converted #306

Open AltoRetrato opened 1 month ago

AltoRetrato commented 1 month ago

After importing my notes from Evernote into Obsidian, links for notes appear as evernote:///view/[...] instead of being converted to Obsidian links.

In my case, a quick search in Obsidian for "evernote:///view/" showed 1.347 results, so it is not an issue that is simple to solve manually...

Obsidian 1.6.7, Importer 1.6.4, Windows 11.

tgrosinger commented 1 month ago

Hello, I grabbed a few Evernote test exports with links and was seeing that they were all correctly translated into wikilinks ([[Link]]).

Would you be able to provide us with an .enex export that reproduces the problem you are seeing so that we can better test it and resolve the problem? Thank you!

AltoRetrato commented 1 month ago

In Evernote, each note has a GUID that is used to link to it, so you can rename the title of the note or rename the text in the link at will without breaking the link.

As long as the link to the note and the note title are the same, links are converted with Importer without issue. Otherwise, there is no way to figure out the correct links since note GUIDs are not exported to .enex files, and the converted link either points to a wrong note or to a non-existing one. For more details, see [Evernote] Internal Evernote note links are not converted to Obsidian Links

A few steps to recreate this issue:

  1. Create a note with title "Original title" in Evernote
  2. Inside another note, or even inside the same note, create an internal link to the "Original title" note.
  3. Rename the title of the note from "Original title" to "New title", OR rename the link to "Changed link name"
  4. Export the note from Evernote, import in Obsidian and then check the link.

If you renamed the note title, after conversion, you will end up with a file named New title.md containing a link to [[Original title]] (instead of the expected [[New title|Original title]], or even [[New title]]).

Unfortunately, I think the only real (and reasonable) solution for this (and other) issues is to use the Evernote API to read all data including the metadata missing in .enex files. evernote-backup is a program that does exactly that. I'm currently writing my own conversion script that reads the data fetched with evernote-backup to circumvent most of the current issues with Obsidian Importer.

FWIW, I attached the .enex file here (remove the .TXT extension) -> New title.enex.txt - or just check it below:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-export SYSTEM "http://xml.evernote.com/pub/evernote-export4.dtd">
<en-export export-date="20241009T162617Z" application="Evernote" version="10.107.3">
  <note>
    <title>New title</title>
    <created>20241009T162241Z</created>
    <updated>20241009T162607Z</updated>
    <note-attributes>
      <author>Anonymous</author>
    </note-attributes>
    <content>
      <![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"><en-note><div><a href="evernote:///view/0000000/sss/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/" rel="noopener noreferrer" rev="en_rl_none">Original title</a></div></en-note>      ]]>
    </content>
  </note>
</en-export>