まいど同じネタです。
Room
ObsidianにScrapbox(Cosence)のメニューをつけてみる。 そういう狙いのDataviewスクリプトです。
前回queryファイルを使わないので取り外したのですが、すると少し味気ない。 そもそも「Obsidianをローカルなインターネットに見立ててみよう」の意図だったので、全文検索できないのも不便です。
ということで、検索を見直しました。
使い方
リーディングビューで見るとファイル履歴がカード形式で表示されます。
タップすればそのファイルが開く仕組み。 検索欄にキーワードを打ち込むとファイル名で絞り込みをします。
今回の変更点は、検索欄にキーワードを書いてから「+」を押したとき。 これを全文検索にしました。 コアプラグインの検索にキーワードを引き継ぎます。
検索欄が空欄のときは新規ファイル作成になります。
Room.md
スクリプトは下記のようになります。
>[!note]- Room >```dataview >task where !completed group by file.link >``` ```dataviewjs const s = "background:ivory;width:119px;height:112px;border:1px solid #eee;border-top:10px solid gold;text-decoration:none;padding:3px;border-radius:5px;margin:3px;overflow:hidden;float:left;" const ss = "border-top:10px solid orange;" const p = dv.el("input") p.placeholder = "..." p.style = "background:whitesmoke;font-size:large;width:50%;border-radius:5px;border:1px silver solid;" const btn = dv.el("button","+") btn.style = "background:none;font-size:small;margin:5px;width:20px;" const b = dv.el("div", "") b.style = "font-size:small;height:4000px;" disp() p.onkeyup = () => disp() btn.onclick = () => { q = encodeURIComponent(p.value) if(q){ open(`obsidian://search?query=${q}`) }else{ open("obsidian://new") } } function disp(){ r = new RegExp(`${p.value}`, "i") const c = dv.pages('').file .filter(x => x.starred) .filter(x => r.test(x.name)) .sort(x => x.mtime, "desc") .map(x => `<a class=internal-link style='${s}${ss}' href='${x.path}'>${x.name}</a>`) const d = dv.array(Object.entries(dv.app.metadataCache.fileCache)) .filter(([x,y]) => r.test(x)) .sort(([x,y]) => y.mtime, "desc") .limit(200) .map(([x,y]) => `<a class=internal-link style='${s}' href='${x}'>${x.split("/").pop().replace(/.md$/,"")}</a>`) b.innerHTML = c.join("") + d.join("") } ```
AND検索の定位性
全文検索についてですが、普通に多いのは「二つのキーワードをともに含むファイル」という探し方ですね。 AND検索。 これをよく使う。
ある言葉とある言葉の交差点。 記憶はそんな構造をしているのかもしれません。 補助線が一つだけでは特定しにくい。 該当するファイルが列挙されてパニックになります。
二つ補助線を引くとき、焦点が定まる。 目が二つあるのも、耳が二つあるのも、似た理由なのでしょう。 位置の特定には二つの補助線が必要になる。
説明がうまい文章を見ると、そこにも二つの視点があって、同じことを別のメタファーで表現する工夫がされています。 二つのメタファーが軽く使われている。 すると、その事象を定位しやすい。
物事を考えるとき二項対立が使われるのも、思考が2つの視点を必要とするからでしょう。 決して「対立」ではない。 補助線が2つあって「何か」を考えることができる。
その「何か」がサブジェクト(主題)であり、使われる補助線はオブジェクト(対象)なのだろうなあ。 オブジェクトだけ見ていてもサブジェクトは読み取れない。
まとめ
Obsidianをバージョンアップしてから、テキスト横幅が増えてしまった。 たぶんStyle関係のプラグインとバッティングしたんだろうなあ。 アンインストールしても状況は変わらず。
使う分には困らないので、このまま使用を続けています。