Skip to content

Repository files navigation

#+title: notes-migrator

** Usage

You can do this in one of the following ways:

1. *Download this script*. (e.g =git clone https://github.com/bitspook/notes-migrator=)

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

3. *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.

4. *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

**** 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://github.com/Kungsgeten/org-brain][org-brain]] to [[https://protesilaos.com/emacs/denote][denote]]

- Script: [[file:nm-org-brain-to-denote.el][nm-org-brain-to-denote.el]]
- Command: =nm-migrate-org-brain-to-denote=
- Maintainer: [[https://github.com/MArpoagaus][@MArpoagaus]]

- Tested with:
  - Emacs versions
    - 29.4
  - org-brain versions
    - v0.94

**** Known limitations
- The converstions seams to fail for files with latex previews enabled on startup.

*** [[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

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

About

Migrate your notes b/w different note-taking software

Topics

Resources

Stars

37 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages