全知検索演算子についての検討(1歩),交度埋め込み記法の実装方針検討と数式記法も含めた概念整理(5歩),知名デラングの対応方針についての検討(7歩),交度記法で対応言語スクリプトを動的に追加する方法についての検討(12歩)など,検討作業がよく捗った。
実作業も,交度写し取りボタン実装(13歩〜16歩),交度埋め込み記法調整などそこそこ捗ったが,特に大きかったのは,交度埋め込み記法と数式記法の概念整理が出来たことだった。
交度埋め込み記法では,対応言語に tex
,latex
,katex
を追加した。これまで katex
のみを追加するつもりだったが,意図の明示という観点から使い分けられる方が望ましい。例えば,KaTeX という実装にこだわらず LaTeX を書きたいということは十分に考えられる。
また,これまでは数式記法も KaTeX 交度埋め込み記法の糖衣構文程度に考えていたが,ここで「数式のための TeX 風記法」と位置付け直すことにした。これにより,例えば mhchem などの数式以外の応用は交度埋め込み記法を使うといった使い分けが可能になる。
Mermaid 対応以後,交度埋め込み記法で KaTeX に対応する機会を窺っていた。これは同記法を考案した時点で考えていたこと(希哲16年2月15日18歩)で,いずれ対応するつもりではあったが,30分もあれば十分だろうという実装コストの低さにもかかわらず,いまいち気が乗らなかった。
数式記法を糖衣構文として再定義する,それ以上の意義が見出せなかった。整合性という大義名分はあったが,悪い意味での冗長性を加えるような感覚もあり,なんとなくぼんやりした,すっきりしないものを感じていた。
そんなところで交度埋め込み記法での KaTeX 対応の要望があった。数式記法で化学式を扱うのは不自然なので交度埋め込み記法で mhchem に対応してほしいという要望も含まれていた。問題に対しての手段は正直無理筋だと感じていたが,今思えば,数式記法の位置付けに対する問題提起としては的を射ていた。以来,交度埋め込み記法の意義と数式記法の位置付けについて同時に考えることが多くなった。
交度埋め込み記法での KaTeX 対応については,理論上の整合性や検索性,交度記法からの書き換えのしやすさ,好みの選択肢を増やせること,応用例を増やすことで交度埋め込み記法の役割を理解しやすくすることなど,なんとか利点を捻り出し,もやもやは残りつつも実装に着手する態勢に入っていた。
そして今日,対応言語が当初から予定していた katex
だけではちょっとまずいことに気付いた。KaTeX を使って TeX や LaTeX を表現したいことは十分ありうる。ここで,言語設計の基本である「意図の明示」という観点を忘れていたことに気付いた。さらに,数式記法を意図の明示という観点から再定義出来ることに気付いた。
これまで,数式記法は交度埋め込み記法の糖衣構文で「TeX 風記法」の別名,程度に位置付けることを考えていた。数式記法内で数式以外の表現が出来るのも不自然と言えば不自然だが,「数式記法という名前の TeX 風記法です」と説明するのも野暮ながら出来なくもない。これを「数式のための TeX 風記法」と説明出来ればだいぶすっきりする。数式にとらわれない TeX 風記法が使いたい場合は交度埋め込み記法を使う,というのも自然な切り分けだ。
この気付きで一気にもやもやが晴れ,両記法が概念的にぐっと洗練されたものになり,気持ち良く実装作業を終えられた。
latex
}{katex
}{tex
}(34)日次出場抜控の整理作業(6歩),当努整理(7歩)を済ませ,デラング整備では Mermaid 対応を終えた(14歩)。出振るい済み。
Mermaid 自体は自分で使う予定もなく,他用者からの要望があったわけでもないが,個人知識管理サービス界隈では人気のある付徴なので一定の客寄せにはなるだろう。
今後の応用可能性を考えると,一年近く前に考案した(希哲16年2月15日18歩)交度埋め込み記法をようやく実装出来たことが一番大きな収穫だった。実際試してみると,Mermaid のような交度を埋め込む記法とはかくあるべきだと強く感じる。Mermaid 対応は交度記法をそのまま使った雑な実装が目立つ。言語開発者としての自信を深めることも出来た。
というか,GitHub 開発者よりデライト開発者の方が賢い証拠ではないか。つくづく不思議だったが,コードフェンスに Mermaid の素出を書いて図表を表示することを思いついた人は,コードフェンスに TeX の素出を書いても数式が表示されない理由について考えなかったのだろうか。それを平気で受け入れる人が多かったということは,それが普通の開発者の言語感覚なのか。