プルリクエストを作りました
RubyをWebAssemblyで動かすruby.wasmを、ブラウザで動かす時に便利なJavaScriptにbrowser.script.iife.js
があります。
<script type="text/ruby">
にインラインで書いたRubyスクリプトを実行してくれます。
これにsrc属性の対応を追加するパッチです。
アイデアは、https://cdn.jsdelivr.net/npm/ruby-head-wasm-wasi@0.3.0-2022-09-06-f/dist/browser.script.iife.js のsrc属性対応 - @ledsun blog で思いついています。
ただ、動作確認が上手く出来ませんでした。
https://github.com/ledsun/wordle_search/blob/5d0fbe1c0ce648b101a944908e218bfac94f0bfe/index.html#L65 で、ビルドされたbrowser.script.iife.js
を使っています。
これに直接パッチを当てて期待通りに動けば、動作確認できるのでは?というアイデアを思いつきました。
実際やってみたら動きました。
Enable src attribute in script tag in browser.script.iife.js. by ledsun · Pull Request #49 · ruby/ruby.wasm · GitHubを作りました。 さくっとマージしてもらえました。
プルリクエストにビルドの仕方がわからなかったって書いたら 高速でコントリビューションドキュメントを整備されてました*1。 すげえな
別に取って食われるわけでないのですが、未知のリポジトリにプルリクエストを作るのは緊張します。 緊張を無視して、プルリクエストを作ります。 この辺、自分を上手くコントロールできるようになるといいのになあと思います。
VSCodeでシンタックスハイライトしたかった
これは元々、VSCodeでシンタックスハイライトやCopilotの補完が効かなくて辛かったのを回避したくて、始めたハックです。
試そうとした別の方法を記録しておきます。 最初は、VSCodeがサポートしたら良いだろうと思いました。 過去のissueを探すと"text/jsx"サポート要望がありました。 Syntax highlighting doesn't work with "text/jsx" script tags · Issue #150171 · microsoft/vscode · GitHub textmateのほうで対応する方針のようです。
textmateのissueです。 Syntax for text/jsx inside HTML · Issue #119 · textmate/html.tmbundle · GitHub 対応中です。 この方針は時間が掛かりそうなので、トライするのを諦めました。 第二の方針が今回のプルリクエストでした。 割とスッと解決して良かったです。
RubyMineの場合
RubyMineは簡単な設定で<script type="text/ruby">
をRubyスクリプトだと認識させられることに気がつきました。
https://www.jetbrains.com/help/ruby/using-language-injections.html#inject-language-nowdoc-heredoc
RubyMineすごい。