Boxes の改訂版。
Boxes
ファイル履歴をカード形式で一覧表示するスクリプト。 起動時に開くようにしていますが、ちょっと不満が出てくる。 それは大文字と小文字の区別がされること。
検索のとき大文字かどうかってわからんですよ。 フランス人じゃあるまいし。 それで大小の区別無し検索を考えてみました。
Room.md
インストールは下記リンクから。
```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 はこの三つが一つの画面に収まっています。 未完了のタスクが見れて、履歴が表示され、新規ページを作るボタンがある。 完璧じゃないですか。 「はじめの一歩」はこのどれかです。 そこを踏み出せば、次への扉はおのずと開かれます。
まとめ
と、「明日の自分」に宛てた手紙を書く。