こうすると書きやすいんじゃないか。
Marks
Obsidianとかは範囲指定するタイプだけど、ちょっと使いにくい。改行ごとにリスト記法が出るタイプもあるけど、初めからリストにしようと書き始めることも少ないです。
すると、どうすればいいか。
見出し
まずは簡単なところから。空行でアクションを実行すると見出し記法になります。見出しレベルはソースの先頭で設定しているので、ご自由に書き換えてください。
ここからひと工夫。見出しにカーソルがある状態でアクションを起動すると、コードブロックに変わります。つまり、アクションを重ねることで記法を変更していく作戦。
さらにアクションを実行すると、空行に戻ります。
強調
単語が選択されている場合は「強調」になります。**
で選択範囲を囲みます。
もし選択範囲に **
がある場合は `
に変更します。この記法はコードの埋め込みに使います。選択範囲の **
を変換するだけの方式なので、先頭をMarkdownに合わせる必要はありません。
もう一度実行すると無修飾に戻ります。
リスト
リストは「ブロック」に注目しました。空行を区切りと見なし、その範囲をターゲットにする。アクションを実行すると、カーソルのあるブロックをリスト形式に変換します。
そして、アクションを実行するたびに「リスト → 連番 → チェックボックス → 引用符 → 無修飾」と変化します。インデントしている場合は、その段差も維持します。インデントは空白4つにすると汎用性があり、便利です。
まとめ
最初はアクション名を Marx としていたのですが「マルクス」になっちゃうので、きっと何をするアクションかわからなくなるだろう、と辞めました。
リンク系のMarkdownは扱いませんでした。これは本来 [タイトル]
として、脚注に [タイトル]: アドレス
を書くのが正書法だからです。アドレスを一元管理する目的がある。一般に使われる [タイトル](アドレス)
は表記として美しくないし、アドレスの変更があったとき修正が面倒になります。
そもそもブログで使う場面は少ないので実装しないことにしました。