acliiのために、昔懐かしのResigテンプレートを改造して内部モジュールとして使っていたのだが、行マクロを追加したりしていたら面白くなってきたので独立させた。

大体できてきたのでここまでの雑感。来週末あたりにはnpmに上げるかも知れない。

テンプレートエンジン考えるの楽しい

小難しい理屈を全部ぶっとばして、行単位で刻んでJSを素通しして残りの箇所のタグをテンプレートリテラルに変換してるだけなんだけど、思ったより利便性が高くなりそうで楽しい。 週末のみの稼働なので、当初考えた機能を一通り実装するまでに一ヶ月くらいかかってしまった。

デモサイト作るのも楽しい

デモサイトも作った。こっちのほうが時間がかかる。というか凝り始めるとキリがないのでやめられない止まらない。 デモ用のコードの表示にWebで動くエディタも組み込んだ。この選択も結構難航した。 最初はace、次にcodemirrorを使っていたけど、どっちも辛みが辛くて結局monaco editorになった。バンドルサイズが大変なことになったが、機能的には大変満足だ。小さい画面に押し込めるために機能を削る方に忙しい。バンドルサイズを削減する方法を探したい。

シングルページでコンテンツも動的に読み込んでいるが、ページ遷移はしないのでSPAではないはず。こういう1ページに大量にコンテンツ詰め込むドキュメント系のサイトが最近は多い気がするが、なにか呼び方とかあるんだろうか。

あえてフレームワークは使わずにVanillaJSと生CSSでガリガリ書いた。色々進化しているのを感じた。

JavaScriptのeval系のエラー表示の酷さ

アイツラは、なんでまともにエラー箇所の情報を返さないのだろう。どうやっても無理っぽかった。npmに挙がってるいくつかのJSパーサーを使うことも考えたが、各ブラウザで安定して動かせるまで枯れてるものはなさそうだった。 結局、ものすごい強引な方法で大体のエラー行を表示させるようにしてる。

Vite超便利

メインのモジュールはTypeScriptで、デモサイトはVanillaJS。モジュールのビルドもデモサイトのJSのバンドルも全部Viteがやってくれる。ありがたやありがたや。