Jazzと読書の日々

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

Obsidian:ページ・ライティングのすすめ

「見出し+内容」を「ページ」として扱う。

ページング

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 自体の仕様のようです。

解決策は、 アウトラインで並び替えたあと見出しをダブルタップすること。 このとき新しい並びを取得し直すらしい。 あるいは、ズーム状態を解除してから並び替える。

まとめ

見出しをダブルクリックするとズーム。 この機能だけでもデフォルトにならないかなあ。 テキストとの距離感が変わります。