SkillHub

slipbot-logseq-importer

v1.0.0

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.

Sourced from ClawHub, Authored by Jaron Swab

Installation

Please help me install the skill `slipbot-logseq-importer` from SkillHub official store. npx skills add jrswab/slipbot-logseq-importer

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 #tags in 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):

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
title:: source.title
source:: source.type (if plain text like "Book")
source:: text 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

  1. Extract all key:: value lines at the top
  2. Stop when hitting first bullet (-)
  3. Strip # from values like #literature
  4. Parse markdown links: text → extract both parts

Bullets

  1. Each top-level bullet (-) becomes its own slipbox note
  2. Nested bullets: Add parent context to make them standalone
  3. Example parent: - [[Fleeting Notes]]: quick notes written anywhere
  4. Example child: - Can be on paper or digital
  5. Result: "Fleeting Notes (quick notes written anywhere) can be on paper or digital"
  6. Strip Logseq metadata from bullets:
  7. id:: uuid → remove
  8. block-tags:: #xxx → remove entirely
  9. #tag inline tags → remove entirely (slipbot generates its own)
  10. #{"{" or malformed tags → remove
  11. Convert [[page refs]] → plain text (potential link targets)

Content Cleanup

  • Remove trailing id:: xxx from bullets
  • Remove block-tags:: xxx entirely
  • Remove all #tag inline tags (slipbot generates its own tags)
  • Preserve markdown formatting (bold, italic, code)

Workflow

  1. Precheck (before import)
  2. Parse the page properties and bullets (don't create notes yet)
  3. Generate a brief summary of what the page is about (1-2 sentences based on title, author, and content themes)
  4. Count total notes that will be created (including nested bullets that become standalone)
  5. Present to user: summary, note count, source info
  6. Ask for confirmation before proceeding with import
  7. If user declines, stop and don't create any notes

  8. Parse the page (after confirmation)

  9. Extract page properties → source metadata
  10. Extract all bullets → note list
  11. Handle nesting by enriching child bullets with parent context

  12. For each bullet, invoke slipbot workflow:

  13. Use - {content} prefix (note type)
  14. Include source: ~ {source.type}, {source.title} by {source.author}
  15. Let slipbot handle: filename, tags, links, graph update

  16. Report results

  17. Count of notes created
  18. 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: 1. Source: Book, "Digital Zettelkasten" by David Kadavy 2. 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)

  1. Each sent to slipbot as:
  2. - Rewriting ideas helps decide their importance ~ Book, Digital Zettelkasten by David Kadavy
  3. 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