Skip to content

[Feature request]: Clarify Full Backup and Export Capabilities for Inter-Note Links #128

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
kranix0 opened this issue Apr 9, 2025 · 6 comments
Labels
enhancement New feature or request

Comments

@kranix0
Copy link

kranix0 commented Apr 9, 2025

Suggestion

Continuing from closed item #66

As an evernote-backup user, I want to ensure that all the contextual relationships between my notes are fully preserved during backup and export, so that when I migrate to another note-taking system, I don't lose the intricate web of connections that make my notes valuable.

The problem right now is that I don't know for sure what is preserved and to what level. It seems to me that the purpose of evernote-backup is to give assurance that we can be completely independent of a corporation for our valuable 'second brain'.

It would be helpful if the devs could confirm the current state of inter-note link preservation in evernote-backup, specifically:

  1. What percentage of note links are fully preserved in the database? What kinds of metadata are left out?
  2. When exporting to ENEX, how completely are these links maintained?
  3. Does @vzhd1701's new --add-guid feature ([Feature request]: Provide a way to write note guid into exported .enex #66) fully solve link preservation?
  4. What additional benefit would we have from adding another flag to generate "Table of Contents" notes with the links to each note in the notebook?

Specific Questions

  • What is the current capability of evernote-backup to preserve inter-note links?
  • Can developers confirm whether the ENEX files contain sufficient metadata to enable other tools like Yarle to perform a 100% note import? I understand that it's up to those tools to actually support that metadata.
  • Regarding @AltoRetrato's conversion tool: Can its link-preservation approach be integrated into the main evernote-backup workflow?

Context

Users need clear understanding of:

  • What data will be preserved during backup
  • Potential limitations in link and metadata transfer
  • What's left to achieve comprehensive note backup

Technical Details to Address

  • Database link preservation percentage
  • ENEX export link-retention mechanisms
  • Compatibility with migration tools
  • Potential future improvements
@kranix0 kranix0 added the enhancement New feature or request label Apr 9, 2025
@vzhd1701
Copy link
Owner

vzhd1701 commented Apr 9, 2025

  1. What percentage of note links are fully preserved in the database? What kinds of metadata are left out?

Each note created by Evernote has a unique identifier called GUID (looks like this -> 3ac8f243-ee0e-e3bf-9dd1-cd2d6a289714). All internal evernote links use this GUID as the main pointer for the note, so each time you add a link to a note it creates a URL that looks like this evernote:///view/225557707/s520/814399ab-353f-6070-1691-ffc4b0ba57e8/32e0bd21-377c-44d6-b3a5-e501e91e60db or https://share.evernote.com/note/814399ab-353f-6070-1691-ffc4b0ba57e8, where 814399ab-353f-6070-1691-ffc4b0ba57e8 is the note's ID.

evernote-backup receives Notes in raw format from the Evernote server, the same way it's original desktop client gets them. It does not change them, just compresses and stores them in database. All links that you have stored in note's body are there, alongside GUID for each note. So I would say evernote-backup keeps 100% of the internote and other links.

The only metadata that is being left out at the moment is the tasks list. They have changed their API when the tasks were introduced, but did not publish any docs for them. I am currently working to solve this problem.

  1. When exporting to ENEX, how completely are these links maintained?

When exporting the links are exported as-is inside note's body. But to connect each link to actual note the conversion program needs a way to identify each note's GUID.

  1. Does @vzhd1701's new --add-guid feature ([Feature request]: Provide a way to write note guid into exported .enex #66) fully solve link preservation?

It should solve this problem if you don't have links to someone else's notes inside your own notes. But @akosbalasko will need to add special case handler in yarle to use that guid tag instead of TOC. You can ask him to do it here. Alternatively I can add flag to generate "Table of Contents" during export so that yarle can use it's existing mechanism. I think with the TOC approach there is still a problem of unique note names withing same Notebook, unless yarle is using notes order from TOC to match them together.

  1. What additional benefit would we have from [Feature request]: Provide a way to write note guid into exported .enex #66 (comment) to generate "Table of Contents" notes with the links to each note in the notebook?

Benefit of being able to use existing yarle's mechanism of matching notes with their GUIDs.

What is the current capability of evernote-backup to preserve inter-note links?

Answered above.

Can developers confirm whether the ENEX files contain sufficient metadata to enable other tools like Yarle to perform a 100% note import? I understand that it's up to those tools to actually support that metadata.

Yes, with GUID tag attached to each note and given you don't have links to other user's notes there is 100% of information in the ENEX files needed to preserve all your links. And yes, each conversion tool will need to add support for the GUID tag since it's a non-standard feature of ENEX file format.

Regarding @AltoRetrato's #66 (comment): Can its link-preservation approach be integrated into the main evernote-backup workflow?

I don't think @AltoRetrato's tool is released yet.

@AltoRetrato
Copy link

evernote2obsidian is still a WIP, which I might release in a few weeks. The current workflow to use it is basically:

  • Run evernote-backup to download all your Evernote data to a local folder
  • Run evernote2obsidian, select the folder with the downloaded data (no need to export it to .ENEX files), select your export preferences, then export your data to either HTML or Markdown files.

At the moment, the conversion with evernote2obsidian keeps most of the data and metadata of the original Evernote notes, including links (that is why I created the tool in the first place). The only exception are tasks (see #39 ).

I could integrate evernote-backup into evernote2obsidian, but I don't have plans for that right now.

@kranix0
Copy link
Author

kranix0 commented Apr 10, 2025

@vzhd1701 and @AltoRetrato, I'm so grateful for your detailed explanations! I feel so much more confident about my notes now. I've made a request on the yarle issue.

Just checking, does the GUID also take care of links across notebooks? And what about the new spaces feature?

@vzhd1701
Copy link
Owner

Does the GUID also take care of links across notebooks?

Every GUID is globally unique, so yes. But the conversion tool will need to take them into account when processing multiple notebooks.

And what about the new spaces feature?

I have not tested that one yet. Do you see notes from spaces in your exports?

@kranix0
Copy link
Author

kranix0 commented Apr 11, 2025

I haven't yet tried Spaces. Right now, I just have lots of notebooks and notebook stacks. I'm hoping that some other user here has given Spaces a go.

An idea: maybe readme.md could have a table showing the current tested level of compatibility per Evernote feature? Something like this:

Evernote Feature Tested Compatibility in DB Tested Compatibility in ENEX Export Comments Help Required
Standard formatted text 100% 100%
HTML 100% 100%
Inter-Note Links (within same account, including cross-notebook) 100% 100% use --add-guid (breaks ENEX format but useful for compatible import software)
Inter-Note Links (between accounts) 0% 0% Test the functionality
Tasks 0% 0% Discover how the Tasks API functions
Spaces 0% 0% Test the functionality

@vzhd1701
Copy link
Owner

Tasks support added, please read the tasks section on how to sync them.

Also looks like spaces are working OK, those notes are downloaded like any others, without any info about which space they belong to though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants