Logseq Import
Parse a Logseq page and create individual slipbox entries for each bullet point.
Critical Rule: Ignore All Tags
Do not import any tags from Logseq. This includes:
- •Page-level
tags::property - •Inline
#tagsin bullet content - •
block-tags::metadata
Slipbot generates its own tags based on content. Logseq tags would conflict with this.
Input Format
Logseq pages have two parts:
1. Page Properties (top of page, key:: value format):
code
type:: #literature source:: Book author:: David Kadavy title:: Digital Zettelkasten alias:: zettelkasten-book status:: tags::
2. Bulleted Notes (markdown list):
code
- First note content here - Second note with [[page ref]] link - Nested bullet under second - Third note id:: abc123-uuid
Property Mapping
| Logseq Property | Slipbox Field |
|---|---|
title:: | source.title |
source:: | source.type (if plain text like "Book") |
source:: [text](url) | source.title + source.url (if markdown link) |
author:: | source.author |
type:: #literature | Note type hint (maps to note) |
alias:: | Ignore |
status:: | Ignore |
tags:: | Ignore (slipbot generates better tags) |
Empty properties (e.g., author:: with no value) → null
Parsing Rules
Properties
- •Extract all
key:: valuelines at the top - •Stop when hitting first bullet (
-) - •Strip
#from values like#literature - •Parse markdown links:
[text](url)→ extract both parts
Bullets
- •Each top-level bullet (
-) becomes its own slipbox note - •Nested bullets: Add parent context to make them standalone
- •Example parent:
- [[Fleeting Notes]]: quick notes written anywhere - •Example child:
- Can be on paper or digital - •Result: "Fleeting Notes (quick notes written anywhere) can be on paper or digital"
- •Example parent:
- •Strip Logseq metadata from bullets:
- •
id:: uuid→ remove - •
block-tags:: #xxx→ remove entirely - •
#taginline tags → remove entirely (slipbot generates its own) - •
#{"{"or malformed tags → remove
- •
- •Convert
[[page refs]]→ plain text (potential link targets)
Content Cleanup
- •Remove trailing
id:: xxxfrom bullets - •Remove
block-tags:: xxxentirely - •Remove all
#taginline tags (slipbot generates its own tags) - •Preserve markdown formatting (bold, italic, code)
Workflow
- •
Precheck (before import)
- •Parse the page properties and bullets (don't create notes yet)
- •Generate a brief summary of what the page is about (1-2 sentences based on title, author, and content themes)
- •Count total notes that will be created (including nested bullets that become standalone)
- •Present to user: summary, note count, source info
- •Ask for confirmation before proceeding with import
- •If user declines, stop and don't create any notes
- •
Parse the page (after confirmation)
- •Extract page properties → source metadata
- •Extract all bullets → note list
- •Handle nesting by enriching child bullets with parent context
- •
For each bullet, invoke slipbot workflow:
- •Use
- {content}prefix (note type) - •Include source:
~ {source.type}, {source.title} by {source.author} - •Let slipbot handle: filename, tags, links, graph update
- •Use
- •
Report results
- •Count of notes created
- •Any issues encountered
Example
Input:
code
type:: #literature source:: Book author:: David Kadavy title:: Digital Zettelkasten - Rewriting ideas helps decide their importance - [[Fleeting Notes]]: quick notes written anywhere - Can be captured on paper or digitally - Keywords should be specific to the idea id:: abc123
Processing:
- •
Source:
Book, "Digital Zettelkasten" by David Kadavy - •
Bullets extracted:
- •"Rewriting ideas helps decide their importance"
- •"Fleeting Notes: quick notes written anywhere"
- •"Fleeting Notes can be captured on paper or digitally" (nested, parent context added)
- •"Keywords should be specific to the idea" (id stripped)
- •
Each sent to slipbot as:
- •
- Rewriting ideas helps decide their importance ~ Book, Digital Zettelkasten by David Kadavy - •etc.
- •
Edge Cases
- •No properties: Treat as standalone notes without source
- •Deeply nested bullets (3+ levels): Flatten, accumulating context from all ancestors
- •Citation sections (
## Citation:): Ignore (redundant with properties) - •Non-bullet content: Ignore headers, paragraphs outside bullets
- •Multiple
[[refs]]in one bullet: Keep all, convert to plain text