Home
Softono

Notes Migrator

Open source Emacs Lisp
36
Stars
6
Forks
1
Issues
2
Watchers
6 months
Last Commit

 About Notes Migrator

Migrate your notes b/w different note-taking software

Platforms

Web Self-hosted

Languages

Emacs Lisp

Links

Need Help Installing Notes Migrator?

We provide expert installation service for this software. Our team will install, configure, and secure Notes Migrator on your server. plans start at just $30.

Notes Migrator

View on GitHub

#+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.