Converts Roam JSON export to Obsidian Markdown files.
I wrote this to convert my own roam export into an Obsidian friendly format.
Output has the following directory structure:
md/
: contains all normal Markdown filesmd/daily/
: contains all daily notes
- Daily note format is changed to YYYY-MM-DD
- roam's block IDs are appended (only) to blocks actually referenced
- e.g.
* this block gets referenced ^someroamid
- e.g.
- Blockrefs, block mentions, block embeds are replaced by their content with an appended Obsidian blockref link
- e.g.
this block gets referenced [[orignote#^someblockid]]
- e.g.
- All notes are prefixed with a yaml header containing title and creation date:
---
title:
created: YYYY-MM-DD
---
- Top level roam blocks that don't contain children are not formatted as list
- Roam blocks containing linebreaks are broken down into multiple bullets
- roam:
* line 1
line 2
* next block
-
- becomes:
* line 1
* line 2
* next block
Note: Please run Obsidian's Markdown importer after this conversion. It will fix #tag links and formattings (todo syntax, highlights, etc).
I might make it more user friendly and less hardcoded later. It did the job, though.
No need to install. But you need python3. Google is your friend.
To install the required python packages:
pip install -r requirements.txt
python r2o.py my-roam-export.json