Jazzと読書の日々

iPadを筆記具として使う方法を模索します

Obsidian Cardy を時間差付きにしてみた

ちょっとひらめいた。

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()じゃないとタイミングが合わないみたい。