♠ Previously.
Problem statement: preserve Logseq’s task syntax while opening the same markdown files in Obsidian.
My migration script originally converted every task into Obsidian’s checkbox syntax:
- TODO buy milk -> - [ ] buy milk
- DOING ... -> - [/] ...
- DONE ... -> - [x] ...
Obsidian itself does not recognize the left-hand side as tasks. The TODOseq community plug-in does:
- TODO buy milk
- DOING ...
- DONE ...
It keeps the file unchanged, adds clickable task states and a task list to Obsidian, and remains compatible with Logseq.
Before granting a community plug-in write access to my vault, I inspected the current release with the LLM™:
% git clone --depth=1 https://github.com/scross01/obsidian-todoseq.git /tmp/obsidian-todoseq-audit
Cloning into '/tmp/obsidian-todoseq-audit'...
% cd /tmp/obsidian-todoseq-audit
% git rev-parse --short HEAD
4ba5e81
% jq '{id, version, minAppVersion, description}' manifest.json
{
"id": "todoseq",
"version": "0.18.1",
"minAppVersion": "1.11.0",
"description": "Lightweight keyword-based task tracker using Logseq style keywords."
}
A source scan found no network requests, telemetry, process execution, or dynamic code evaluation 1.
It does read and modify notes through Obsidian’s vault API, as expected:
% rg -n 'vault\.(read|modify)' src/services/editor-controller.ts | head -4
1130: const currentContent = await this.plugin.app.vault.read(todayNote);
1135: await this.plugin.app.vault.modify(todayNote, newContent);
1283: const todayContent = await this.plugin.app.vault.read(todayNote);
1286: await this.plugin.app.vault.modify(todayNote, newTodayContent);
Low risk, and no task-format conversion needed.
This should make it easier for me to adapt my LogSeq muscle memory to Obsidian, even if at the cost of enabling community plug-ins.
🤖 *Drafted with *
/bloggify
.Hope is not a strategy. ↩︎
— § —
Reply via [email](mailto:serendipity@perrotta.dev?subject=Reply to: obsidian: logseq-compatible tasks)