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:
- Asking the user for a unique substring of the memo content
- Use
grep -n "<substring>" <journal_path>to locate the content line - The bullet line
- HH:MMis the line just above the content line — confirm withRead
Example:
grep -n "酒店房间很大" /Users/zhaoliang/LocalDocuments/vaults/vault/journals/2026-04-29.md
# → 199: 20260429 而且酒店房间很大...
# → bullet line is 198
Default Workflow
- Always preview first with no
--applyflag — shows old block vs. new block side-by-side - Confirm with user before applying
- 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:MMandYYYYMMDDas 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