Get the FREE Ultimate OpenClaw Setup Guide →
j

SlipBot Logseq Importer

Scanned

@jrswab

npx machina-cli add skill @jrswab/slipbot-logseq-importer --openclaw
Files (1)
SKILL.md
4.8 KB

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 PropertySlipbox 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:: #literatureNote 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](url) → extract both parts

Bullets

  1. Each top-level bullet (- ) becomes its own slipbox note
  2. 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"
  3. Strip Logseq metadata from bullets:
    • id:: uuid → remove
    • block-tags:: #xxx → remove entirely
    • #tag inline tags → remove entirely (slipbot generates its own)
    • #{"{" or malformed tags → remove
  4. 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)

    • 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
  2. Parse the page (after confirmation)

    • Extract page properties → source metadata
    • Extract all bullets → note list
    • Handle nesting by enriching child bullets with parent context
  3. 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
  4. 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:

  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)
  3. 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

Source

git clone https://clawhub.ai/jrswab/slipbot-logseq-importerView on GitHub

Overview

This skill parses a Logseq page with page properties and bulleted notes, converts each top-level bullet into a slipbox note, and enriches nested bullets with their parent context. It ignores all Logseq tags to avoid conflicts, letting Slipbot generate its own tags. The importer maps page properties to Slipbox source metadata and runs Slipbot for every resulting note.

How This Skill Works

The importer reads page properties at the top of the Logseq page and maps them to source fields using the defined Property Mapping. It then parses the bulleted notes, expands nested bullets by appending parent context, removes Logseq-specific metadata, and converts [[page refs]] to plain text. For each top-level bullet, it creates a Slipbot task using a "- {content}" prefix and includes the source metadata so Slipbot can generate filenames, tags, links, and graph updates for every note.

When to Use It

  • You paste a full Logseq page to seed notes in the Slipbox.
  • Importing literature notes with type, author, and title metadata.
  • Migrating notes from Logseq to Slipbot while preserving nested ideas.
  • You want to ignore Logseq tags and let Slipbot generate tags from content.
  • Bullets include nested items whose context should be preserved as separate notes.

Quick Start

  1. Step 1: Copy-paste a Logseq page into the importer input
  2. Step 2: Review the precheck results (summary, note count, source info) and confirm
  3. Step 3: Let Slipbot generate notes for each bullet and review the import report

Best Practices

  • Review the precheck summary and note count before proceeding with import.
  • Ensure page properties like title, author, and type are present and meaningful.
  • Avoid including Logseq tags; they will be ignored per rules.
  • Check that nested bullets preserve parent context when unfolded.
  • Remove stray Logseq metadata (id::, block-tags::, inline #tags) before import.

Example Use Cases

  • type:: #literature, source:: Book, author:: David Kadavy, title:: Digital Zettelkasten, - Rewriting ideas helps decide their importance
  • type:: #literature, source:: Book, author:: Jane Doe, title:: Practical Notes, - [[Note A]]: quick ideas, - - Sub-idea with context
  • type:: #literature, source:: Book, author:: John Smith, title::AI & Writing, - id:: abc123, - Can be improved with practice
  • type:: #literature, source:: Book, author:: Alice, title:: Markdown Mastery, - [[Chapter 1]]: fundamentals, - - How to format lists
  • type:: #literature, source:: [Book](https://example.com/book), author:: Bob, title:: Link Handling, - Use [[Page Reference]] to cite sources

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers