notes-migrator
notes-migrator copied to clipboard
Migrate your notes b/w different note-taking software
#+title: notes-migrator
** Usage
You can do this in one of the following ways:
-
Download this script. (e.g =git clone https://github.com/bitspook/notes-migrator=)
-
To load the migration script, in Emacs, run =M-x load-file=, and select the migration script you want to run (e.g =nm-org-roam-to-denote.el=). See [[id:00f586a4-f8db-4a13-892a-f8efacb5ee65][Supported Conversions]] section below for supported migration scripts.
-
Rtfm; Migration script is now loaded, and there should be a function with =nm-migrate-= prefix loaded in Emacs. e.g for org-roam to denote migration, there should be =nm-migrate-org-roam-to-denote=. You can invoke =C-h f= and enter/select this function to read its documentation.
-
Run migration by invoking the migration function. =M-x= and selecting the =nm-migrate-*= function should do the job
** Supported Conversions :PROPERTIES: :ID: 00f586a4-f8db-4a13-892a-f8efacb5ee65 :END:
*** [[https://github.com/org-roam/org-roam/][org-roam]] to [[https://protesilaos.com/emacs/denote][denote]]
-
Script: [[file:nm-org-roam-to-denote.el][nm-org-roam-to-denote.el]]
-
Command: =nm-migrate-org-roam-to-denote=
-
Maintainer: [[https://github.com/bitspook][@bitspook]]
-
Tested with:
- Emacs versions
- 29.0.5
- 28.1
- org-roam versions
- v2.2.1
- Emacs versions
**** Known limitations
- If you are using org-roam's feature of having multiple nodes in a single file (having a ID on a subtree in a org-roam file treats the subtree as a separate note in itself), then the same file will result in multiple denote notes. The filename will be different (it is one file per sub-note), but original file's complete content is present in each.
*** [[https://protesilaos.com/emacs/denote][denote]] to [[https://logseq.com/][logseq]]
-
Script: [[file:nm-denote-to-logseq.el][nm-denote-to-logseq.el]]
-
Command: =nm-migrate-denote-to-logseq=
-
Maintainer: [[https://github.com/hapst3r][@haspt3r]]
-
Tested with:
- Emacs versions
- 28.1
- Denote version
- v1.0.0
- Emacs versions
**** Known limitations
- You need to specify an existing =LOGSEQ-DIRECTORY=. Specifying a nonexistent one will result in an error. Specifying nothing (NIL), everything will be copied into your home folder (on linux).
- In =LOGSEQ-DIRECTORY=, files with identical names (i.e. earlier transferred notes) will be overwritten without notification.
- The tags currently don't work. Denote uses #+FILETAGS and Logseq #+TAGS in the header line, Denote uses :TAG1:TAG2: format and Logseq uses TAG1, TAG2 format.
- Invalid denote links are ignored i.e they are left behind in the migrated notes as-is
** Purpose
To migrate notes from one software to another.
Fluidly taking notes is a powerful habit. In the quest of a fluent workflow, you (like me) might find yourself trying many software. In this repo I will put code I use to convert my notes from one software to another, so I can assess them with my actual of notes instead of just toying around.
** Contributing
If you want conversion b/w software not covered in this repo, or want different behavior for existing migration scripts, please create an [[https://github.com/bitspook/notes-migrator/issues][issue on Github]].
If you're willing to get your hands dirty and write some code, I will assist you write the required code. Or you can create a PR if you have already written one. Or we wait until The One^{TM} comes along.