一行で
以下の Pull Request が merge されて新しい ghost-admin が出たら IME を使った日本語入力の問題が直りそう。
Applied upstream v0.12.5 patches to fix IME bug by tnmt · Pull Request #15 · TryGhost/mobiledoc-kit
(2020/11/24追記) マージされたGhost3.38.3がリリースされ、それ以降のリリースであれば問題が解消されている。
修正後は、IMEで普通に日本語入力ができる。

しかしバグがあると「日本語」と打ちたいだけなのにこんな感じになってしまう。

詳細
このブログは Ghost をセルフホスティングして書いている。移行したのは2014年なのでもう6年くらい経つのか。シンプルなUIで「書くことに集中する」ツールとして洗練されており、今でも好き。
元々 Ghost は SimpleMDE という Markdown エディタを採用していた。Markdown が使えるから Ghost に移行したというのも大きかったことを思い出す。その後、Ghost 1.23.0 で Beta, Ghost 2.0 からデフォルトで新しい Koenig Editor という WYSIWYG エディタに変わった。Markdown compatibility は残しつつ、よりプロジェクトのビジョンに沿う改修だったのではないかと思う。
ところが、新しい Koenig Editor で WYSIWYG editor を作るため利用している mobiledoc-kit というライブラリには IME を使った入力にバグがあり、日本語を始め、各国語、特にアジア圏言語の入力に難があるというのが続いていたようだ。「ようだ」と書いたのは、自身はこの期間にたまにしかエントリを書いてなかったのであまり気にしていなかったのと、bug を認知した後も Markdown で書いた文章をコピペしてしのいでいてしまったから…
最近またちょいちょいエントリを書いていると、ちょっとした手直しをするときにエディタの不具合が気になるようになってきて、直せないものかと調べ始めた。
どれどれと探してみると、Ghost Forum や GitHub でチラホラと Issue を見つけることができた。
- Japanese Typo bug 日本語入力が壊れてる - Help - Ghost Forum
- Editor: IME input problem · Issue #9801 · TryGhost/Ghost
- IME Bug: Ghost suffering IME bug for 2 years and Never Fix it · Issue #11460 · TryGhost/Ghost
TryGhost/Ghost の Issueでは 「mobiledoc-kit の問題だよ」ということになっており、mobiledoc-kit には Entering logograms issues in macOS · Issue #548 · bustle/mobiledoc-kit に Issue があがっており、こちらの Issue は3年間ほど Open になっていた(後述のPRによりCloseされた)。
そして今年7月、ついに Fix IME bugs by ruiokada · Pull Request #738 · bustle/mobiledoc-kit にて該当のバグが修正される。ただこれは bustle/mobiledoc-kit 現行の最新バージョン 0.13.x に対してであって、ghost-admin (WYSIWYGエディタを実装しているGhostのコンポーネント) は未だに古い 0.12.x を使っており、今のままでは該当の bugfix は反映される見込みがないということが察せられた。ghost-admin が mobiledoc-kit の 0.13.x を使えば解決するのだが、mobiledoc-kit の 0.12 と 0.13 での変更に合わせて ghost-admin を改修するのが大変だからかと邪推している。
そこで、bustle/mobiledoc-kit 0.13 での bugfix を 0.12 に backport することにした。幸いにもバージョン間で修正箇所のコードベースに変更はないので、スタイルを揃えるだけでテストも通った。
backport fix for IME bugs by tnmt · Pull Request #745 · bustle/mobiledoc-kit
この commit を入れた mobiledoc-kit を使って自分で ghost-admin をビルドしたところ、このエントリの冒頭の GIF のように Koenig Editor で IME を使った日本語入力がだいぶ良好になった。だいぶというのは細かいところ、例えばタイトルや URL のリンクを含んだ文字列の直後には bug が再現しているため。これはどこに問題があるのか、まだ分かってない。
bustle/mobiledoc-kit は 0.12 ベースの 0.12.5 をリリースしてくれており、これを元に TryGhost/mobiledoc-kit にも Pull Request した。
Applied upstream v0.12.5 patches to fix IME bug by tnmt · Pull Request #15 · TryGhost/mobiledoc-kit
引き続き、無事 PR が merge されて mainline で問題が解決されると良いなあ。