Importing from Logseq¶
When to use¶
When a user asks to import a Logseq graph (a folder with journals/, pages/, and a
.logseq/ config). The Import tab hands the task straight to you: you own it end to
end. Read limestone-vault-conventions and working-with-collections first. The
core mapping is the same as importing-from-obsidian (read that too); this note only
covers Logseq's differences.
Run the import (one tool call)¶
Call limestone_import_notebook(path, collection_name) with the graph folder.
It returns the usual summary + unconverted list. Never import notes one at a time.
What the tool does (Logseq specifics)¶
Logseq is a folder of Markdown, imported like Obsidian, with two extra transforms:
| Logseq | Limestone |
|---|---|
every line is an outline - block |
top-level blocks flatten to prose; nested blocks stay Markdown lists |
page metadata as key:: value (first block) |
lifted into the same properties/tags as YAML frontmatter would be |
journals/YYYY_MM_DD.md, pages/*.md |
one record each (journals and pages land in the one collection) |
#tag, [[Page]], ((block-ref)) |
#tag/[[Page]] map as usual; ((block-ref)) is left as-is |
Finalizing (your job)¶
Same as importing-from-obsidian: promote preserved frontmatter, retype properties,
split/rename if needed, and resolve unconverted items. Logseq-specific cleanup:
- Block references
((uuid))don't resolve to anything in Limestone. If a note leans on them, replace with a real[[Page]]link or inline the referenced text. - Leftover
key:: valuelines deeper in a body (block properties, not page properties) are left in place — lift any the user cares about into properties. - If journals should be their own collection separate from pages, split them.
Evolving this skill¶
If a recurring Logseq structure imports badly, work out the mapping, apply it, and
propose an update to this file or flag importers/markdown_folder.py
(LogseqImporter). Keep the two in sync.