とりあえず細かい記法実装から済ませてしまうことにし,かねてから考えていたダッシュ記法と出典記法を実装,概ね満足出来るものになった。当初はそれほど期待していなかったが,想像以上に表現の幅が広がりそうだ(公式解説)。
ダッシュ記法
ダッシュ記法は,特に扱いにくい倍角ダッシュが簡単に扱えるようになったのが想像以上に大きい。
この問題は,昔,『道草録』で記事名に使おうとしてから認識していた(「Org-Mode の機能、組み込み LaTeX — その1」)が,いまだにこれといった解決策が無く,日本語電子文書の課題になっているので,それなりの宣伝効果もありそうだ。
最初,エムダッシュ(U+2014,—)を2つ繋げて,CSS で何とか調整しようと考えたが,フォントによって太さや長さに統一感がなく,負の letter-spacing で間が開かないようにすると短過ぎて倍角ダッシュに見えなかったりした。しかも,環境によっては重なった部分が濃く見えて結局綺麗な倍角ダッシュにならないという問題に気付き,これは断念した。
最終的に,罫線素片(U+2500,─)を使うことにした。罫線を作るための文字である性質上,letter-spacing が 0 であれば隙間が出来ないことはほぼ保証されている。SLFS,Android,Windows,macOS,iOS で確認した。
罫線素片による倍角ダッシュの表現はよく見られるものだが,同時によく指摘される問題点として,これがダッシュであるという意図が表現出来ないというものがある。例えば,縦書きで表示した時に横棒のままになってしまうことがある。
これを踏まえて最初にエムダッシュを利用しようとしたのだが,よく考えると,デラングであれば,ダッシュ記法という仕様によって意図を保存しつつ,表示上の最適化に徹することが出来る。
出典記法
ダッシュ記法と引用記法の組み合わせとも言える出典記法も実装出来た。
複数段落引用記法の終了記号との兼ね合いをどうするかと思っていたが,これは単純に,出典記法を終了記号としても扱うことで上手く解決した。
ここも意外に他の軽標記言語では面倒だったりするので,デラングの小さな売りになりそうだ。
その他
成果も想像以上だったが,これらを実装するのに想像以上に多くの障害があった。
特に,正規表現周りで躓くことが多く,正規表現の扱い方について見直す良い機会にもなった。