Jazzと読書の日々

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

はい、Obsidian ホームルームを始めます

Boxes の改訂版。

Boxes

ファイル履歴をカード形式で一覧表示するスクリプト。 起動時に開くようにしていますが、ちょっと不満が出てくる。 それは大文字と小文字の区別がされること。

検索のとき大文字かどうかってわからんですよ。 フランス人じゃあるまいし。 それで大小の区別無し検索を考えてみました。

Room.md

インストールは下記リンクから。

Import Obsidian: Room

```dataviewjs
s = "background:ivory;width:120px;height:112px;border:1px solid #eee;padding:3px;border-top:8px solid gold;border-radius:3px;margin:3px;overflow:hidden;float:left;"

dv.span(">[!example]- Room\n>```dataview\n>task where !completed group by file.link\n>```")
const p = dv.el("input")
p.placeholder = "..."
p.style = "font-size:18px;background:whitesmoke;"
const btn = dv.el("button","+")
btn.style = "font-size:14px;margin:5px;"
dv.paragraph("---")
const b = dv.el("div","")
b.style = "font-size:small;font-weight:bold;height:6000px;"
disp()

p.onkeyup = function(){
  disp()
}

btn.onclick = function(){
  open("obsidian://new?file=" + encodeURI(p.value))
}

function disp(){
  r = new RegExp("("+ p.value +")","i")
  d = dv.pages('').file
  .filter(x => r.test(x.path))
  .sort(x => x.mtime, "desc")
  .limit(120)
  .map(x => "<a style='" + s + "' href=obsidian://open?file=" + encodeURI(x.path) + "> " + x.name + "</a>")
  b.innerHTML = d.join("")
}
```

実行例

こんな感じ。

一段目の「Room」は未完了タスクを表示する部分。 コールアウトで開閉できるようにしました。 チェックボックスをタップすると完了になり、リストから消えます。

正規表現検索

検索をignoreにしました。 大文字/小文字の区別を行わない。

それに伴い正規表現が使えるようになりました。 「Inboxフォルダ内で『身体』が含まれるファイル」の場合は「inbox.+身体」で検索できる。 これをテンプラ(.+)と呼んでます、個人的に。 テンプラ、いろんなところで使えます。

正規表現は奥が深いです。

ホームルーム

「ホームルーム」から連想して Room にしました。 始まりと終わりに、その日を確認するホームページ。

Roomを使いながら「弱さの哲学」を考えています。 情報を全部コントロールすることはできない。 でも、足掛かりはある。 やるべきことを確認すること。 昨日までしていたことを振り返ること。 そして、新しいページを開くこと。 この三つです。

Room はこの三つが一つの画面に収まっています。 未完了のタスクが見れて、履歴が表示され、新規ページを作るボタンがある。 完璧じゃないですか。 「はじめの一歩」はこのどれかです。 そこを踏み出せば、次への扉はおのずと開かれます。

まとめ

と、「明日の自分」に宛てた手紙を書く。