ちょっとひらめいた。
Cardy
Kanbanプラグインで実現する新しいエディタ。 前のは力技だったのですが、コマンドでトグルするのも諦めきれず、ちょっとインターバルを置いてみました。
Cardy.md
Templaterスクリプトでカンバン表示に切り替えます。
<%* const style = ".kanban-plugin__board{background:#eee;}.kanban-plugin__lane-wrapper{margin-right:10px;}.kanban-plugin__lane-wrapper div{background: #fff;border:0;border-radius:5px;}.kanban-plugin__lane-grip{color:orange;}.kanban-plugin__item-wrapper{margin:0;}.kanban-plugin__item{border-bottom:1px solid #eee !important;border-radius:0 !important;}" s = tp.file.content d = document.getElementById("Cardy") if(d){ s = s.replace(/^---\n[\s\S\n]+\n---\n\n/, "") s = s.replace(/%% kanban:settings\n[\s\S\n]+\n%%/, "") s = s.replace(/^- \[.\] /mg, "") s = s.replace(/##+ \n+/, "") s = s.replace(/^##+ /mg, "#### ") s = s.replace(/\n\n+/g, "\n\n") d.remove() }else{ s = s.replace(/^([^#])/mg, "- [ ] $1") s = "---\nkanban-plugin: basic\n---\n\n#### \n" + s e = document.createElement("style") e.id = "Cardy" document.body.appendChild(e).innerHTML = style } e = app.workspace.activeLeaf.view.editor await e.setValue(s) await app.workspace.activeLeaf.rebuildView() await new Promise(x => setTimeout(x, 1000)) s = "obsidian-kanban:toggle-kanban-view" app.commands.executeCommandById(s) %>
使用例
ちょっと間があくけど、これでもうまく行くようです。
まとめ
Promise()じゃないとタイミングが合わないみたい。