Ghostとは

GhostはNode.jsで作られた書くことに特化したCMSです。管理画面も非常にシンプルでかっこいいです。日本語化はできませんけど、その必要も感じません。

現在リリースされているのはGhost 3.xです。Markdown記法での入力が売りのCMSです。以前のバージョンではこちらの記事にもあるようにMarkdown記法で入力する編集エリアと、実際の見え方を確認するためのプレビューエリアが別々でしたが、現在の3.xではそれらが統合されてWYSIWSGな感じで入力できるKoenig エディタとなっています。Koenig はドイツ語で読み方は「ケーニヒ」、意味は「国王」みたいです。WordpressのGutenbergエディタといい、Movable Type 7のブロックエディタといい、最近のCMSの編集画面はすごいです。

日本語の入力問題

非常に魅力的なGhostですが、現在のGhost 3.xには日本人が使うには非常に深刻な問題があります。正確にはIMEを使って入力する外国人にも共通の問題です。

Fix IME problem - especially for CJKT. by iLoveBug · Pull Request #11 · TryGhost/mobiledoc-kit
Works perfect on Chrome. Known issue for Safari: the first chinese world is duplicated.
WIP ignore IME key clicks by iezer · Pull Request #661 · bustle/mobiledoc-kit
Partial fix for #548. This fixes Korean and Japanese input (using Input Method Editor IME) for most cases. Editor is still broken when entering text at the beginning of a section. Still working on ...

Ghostはオープンソースです。誰かが修正して、修正内容の取り込みを依頼する(プルリクエスト)ことができます。このIMEの問題はGhost本体の問題ではなく、Ghostが使用しているライブラリmobiledoc-kitの問題です。2019年に有志の方がプルリクエストを送っていますが送られていますが取り込まれませんでした。Chromeブラウザでは正常に動くように修正されている気がしますが、その他の複数のブラウザでのテストに通らなかったようです。

Fix IME issue by huaying · Pull Request #704 · bustle/mobiledoc-kit
Fix #548 and probably fix #589 as well Love ghost but sadly see the bug affect a lot of users. Can someone also help test it? It works for me in my local (I am a traditional Chinese IME user). Hope...

問題発覚から2年ほど経ちますが、なんと数日前にプルリクエストがマージされたようです。この記事を書いている今初めて知りました。近いうちにGhost側にも取り込まれると思われます。

Fix IME bugs by ruiokada · Pull Request #738 · bustle/mobiledoc-kit
I think this pull request should fix #548 and #696. I have tested on macOS Catalina with Brave, Chrome, Firefox, Opera, Safari, and Edge and on iOS with Safari. I would appreciate tests on other de...

記事を書いている今はまだ更新されていませんが、mobiledoc-kitが正しく動くかどうかはここで確認できます。

Ghostのインストール

インストール環境

Node.jsで作られているため、安価なレンタルサーバにインストールすることはできません。GMOインターネットの株主優待でお得に利用できる「お名前VPS」にインストールします。OSはUbuntu 18.04です。

インストール手順

以下の手順によりGhost-CLIでインストールすれば、Let’s EncryptでのSSL証明書の取得まで面倒をみてくれます。

How to install Ghost on Ubuntu

自分で無理やり日本語に対応させた手順を残しておこうと記事を書き始めましたが、#738によりその必要もなくなるようなので省略します。今はまだ#738の修正が取り込まれていないので、こちらの以下の手順でソースからコンパイルした修正版を準備しておき、そちらが動くようにしています。

ghost@ubuntu:/var/www/ghost$ ls -la
合計 28
drwxrwxr-x+ 5 ghost ghost 4096  7月 20 13:41 .
drwxr-xr-x  4 root  root  4096  7月 20 13:05 ..
-rw-rw-r--  1 ghost ghost  115  7月 20 13:43 .ghost-cli
-rw-rw-r--  1 ghost ghost  476  7月 20 13:43 config.production.json
drwxrwxr-x  8 ghost ghost 4096  7月 20 13:20 content
lrwxrwxrwx  1 ghost ghost   30  7月 20 13:35 current -> /var/www/ghost/versions/3.25.0
drwxrwxr-x  4 ghost ghost 4096  7月 20 13:42 system
drwxrwxr-x  3 ghost ghost 4096  7月 20 13:21 versions
ghost@ubuntu:/var/www/ghost$ mv current current.org
ghost@ubuntu:/var/www/ghost$ ln -s /home/ghost/src/Ghost current
ghost@ubuntu:/var/www/ghost$ ls -l
合計 16
-rw-rw-r-- 1 ghost ghost  476  7月 20 13:43 config.production.json
drwxrwxr-x 8 ghost ghost 4096  7月 20 13:20 content
lrwxrwxrwx 1 ghost ghost   24  7月 20 15:34 current -> /home/ghost/src/Ghost
lrwxrwxrwx 1 ghost ghost   30  7月 20 13:35 current.org -> /var/www/ghost/versions/3.25.0
drwxrwxr-x 4 ghost ghost 4096  7月 20 13:42 system
drwxrwxr-x 3 ghost ghost 4096  7月 20 13:21 versions