空行をどう扱うか。
liner
同じネタをこねくり回していますが、 昨日気づいた「トピック問題」。
アウトライナーとブロックでは第一階層の意味づけが異なる。 アウトライナーは第一階層にトピックが来るが、 ブロックだとトピックが第二階層に移行する。
これにどう対処するか、一晩寝てひらめきました。 空リストを使う方法です。
liner.md
Templaterに登録しコマンドパレットで呼び出します。
<%* // 見出しレベル 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(/^- +/mg, HEAD) s = s.replace(/^ {1,4}- +/mg, "") s = s.replace(/^ {5,8}/mg, "") s = s.replace(/^#+ +$/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) %>
見出しレベルを4にしてますが、変数HEADでカスタマイズできます。
使い方
アウトライナー形式をブロック形式に変換します。
ブロック形式とは「見出し+内容」のMarkdownです。
- 第一階層が見出しになります。
- 第二階層は平文。
- 第三階層以下はリストに変換されます。
ブロック形式で実行するとアウトライナーに戻ります。
これでテキストを練り上げていく。
今回の特徴
空行が空リストになる。
この空リストが区切りになるので Outlinerの「Move list and sublists up/down」で 段落単位の並び替えが可能になります。
段落にハンドルがついた状態になり、 並べ替えできます。 今までなかった操作なので重宝するかもしれない。
まとめ
テキストをアウトライナーとブロックの二側面で見る。
とくにアウトライナー形式は「段落」に焦点が当たるので、 テキストの見え方が変わります。 悪くないですね。