# Split Memo

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

- Skill: `goodluckz/split-memo` (Agent Skill)
- Install (CLI): `npx skillmds@latest add goodluckz/split-memo`
- Raw SKILL.md: https://api.skillmd.com/api/skills/goodluckz/split-memo/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: goodluckz (https://skillmd.com/u/goodluckz)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/goodluckz/split-memo

---


# 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:
```bash
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)

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

### Apply

```bash
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

