Agent Skills: Split Multi-Line Thino Memo by Blank Lines

Split a multi-line Thino Memo entry in an Obsidian journal file into multiple single-paragraph memos by blank lines. Use when the user wants to "把这条笔记按空行分割", "split this memo", "拆分 Thino memo", or break a long memo block into separate entries.

UncategorizedID: goodluckz/claude-code-config/split-memo

Install this agent skill to your local

pnpm dlx add-skill https://github.com/goodluckz/claude-code-config/tree/HEAD/skills/split-memo

Skill Files

Browse the full folder contents for split-memo.

Download Skill

Loading file tree…

skills/split-memo/SKILL.md

Skill Metadata

Name
split-memo
Description
Split a multi-line Thino Memo entry in an Obsidian journal file into multiple single-paragraph memos by blank lines. Use when the user wants to "把这条笔记按空行分割", "split this memo", "拆分 Thino memo", or break a long memo block into separate entries.

Split Multi-Line Thino Memo by Blank Lines

Split a multi-line Thino Memo entry into multiple separate Thino Memos, one per paragraph (paragraphs separated by blank lines).

Script Location

/Users/zhaoliang/LocalDocuments/vaults/vault/resources/scripts/split_memo.py

How It Works

A multi-line Thino Memo block looks like:

- 23:33
	20260429 paragraph 1
	
	paragraph 2
	
	paragraph 3

The script identifies the memo block (starting at a - HH:MM bullet line, ending where tab-indented lines stop), splits the content by tab-only blank lines, and re-emits each paragraph as its own Thino Memo entry sharing the same time and date:

- 23:33 20260429 paragraph 1
- 23:33 20260429 paragraph 2
- 23:33 20260429 paragraph 3

How to Identify the Target Memo

The script needs the line number of the - HH:MM bullet line. Get this by:

  1. Asking the user for a unique substring of the memo content
  2. Use grep -n "<substring>" <journal_path> to locate the content line
  3. The bullet line - HH:MM is the line just above the content line — confirm with Read

Example:

grep -n "酒店房间很大" /Users/zhaoliang/LocalDocuments/vaults/vault/journals/2026-04-29.md
# → 199:	20260429 而且酒店房间很大...
# → bullet line is 198

Default Workflow

  1. Always preview first with no --apply flag — shows old block vs. new block side-by-side
  2. Confirm with user before applying
  3. Apply with --apply

Commands

Preview (dry-run)

python3 /Users/zhaoliang/LocalDocuments/vaults/vault/resources/scripts/split_memo.py <journal_path> --line <N>

Apply

python3 /Users/zhaoliang/LocalDocuments/vaults/vault/resources/scripts/split_memo.py <journal_path> --line <N> --apply

Behavior Guarantees

  • Time/date preserved: All split memos share the same HH:MM and YYYYMMDD as the original — faithful to original capture time
  • Single-line vs. multi-line: Each split paragraph that's one line uses single-line format - HH:MM YYYYMMDD content; paragraphs with multiple lines use multi-line format
  • No data loss: All content is preserved; only the structure changes
  • Skips no-op cases: Reports if memo only has 1 paragraph (nothing to split)

When to Run

  • User asks to split a specific multi-line Thino Memo into separate entries
  • A long brain-dump memo would be more useful as multiple atomic memos for searching/linking

After Running

  • Report the number of paragraphs split
  • Do NOT auto-commit — let the user review