Jazzと読書の日々

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

Obsidian:アウトライナーをブロックに変換(Zoom対応版)

並べることで考える。

liner

アウトライナーで書いてブロック形式に変換。 いい感じだと思ったら落とし穴がありました。 Zoomを使うとインデント幅が違うみたいで linerが誤作動します。

困った。

liner.md

インデント幅を「1から4」にしてみました。

<%*
// 見出しのレベル
HEAD = "#### "

s = tp.file.content
front = ""
if(/^---\n/.test(s)) {
  d = s.split("\n---\n")
  front = d.shift() + "\n---\n"
  s = d.join("\n---\n")
}
if(/^\n*- /.test(s)) {
  s = s.replace(/^-\s+/mg, HEAD)
  s = s.replace(/^ {1,4}- +/mg, "")
  s = s.replace(/^ {5,8}/mg, "")
} else {
  s = s.replace(/^(\s*-)/mg, "        $1")
  s = s.replace(/^([^\s-#])/mg, "    - $1")
  s = s.replace(/^#+ /mg, "- ")
  s = s.replace(/^$/mg, "    - ")
  s = s.replace(/^    /, "")
}
e = app.workspace.activeLeaf.view.editor
e.setValue(front + s)
%>

とりあえずこれで回避。

Zoomこそすべて

アウトライナーの妙味はZoomである。 バレットをタップするとその階層だけ抽出表示する。 この集中感で文章がいくらでも書けます。

並べ替えも折り畳みもアウトライナーの特徴です。 階層がオブジェクトになり操作できる。 親リストと子リストで作られた「階層」。 この「階層」を意識させる仕組みになっている。

本来アウトライナーにZoomという考え方はないのですが、 個人的には Workflowy が初めてだったかな、 その階層だけを表示する方法。 これは書き方の革命でした。

ツリーの一部を切り出して、 それが単独のツリーであるかのように振る舞う。 フラクタル構造を描いて 「ファイル」という概念を不要にしています。

まとめ

ということで、Zoom対応版。