XdomainでGravを使ってみる

世間ではCMSというとwordpressとまず思いつくぐらいにwordpressは有名になり、いろんなレンタルサーバーでも簡単にインストールできる機能がついていて、有名なテーマのおかげであまり手をかけないでも日々blogを書くことができるようになった。

もちろん他にもJoomla!とか、blogを書くだけなら、はてなブログやレンタルブログもあるだろう。

レンタルブログは別として、wordpressやらはデータベースが必要になり、一旦環境が整いさえすれば簡単には始められるけれども、中身をいじろうとすると意外にとっつきにくい。

これはどのCMSを選択しても同じような事ではあるけれどもwordpressの場合はその機能の豊富さ故に難しく、そこまでの機能はいらないんだよなという人もいるかと思う。どうせ環境づくりに手間をかけるのであれば、もう少しライトに、かつ使い方によっては何でもできるようなものは無いだろうか?という人がいればGravをオススメしたい。

手間をかけずとりあえずblogを始めたいという人に関してはレンタルブログでいいのではなかろうかと思う。

とりあえず、飛行機やロボットアニメのコックピットを見るとワクワクしてしまうような、細かな部分までいじりたい人、初代ガンダムのコックピットより、ユニコーンガンダムのコックピットで、おい!!全天モニターに、なんだよあのシステムモニターは!!オラ、ワックワクすんぞというような人には向いてるかも知れない。それがGravだ。

Gravとは

Grav is a modern open source flat-file CMS とあるように、Gravはデータベースを必要としないflat-file CMSだ。取り敢えず必須なものはFTPとテキストエディタで、xdomainならphpサーバがあればいい。

基本外国製のアプリケーションであるという事とまだ利用者の絶対数が少ないということから一応日本語表示はできても、裏側では英語から情報を得ることが多く、wordpressと違って日本語で色々調べられるような環境ではないが、それでもずっと更新が続けられておりマイナーながら「モダン」という部分ではとても良くできている。

Gravは、テンプレートエンジンにTwigを採用しており、これがわかる人はとてもテンプレートがいじりやすい。まぁwordpressしかいじってきてない人なら、いきなりユニコーンガンダムに乗り込むようなものなので、初代ガンダムにアムロが乗り込んで本をペラペラ読んだだけで操作できてしまうようなイージーモードではないことは確かだ。

しかし、angular.jsや、React.jsとはまた違うにしろ、そういった言語で色々しているような人は特別難しくもないだろう。初心者だとしても、テーマはあるし日本語は使えるからあまり気にせず使えるはず。

wordpressほど多機能を望まず、小規模なhtmlのサイトをcms化したいというような人には丁度よいと思う。

Gravに必要な知識

基本的に、環境が整いさえすればブラウザ上で全部完了できる。それがcmsたる所以でもあるが、結局環境作りが大変であることにはかわりはない。しかし記事を書く時にmarkdownで書けることはとてもわかりやすい。
atomエディターを使っていれば、markdownプレビューである程度の確認ができるし、Grav上のエディターでも確認できる。もちろん公開保存された時にはcssが適用されるので見た目は変わってしまうけれども面倒くさいhtmlタグをいちいち入力する必要はない。

参考: Markdown記法 チートシート

特に面倒くさいリストやリンク、画像などこういうのが特にやりやすい。テーブルにしても比較的簡単だ。wordpressでも一部導入されたし、プラグインで実現可能ではあるけれども、基本markdownで書けることのメリットは多い。

環境づくり

インストールは、Grav core + Admin plugin(zip)からダウンロードして、zip解凍後、ftpでアップロードする。

もし、サブディレクトリにインストールした場合は、色々設定を変更する必要があったりするが、まずはこれだけでok。

詳しくは、Gravのインストール方法 | 俺にはまだ二次元がある。を参考に。

上記参考サイトは日本語テーマも配布されているので、これを利用するのがひとまず手っ取り早い。

xdomainでGravを使う場合、インストールするだけだと500エラーが出るので、上記参考サイトの「トラブルシューティング」にある、.htacsessのしたの方に書いてある、Options -Indexesをコメントアウトするのは必須。

ftpでアップロード後、ひとまず必要なことは、.htaccessの設定だ。アップロード前にしておくとよりベター。

  • 「#RewriteBase /」から#をとって有効にする
    • サブディレクトリで利用する場合は、「RewriteBase /サブディレクトリ名」としておく
  • 「Options -Indexes」を「# Options -Indexes」という感じでコメントアウトする

.htaccessはこれだけでok。

管理画面を日本語化

管理画面で自分の名前の箇所をクリックして、ユーザー画面を開き、Languageから「日本語」を選ぶ。これは管理画面を日本語にする。たいてい項目をマウスオーバーすれば説明が出るが、全てを日本語するわけではないので公式サイトのLearnから英語のドキュメントだがパラメーターや設定項目から内容を確認しておくとよいだろう。

システム設定

システム設定画面、「言語」で、「ja」を入力。何も入れない場合htmlタグに

となる。

後からjaを取ったり、他に変更すると色々とおかしくなる可能性があるので、ここは最初に決めたら変更しない方向でやるのがベター。

同じくして「言語」の「翻訳を有効化」を「はい」にする。こうするとプラグインの言語設定内に書かれている対訳や、/system/languages/ja.yamlの対訳が有効になる。ja.yamlに無い訳のものは、基本英語のもので補われると思う。

「翻訳を有効化」を「いいえ」にするとテンプレートの変数がそのまま表示される。元となるテンプレート自体を直接書き換えても良いが、(おそらく)wordpress同様該当のプラグインやテーマがアップデートされたら元に戻ってしまうだろうから、定期的にバックアップをしておくと良い。
Gravは管理画面からzipでバックアップできる機能があるので、アップデートをする前にはバックアップしておき、アップデート後、表示に問題があればバックアップからftpなどを利用して修正していく必要があるだろう。

xdomainは、Gzipができなかったと思うので、他の項目は「HTTP ヘッダー」と「Markdown」の設定ぐらいしか触る所は無いかと思う。他の項目についてはわり細かな設定がしたい人で、かつ、色々とリカバリできる人向けだ。

ページの管理

ここが重要かつ、肝となる。

基本的には、「ページ」から右上の「ページの追加」で記事の「タイトル」、記事を収納する「フォルダ」を作り、親ページを選択し、テンプレートを設定する。

親ページは、ブラウザでサイトを見た時に、画面右上のメニューに表示するのなら、まず「ルート」で作成する。
テンプレートは、色々とあるが、一般的な形式にするのであれば親ページはblogになる。

wordpressの場合、投稿か固定ページで記事をまず作り、カテゴリを設定したりしつつ、メニューで何をどの親子関係にするかを決めていくが、Gravでは考え方としては同じようなもののファイルで管理しているため、テンプレートの選び方を間違えると上手く動作しない。

例えばページの親子関係は、ページの追加時、あるいは個別の設定で何を親にするか選択できるが、全てテンプレートをItemにすると、記事単体では見れるが、一覧表示や検索、タグリスト、アーカイブ、フィード、前・次リンクなどが機能しない。

これらを機能させるには、親をblogにして、子をitemとしてテンプレートを設定しないといけない。プラグインなどで何を対象とするかというような設定の時、/blogなどとよくあるのはそのためだ。

ここらを間違わなければ、何もしないでも(一部twigを編集などあるが)利用することができる。しないといけないのはテンプレートのどこに何を表示させるかを後から追記するぐらいだ。

また、記事の冒頭にサマリー(要約・概要)を入れておくと良い。ページの編集で横棒(summary delimiter)で区切る。worspressで言う所のmoreボタンだ。
これは記事表示画面では何も起こらないが、記事一覧リストの時に、この区切り前の文章が表示される。これが入っていないとリスト一覧が見にくくなる可能性があるので面倒だが入れておきたい。

まとめ

基本的にGravはデータベースにアクセスしないことと、基本テキストファイルで構成されているため、他の要素(画像や動画、外部サービスへのデータ読み込み等)が無い場合は高速で動作する。

wordpressでメインのサイトを運営しながら、別で大規模にならない程度で、何かしらの記事を書いてサイトを作りたいという場合、導入への条件がPHPが動作して.htaccessが利用でき、容量も大きければ尚良しと言うぐらいでかなり低いため、利用する価値はあると思う。

しかし導入さえできたら、その後やる事はwordpressと変わらないが、無駄に凝ってあれしたいこれしたいという場合は、多機能でプラグインも充実し、かつ日本語での説明や利用者が多いという点からもwordpressの方が利便性は良い。

結局の所、どういう目的でどういうサイトを作りたいかを初めに考えて、どのCMSを利用するかがポイントになる。簡単に言えば、野菜の皮を剥く時に包丁を使うかピーラーでやるかのようなものだ。

サイトを見ている人は、下準備できた野菜があればよいわけでそれが何で調理されたのかは問題ではない。

あまり日本語での説明は多くはないが、日本でも気軽に使えるCMSとして利用者が増えればより日本語での利用が便利になっていくだろうから、興味がある人は一度試してもらいたいと思う。

リンク: Grav公式(英語)
リンク: 俺にはまだ二次元がある。
参考: PHP製CMS Gravのインストール | Qiita

スポンサーリンク

シェアする

フォローする