Migrating to Laverna: Step‑by‑Step Guide from Other Note Apps

Migrating to Laverna: Step‑by‑Step Guide from Other Note AppsLaverna is an open-source, web-based note-taking application designed for users who value simplicity, privacy, and the flexibility of Markdown. If you’re switching from another note app — such as Evernote, OneNote, Simplenote, or Google Keep — this guide walks you through the full migration process: exporting your notes, transforming formats, importing into Laverna, preserving metadata (tags, attachments, timestamps), and verifying everything works. We’ll also cover syncing options, troubleshooting common issues, and tips for organizing your newly migrated notebook.


Why migrate to Laverna?

  • Privacy-focused: Laverna stores notes locally or on cloud services you control, minimizing reliance on proprietary servers.
  • Markdown support: Notes are written in Markdown, offering a clean, portable format for plain text and formatting.
  • Open source: You can view, modify, or self-host the code.
  • Lightweight and distraction-free: The interface is minimal and focused on writing.

Before you begin: checklist

  • Backup your current note database/export files.
  • Make a list of features you use (tags, notebooks, attachments, nested notes) so you can map them to Laverna.
  • Decide where to store Laverna notes: local browser storage, Dropbox, or RemoteStorage.
  • Install any necessary tools: an export-capable version of your current app, a Markdown converter (if needed), and a text editor.

1) Exporting notes from common apps

Below are recommended export methods for several popular note apps.

Evernote

  • Export notebooks as ENEX files (Evernote Export format). In Evernote, select a notebook → File → Export Notes… → ENEX. This preserves notes, tags, creation/modification timestamps, and attachments (embedded).

OneNote

  • OneNote doesn’t offer a universal export format easily parsed to Markdown. Recommended approaches:
    • Use OneNote’s export to PDF for individual notebooks (not ideal).
    • Use third-party tools (e.g., OneNoteBatch or export scripts) to export notes as HTML or plain text.
    • If using OneNote for Windows 10, consider syncing notebooks to a local folder via OneDrive and then exporting pages to HTML.

Simplenote

  • Simplenote supports export via their web interface as a ZIP of plain text files. Each note is a separate .txt file — straightforward to import into Laverna (as Markdown).

Google Keep

  • Use Google Takeout to export Keep notes. Takeout provides notes in HTML format inside a ZIP file. Attachments are included in the export.

Standard Markdown/Plain Text

  • If your notes are already Markdown or plain text, place them in a folder and ensure filenames and directories reflect any desired organization.

2) Converting exported formats to Markdown

Laverna stores notes in Markdown. Converting ENEX, HTML, or other formats to Markdown may be needed.

Tools you can use:

  • Pandoc — powerful, command-line document converter.
  • enex2md — converts Evernote ENEX to Markdown.
  • HTML-to-Markdown converters (many available as npm packages or online tools).

Example: Converting ENEX to Markdown with enex2md

  1. Install enex2md (Node.js required):
    
    npm install -g enex2md 
  2. Convert:
    
    enex2md my-notes.enex -o ./markdown-notes 

    This will extract attachments to subfolders and produce Markdown files with frontmatter containing metadata (tags, timestamps).

Example: Using Pandoc to convert HTML to Markdown

pandoc -f html -t markdown -o note.md note.html 

Tips:

  • Preserve tags by exporting tags into frontmatter or appending as a tag line (e.g., “Tags: tag1, tag2”) at the top or bottom of each Markdown file.
  • For attachments (images), confirm their paths are local and update image links in Markdown accordingly.

3) Preparing files for Laverna import

Laverna’s import support is somewhat manual — it can import Markdown files and supports syncing with Dropbox or RemoteStorage where notes are stored as JSON. Approaches:

A. Import via Laverna UI (Markdown files)

  • If Laverna instance supports drag-and-drop import of Markdown, use that. Otherwise, you may need to paste note contents manually into new notes.

B. Use Dropbox/RemoteStorage sync

  • Convert each note into a JSON structure compatible with Laverna (title, content in Markdown, tags, timestamps).
  • Place these JSON files in the Laverna-synced folder (Dropbox or RemoteStorage). Laverna will pick them up during sync.

C. Use a scripting approach

  • For large collections, write a script (Python, Node.js) to:
    • Read Markdown files and metadata.
    • Produce JSON files matching Laverna’s expected format.
    • Upload to Dropbox via API or place in your synced folder.

Example JSON structure (simplified)

{   "title": "My Note",   "content": "# My Note This is the body in Markdown.",   "tags": ["project", "ideas"],   "created": "2020-05-01T12:00:00Z",   "updated": "2021-01-10T15:30:00Z" } 

4) Import steps for common source apps

Evernote → Laverna

  1. Export notebooks as ENEX.
  2. Convert ENEX to Markdown using enex2md or similar; verify attachments extracted.
  3. Option A: Manually create notes in Laverna and paste Markdown content (best for small counts). Option B: Convert to Laverna JSON and sync via Dropbox/RemoteStorage for bulk import.
  4. Reapply tags: either via frontmatter mapping during conversion or by using Laverna’s tag UI after import.

OneNote → Laverna

  1. Export pages as HTML or plain text.
  2. Use Pandoc to convert HTML to Markdown; fix formatting and image links.
  3. Import or sync as above.

Simplenote → Laverna

  1. Extract the ZIP from Simplenote export.
  2. Each .txt file can be copied or converted to Markdown (if plain text, likely no conversion).
  3. Bulk import via Dropbox/RemoteStorage or manual copy-paste.

Google Keep → Laverna

  1. Use Google Takeout to get HTML files.
  2. Convert HTML to Markdown with Pandoc.
  3. Update attachment links; import/sync.

Notes on attachments

  • For images and attachments, place them in a folder Laverna can access via Dropbox or ensure image links in Markdown point to accessible HTTP URLs or relative paths within the synced folder.

5) Sync configuration in Laverna

Laverna supports storing notes in:

  • Local browser storage (not synced across devices).
  • Dropbox (via Dropbox API).
  • RemoteStorage (open standard for personal storage).

Setting up Dropbox sync:

  1. In Laverna settings, choose Dropbox and connect your account.
  2. Point Laverna to the folder where you placed converted JSON/Markdown files.
  3. Trigger a sync; Laverna will read files and import notes.

Setting up RemoteStorage:

  1. Set up a RemoteStorage account or use a provider (or self-host).
  2. Connect within Laverna settings and allow access to a notes folder.
  3. Sync and verify notes appear.

6) Verifying and cleaning up after migration

  • Spot-check a sample of notes for formatting, images, and tags.
  • Use search in Laverna to confirm indexing works.
  • Recreate notebooks/collections by using tag conventions (e.g., prefix tags with notebook names).
  • For missing timestamps, check your conversion tool preserved them in JSON frontmatter; otherwise, set them manually if important.

7) Troubleshooting common issues

  • Missing images: ensure images were extracted and links point to the synced folder or accessible URLs.
  • Tags not preserved: map tags into frontmatter or a tag line and use a script to convert them into Laverna’s tags.
  • Large imports causing sync delays: import in batches and allow Laverna to index between batches.
  • Formatting oddities: run a quick Markdown lint or open files in a Markdown editor to fix edge cases.

8) Tips for organizing after migration

  • Use tag hierarchies or prefixes (project:alpha) since Laverna doesn’t have nested notebooks by default.
  • Create templates for commonly used note types (meeting notes, project plans).
  • Regularly back up the synced folder (Dropbox/RemoteStorage) as JSON/Markdown files.
  • Consider self-hosting Laverna or using a local build to have more control.

9) Example migration script (outline)

Below is an outline in Python for converting a folder of Markdown files into simple Laverna-style JSON files and saving them to a Dropbox-synced folder. This is an outline; adapt as needed.

# convert_md_to_laverna_json.py import os, json, datetime SRC_DIR = "./markdown-notes" DST_DIR = "./laverna-sync" for fname in os.listdir(SRC_DIR):     if not fname.endswith(".md"):         continue     path = os.path.join(SRC_DIR, fname)     with open(path, "r", encoding="utf-8") as f:         content = f.read()     title = fname.rsplit(".",1)[0]     now = datetime.datetime.utcnow().isoformat() + "Z"     obj = {         "title": title,         "content": content,         "tags": [],            # optionally parse tags from frontmatter         "created": now,         "updated": now     }     out_path = os.path.join(DST_DIR, title + ".json")     with open(out_path, "w", encoding="utf-8") as out:         json.dump(obj, out, ensure_ascii=False, indent=2) 

10) Final checklist

  • Backups created before migrating.
  • All notes converted to Markdown/JSON and placed in a Laverna-accessible location.
  • Attachments copied and links fixed.
  • Tags and timestamps verified or documented for manual fix.
  • Sync set up and functioning across devices.

Migrating to Laverna can take a little work up front, but the result is a portable, privacy-friendly notes system in Markdown you control. If you tell me which source app you’re migrating from and how many notes/attachments you have, I can give a tailored step-by-step and provide conversion scripts specific to your case.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *