Jazzと読書の日々

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

Obsidian:ファイル迷宮を探索するRoom

あらゆるものは「迷宮ダンジョン」である。

Room

Obsidianのファイル履歴をカード形式で表示します。

今回、検索の仕方をTemplater経由にしました。

Room.md

Roomはdataviewスクリプトです。

Import Obsidian: Room.md

>[!info]- Room
>```dataview
>task where !completed group by file.link
>```
  
```dataviewjs
const SEARCH = "Template/room.md"
const CARD = "background:ivory;font-size:small;width:119px;height:110px;border:1px solid #eee;border-top:8px solid gold;text-decoration:none;padding:3px;border-radius:5px;margin:3px;overflow:hidden;float:left;"
const MARK = "border-top:8px 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", "")
disp()

p.onkeyup = () => disp()

btn.onclick = () => {
  q = p.value
  if(q){
    navigator.clipboard.writeText(q)
    app.commands.executeCommandById(`templater-obsidian:${SEARCH}`)
  }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='${CARD}${MARK}' 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='${CARD}' href='${x}'>${x.split("/").pop().replace(/.md$/,"")}</a>`)
  b.innerHTML = c.join("") + d.join("")
}
```

リーディングビューにすると下図のようになります。

タップするとノートが開きます。 「▶︎」で新規ファイル作成。

room.md

検索に下記Templaterスクリプトを使います。

Import Obsidian: room.md

<%*
const FILE = "_Search.md"

s = await navigator.clipboard.readText()
s = `~~~query\n${s}\n~~~`
p = app.vault.getAbstractFileByPath(FILE)
if(p) {
  await app.vault.modify(p, s)
} else {
  p = await app.vault.create(FILE, s)
}
open(`obsidian://open?file=${FILE}`)
%>

TemplaterのHotKeyに登録してください。

Room.mdの変数SEARCHがTemplaterの呼び出しです。 room.mdTemplateフォルダにある前提なので、違う場合はフォルダ名を書き換えてお使いください。

使い方

検索欄にキーワードを入れて「▶︎」をタップします。

検索結果が表示され、タップすると該当箇所を開きます。

ファイル管理は迷宮である

迷宮は探索するごとに新しい発見があるわけで、それをあらかじめ決めたシステムで管理できる道理はありません。 それは読書の醍醐味であり、書くことの骨法であり、ひいては人生そのものの構造です。 次が何かを予想できないから面白い。

パーソナル・ナレッジも同様ですよ。 「人生」の鏡映だから。

あらかじめ「プラン」を立てることはできない。 立ててもいいですが、プランから外れた「偶然」を取りこぼします。 「偶然」が迷宮を豊かに耕すので、取りこぼすのはもったいない。 PDCAとは異なるストラテジーを要請します。

すると「管理」とは、事後的に振り返ることで得られるものになります。 自分が何を体験してきたか。 その追憶が「パーソナル・ナレッジ」と呼ばれるわけです。

ObsidianはWebクリップを保管します。 Copilotとの対話も保存することができます。 ここが従来のエディタにない特徴ですね。 「自分が考えたもの」ではないものも「パーソナル・ナレッジ」になっている。 その射程には他者が混在している。

キーワードで検索すると、該当箇所がリストアップされます。 元の文脈とは別に「キーワードの繋がり」という新しい文脈が付与される。 迷宮の中で隠し扉を見つけたような気持ちになりますね。 ワープゾーンというか。 そこがそこと繋がるのか、という驚きを引き出します。 アレゴリーになっています。

これを振り返るツールが「検索」になります。 検索されることで「ログ」が「ナレッジ」になる感じかな。 繋げ直すことで「文脈」を創造する。

迷宮を探索することは「迷宮を探索すること」が目的です。 効率良く回る必要はありません。 どちらかというと「罠」にハマるほうが楽しい。 そんなシロモノです。

まとめ

「書く」とは、迷宮に遊ぶこと。