Jazzと読書の日々

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

Obsidian dataviewでホームページを作ってみた

Scrapboxみたいな何か。

検索欄付き

前回検索欄付き蔵書リストを考えました。なかなか面白い。さらに「これ、ファイル管理でもいいんでない?」と思い、手を入れてみました。 2Hop Linksも導入してることだし、Scrapboxのホームページが恋しい。 あんな感じの、入口となる部分。

Boxes.md

dataviewスクリプトです。 ソースモードで編集し、ライブビューに戻せば走ります。

```dataviewjs
const a = dv.el("input")
a.placeholder = "search..."
a.style = "font-size:18px;background:whitesmoke;width:100%;"
dv.paragraph("---")
const b = dv.el("div","")
b.style = "font-size:small;font-weight:bold;"
disp()
a.onkeyup = function(){disp()}

function disp(){
  d = dv.pages('').file
  .filter(x => x.name.includes([a.value]))
  .sort(x => x.mtime, "desc")
  .limit(50)
  .map(x => "<a href=obsidian://open?file="+encodeURI(x.name)+"><div style='background:ivory;width:120px;height:100px;border:1px solid #eee;margin:3px;overflow:hidden;float:left;'>"+x.name+"</div></a>")
  b.innerHTML = d.join("")
}
```

使い方

起動すると修正日順でファイル履歴が表示されます。

検索欄にキーワードを入れるとファイル名で絞り込みます。 カードをタップすると、そのファイルが開きます。

左サイドパネル

左サイドパネルをピン留めしてからBoxes.mdのタブを左サイドにドロップすると、パネルに登録できます。 Boxesを長押しして「ピン」をONにしてください。 こうするとカードをタップしたとき、メインのほうにファイルが開きます。

この使い方、いいかもしれない。

制約

初めは無限項目にしていたのですが、表示中にリセットする不具合があったので、50項目に減らしました。 この表示法を想定してなくてバッファが小さいのでしょう。

回避策が見つかったら修正版を出そうと思います。

弱さの哲学

シンプルな機能なんですけど、履歴を絞り込めると安心します。 どのテキストも迷子にならない。 Scrapboxはファイルの内容も表示するわけで、そのことが「ファイル」という概念を乗り越えています。 フォルダを意識せずフラットにカード扱いする。

MOCのような管理の仕方もあるでしょう。 「情報を位置づけコントロールする」という強い哲学がある。 図書館の十進分類法というか、Yahooのディレクトリサービスというか。 「言分け」が「ことわり」であるロゴス優位主義が潜んでいる。

対して、Scrapboxのホーム画面は「無力さの自覚」です。 情報に対して人間は無力である。 分類できる部分もあれば、分類できない部分もある。 そこを大風呂敷で包んで、ほどよい距離感で情報と付き合おう。 そういう「弱さの哲学」があって、個人的には好きです。

Obsidian回りは、たとえガーデニングに喩えたとしても、管理工学の発想が強いと思います。 「言葉は自然と育っていくもの」という感覚がない。 肥料を撒いたり湿度を調整したりと、人の手を加えて忙しない。 彼らはどこを目指してるんだろう?

そうした管理志向はどうも肌に合いません。 美しく整ったものが構築されるだろうけど、息苦しい。 花もあるけど雑草もある。 Scrapboxが「スクラップ」を重視しているのは大事な視点じゃないかな。

まとめ

雑草にも花が咲く時はあるんだし。

追記

なるほど「主役」の違いか。

Scrapboxには「中動態」も感じます。 「おのずからそうなっていく」という感覚で情報が動いている。 「こんなスクリプト、作るつもりじゃなかったのに」みたいな。