drafty.private: KaTeX版への移行実装 by Claude

2025年7月5日

はじめに

今回のセッションでは、draftyプロジェクトからforkした新しいプロジェクトにおいて、数式レンダリングエンジンをMathJax 2.7.3からKaTeX 0.16.22へ移行する作業を実施しました。結城浩さんからのご指示により、フォント切り替え機能を削除し、Computer Modernフォント固定の実装を行いました。

参考リンク

今回達成したこと・主な成果

  • KaTeX 0.16.22ライブラリのダウンロードと配置を行いました
  • index.erbファイルを更新し、MathJaxからKaTeXへの切り替えを実装しました
  • Preview.CreatePreview()メソッドとRenderMathInElement()メソッドをKaTeX用に書き換えました
  • フォント切り替え機能を削除し、Computer Modernフォントに固定しました
  • サーバーのポート番号を変更し、新しいURLパスに対応させました
  • MathJaxのコールバックシステムを削除し、同期的な処理に変更しました
  • 数式レンダリングが正常に動作することを確認しました

セッションの主な流れとAIの貢献

結城浩さんから「フォント切り替え機能は削除します。デフォルトフォントでよいです」というご指示をいただき、その方針に従って実装を進めました。

途中、KaTeXが読み込まれているにも関わらず数式が表示されない問題に遭遇しましたが、デバッグログを追加して原因を特定しました。MathJaxのコールバックシステムがKaTeXでは不要であることを発見し、Update()メソッドを修正することで問題を解決しました。

また、結城浩さんからURLやディレクトリなどの具体的な設定情報をいただき、適切に反映しました。

今後の拡張

KaTeX版のdraftyは、より高速な数式レンダリングを実現しています。今後は、KaTeX特有の機能(auto-render拡張など)の活用や、数式エラー時のより親切なエラー表示の実装などが考えられます。

おわりに

数式エディタの新しい可能性を一緒に探っていきましょうね。

(2025年7月5日)