Slipbot logseq-import
Import notes from Logseq pages into the slipbox. Use when user pastes a Logseq page with properties and bulleted notes. Parses page-level properties, extracts each bullet as an individual note, handles nested bullets by adding parent context, then runs slipbot for each.
git clone https://github.com/jrswab/slipbot
T=$(mktemp -d) && git clone --depth=1 https://github.com/jrswab/slipbot "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/logseq-importer" ~/.claude/skills/jrswab-slipbot-logseq-import && rm -rf "$T"
skills/logseq-importer/SKILL.mdLogseq 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
propertytags:: - Inline
in bullet content#tags
metadatablock-tags::
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):
type:: #literature source:: Book author:: David Kadavy title:: Digital Zettelkasten alias:: zettelkasten-book status:: tags::
2. Bulleted Notes (markdown list):
- 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 |
|---|---|
| |
| (if plain text like "Book") |
| + (if markdown link) |
| |
| Note type hint (maps to ) |
| Ignore |
| Ignore |
| Ignore (slipbot generates better tags) |
Empty properties (e.g.,
author:: with no value) → null
Parsing Rules
Properties
- Extract all
lines at the topkey:: value - Stop when hitting first bullet (
)- - Strip
from values like##literature - Parse markdown links:
→ extract both parts[text](url)
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:
→ removeid:: uuid
→ remove entirelyblock-tags:: #xxx
inline tags → remove entirely (slipbot generates its own)#tag
or malformed tags → remove#{"{"
- Convert
→ plain text (potential link targets)[[page refs]]
Content Cleanup
- Remove trailing
from bulletsid:: xxx - Remove
entirelyblock-tags:: xxx - Remove all
inline tags (slipbot generates its own tags)#tag - 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
prefix (note type)- {content} - 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:
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 (
): Ignore (redundant with properties)## Citation: - Non-bullet content: Ignore headers, paragraphs outside bullets
- Multiple
in one bullet: Keep all, convert to plain text[[refs]]