remarkプラグインを作るさいのことをメモします。
tsconfig.jsonの推奨設定としてtsconfig/basesを使う- remarkプラグイン上でASTをいじるのではなく、micromarkのsyntax extensionを使うほうが良さそう
- 標準の構文と同じ扱いで処理できるので、もっと素直に書ける
- だたし、字句と構文の両方の処理を作らなくてはいけなくなる
importでディレクトリ名を指定すると、その下のindex.tsが読み込まれるそう- TypeScriptコンパイラのGo移植版があるそう
- まだプレビュー版だけど
- 単体テストライブラリはVitestを使ってみる
@をパスとして認識させるには、vitest.config.tsのコンフィグにtest: { alias: { "@": path.resolve(__dirname, "./src") } }に追加する
- テストのためにmicromarkがトークン列を出力するようにしたいけど、そのようなオプションはない?みたいなので、トークンをそのまま出力するhtml extensionで代用する
- Vitestに組み込まれたアサーションライブラリChaiにはオブジェクトの部分比較
containSubsetがあるので、出力結果の一括比較に使える asは型の解釈を変更するので、細心の注意を払うこと- 通常は、宣言時に型を指定して、その解釈は変更しないほうが良い
- とはいえ、micromarkが拡張性のない型でオブジェクトを渡してくるので、新しいトークンの種類を注入するさいのコンパイルエラーを回避するのに役立つ