Zoomで書いてて困ること。
Zoom
Obsidian は Zoom プラグインを起点に使っています。 「見出し+内容」を一つの「ページ」と見なす。 前後のテキストが消えることで「今ここ」に集中できます。
なので「Zoom 大好き」なのですが一つ困ったことが。 Zoom 中は右サイドバーのアウトラインが働いてくれません。 別のページに移ろうと見出しをタップしても移動にならない。 これが前々から不満に思っていました。
そこで Templater でスクリプトを組んでみました。
pager.md
動けばよかろう、の簡潔版。
<%* text = tp.file.content page = text.split("\n#") header = page.map(x => "#" + x.split("\n")[0]) title = header.map(x => x.replace(/#+ /,"")) if(page.length > 1) { suggest = await tp.system.suggester(title, header) if(!suggest) return position = text.indexOf(suggest) editor = app.workspace.activeLeaf.view.editor editor.setCursor(0, position) app.commands.executeCommandById("obsidian-zoom:zoom-in") app.commands.executeCommandById("editor:move-caret-down") } %>
Commander でマクロにしてモバイルツールバーに置いてみました。
使い方
実行すると見出しの一覧が出ます。
選ぶとそのページを Zoom します。
手数が一挙に減りました。 手数が減ると常用の習慣になる。
小宇宙としての「ページ」
ずっと揺れてますね。 「見出し+内容」の単位。
「ブロック」と呼んだり「箱」と呼んだり。 正式には「セクション」と呼ぶそうですが、 どうも馴染めなくて使わなくなりました。 「セクション」だと縦割り行政のような息苦しさがある。 デジタルなテキストには別の呼び名がほしい。
今回は「ページ」と命名しました。 スクロールが前提になっているエディタにおいて、 いわゆる「ページ」に当たるものはありません。 「何ページ目」と言っても何も指していない。 でもそれなら新しい「ページ」を導入するまでです。
「ページ」は小宇宙です。 小宇宙が集まり「テキスト」という宇宙になります。 それが Markdown の特性であり、 Obsidian の扱う単位であり、 Zoom の表示するものです。
この「テキスト宇宙」を航行する。 デジタル・ライティングをそう定義し直す。 するとこの pager、なかなか便利なツールになります。
追記:「間 ma」ですか。「ma」と「page」を合わせて「mage」とか。
まとめ
ちょっとしたスクリプトだけど、 今までのモヤモヤがクリアになりました。 サッパリした。 そうそう、「書くこと」には宇宙論が隠れてるんだよなあ。
追記:ダブルクリックで開く
面白いので見出しから起動するようにしました。
<%* document.body.ondblclick = (e) => { if(e.target.closest('.cm-panels-top, .HyperMD-header')) { x = 'templater-obsidian:Template/pager.md' app.commands.executeCommandById(x) } } %>
このスクリプトを Templater の「Startup templates」に登録します。
再起動すると見出しのダブルクリックか、 Zoom のパンくずリストの余白をダブルクリックで pager.md が立ち上がります。 (Template フォルダにある前提で)
どんどん「ほしかったエディタ」に近づいてきた。