GhostのIMEを使った日本語入力が改善するかもという話
一行で
以下の Pull Request が merge されて新しい ghost-admin が出たら IME を使った日本語入力が直りそう。
(2020/11/24追記) マージされたGhost 3.38.3 がリリースされており、以降のリリースであれば問題ないと思われる。
like this
バグがあると「日本語」と打ちたいだけなのにこんな感じになる。
詳細
このブログは Ghost をセルフホスティングして書いている。移行したのは2014年なのでもう6年くらい経つのか。シンプルなUIで「書くことに集中する」ツールとして洗練されており、今でも好き。
元々 Ghost は Ghost Editor という 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 することにした。幸いにもバージョン間で修正箇所のコードベースは変更はないので、スタイルだけ揃えるだけでテストも通った。
この commit を入れた mobiledoc-kit を使って自分で ghost-admin をビルドしたところ、このエントリの冒頭の GIF のように Koenig Editor で IME を使った日本語入力がだいぶ良好になった。だいぶというのは細かいところ、例えばタイトルや URL のリンクを含んだ文字列の直後には bug が再現しているため。これはどこに問題があるのか、まだ分かってない。
bustle/mobiledoc-kit は 0.12 ベースの 0.12.5 をリリースしてくれており、これを元に TryGhost/mobiledoc-kit にも Pull Request した。
こちらは今日現在一部テストがコケており、該当の commit が影響しているのかどうかも分からんとなっているのが今。Win7 IE11の環境でコケててマジかとなっている。
引き続き、無事 PR が merge されて mainline で問題が解決されると良いなあ。