「見出し+内容」を「ページ」として扱う。
ページング
Zoom プラグインを使い 「ズーム状態」のまま書いていく。
この書き方が「ふつう」に思えてきたので、 不具合を手直ししました。 一番大きな不具合は「同じ名前があると最初のほうにしか飛べない」 ですね。 思ったところが開かないとリズムが崩れる。 これを修正。
2 つの Templater スクリプトを組み合わせます。
pager.md
見出しを一覧表示します。
<%* text = tp.file.content page = text.split("\n#") header = page.map(x => x.split("\n")[0].replace(/#+ /,"")) pos = [] cursor = 0 for(i=0; i<page.length; i++) { pos[i] = cursor + 1 cursor+= page[i].length + 2 } if(page.length > 1) { position = await tp.system.suggester(header, pos) if(!position) return editor = app.workspace.activeLeaf.view.editor editor.setCursor(0, position) app.commands.executeCommandById("obsidian-zoom:zoom-in") app.commands.executeCommandById("editor:move-caret-down") } %>
これを Templater の Template hotkeys に登録します。
paging.md
見出しのダブルクリックでズームする。
<%* document.body.ondblclick = (e) => { if(e.target.closest('.HyperMD-header')) { x = 'obsidian-zoom:zoom-in' app.commands.executeCommandById(x) } else if(e.target.closest('.cm-panels-top')) { x = 'templater-obsidian:Template/pager.md' app.commands.executeCommandById(x) } } %>
こちらは Templater の Startup templates に登録します。
そして Obsidian を再起動。
使い方
見出しをダブルタップ。
するとその見出しがズームします。
パンくずリストの余白をダブルタップすると
見出しリストが出る。
選んだページに移動します。
今ある不具合
ページはアウトラインで並べ替えることができます。
ただ pager.md はこの変更をうまく扱えません。 古い並びに直そうとし辻褄が合わなくなります。 これは Templater 自体の仕様のようです。
解決策は、 アウトラインで並び替えたあと見出しをダブルタップすること。 このとき新しい並びを取得し直すらしい。 あるいは、ズーム状態を解除してから並び替える。
まとめ
見出しをダブルクリックするとズーム。 この機能だけでもデフォルトにならないかなあ。 テキストとの距離感が変わります。