ブログとして使う

制限事項

Grav のブログには以下のような制限があります。

  • 毎回特定の記事の子ページとして item テンプレートを適用したページを作成する必要がある(ダッシュボードから7クリック)
  • 日時に応じたパス(/2023/02/10/abc/ など)を利用できない
  • ページ ID も利用できない
  • タイトルからのフォルダ名(URL)生成は日本語を含む非 ASCII 文字では利用できない
  • したがってそのブログ全体で衝突しない英数字のフォルダ名を毎回考えて手動で入力する必要がある

Skeleton について

Grav をブログとして使う場合は,基本的にテーマごと "Skeleton" として導入して,それを使い続けることになります。

Skeleton とは,テーマとプラグイン,そして Grav 自体をまとめたパッケージであり,使いたいテーマに最適化された環境をすぐに導入できます。

......と言うと聞こえがいいですが,特にブログとして使う場合,テーマを跨いだ互換性に問題があり,正常に機能させるにはテーマファイル以外の細かい設定やファイル追加が必要になるという問題に対応するための窮余の策という側面もあります。

TwentyFifteen テーマの Skeleton を導入する

この節の手順は,空のスペースに対してのものです。既に Grav がインストールされている環境に対しては実行しないでください。

Grav ではブログ機能はあまり重視されていないようで,Web UI だけでセットアップを完了させるのは難しいようです(Grav は CLI 前提のソフトウェアにプラグインとして Web UI を被せるつくりになっていることを思い出しましょう)。

一応マニュアルでも言及がありますが,ほとんど役には立ちません。

Build a Blog | Grav Documentation

さいわい設定済みの Skeleton が用意されていますので,これを使うのが簡単です。

ここでは,TwentyFifteen を使ってみたいと思います。TwentyFifteen は,WordPress をお使いの方ならわかるように,WordPress の 2015 年デフォルトテーマです。Grav 公式テーマのひとつに,その TwentyFifteen を Grav に移植したものがあります。

個人的に,TwentyFifteen は WordPress デフォルトテーマの中では一番よい(マシな?)ものだと思っています。それでも WordPress ではあまり使う機会はありませんが,あまり細かい設定はしたくない Grav に向いたテーマだと言えます。また,Grav のブログではテーマの変更が難しいですので,古典的で無難なデザインが一番です。もちろん,他にピンとくる Skeleton があれば,それを試してみてもよいでしょう。

話を戻しましょう。公式サイトの Skeleton 一覧から "TwentyFifteen Site" を探し,"Download (with admin)" をクリックしてダウンロードします。

Skeletons | Grav CMS

あとは,通常の導入と同様に,ファイルを解凍してアップロードします。

Grav を導入する

私が試した際には(TwentyFifteen 1.0.3),/user/accounts がないというエラーでアカウント作成画面が開きませんでした。

FTP クライアントで当該ディレクトリを作成すれば解決します。パーミッションは 700 にしておきましょう。

ブログのタイトルが「My Blog」になっているので,これを自分のサイトのものに変更します。ついでにさくっと日本語化しておきましょう。

以下の手順を実行する前に,サイトの言語・ロケール設定が完了しているかどうか確認してください。

日本語化にはファイルの編集が必要です。とはいえ,コピペするだけなので誰でもなんとかなるかと思います。FTP で "(Grav のディレクトリ)/user/themes/twentyfifteen" にアクセスして,languages.yaml を探してエディタで開きます。FTP クライアントによって,直接編集用に開ける場合と一回ダウンロードしてから再びアップロードする必要がある場合があります。

開けたら,以下を最後尾にコピペし,適宜編集したうえで保存・アップロードします。

ja:
  SITE:
    TITLE: 私のブログ
    DESCRIPTION: ブログの説明
    COPYRIGHT: © Copyright %s あなたの会社
  SUBSCRIBE: 購読
  MONTHS_OF_THE_YEAR: [1 月, 2 月, 3 月, 4 月, 5 月, 6 月, 7 月, 8 月, 9 月, 10 月, 11 月, 12 月]
  DAYS_OF_THE_WEEK: [月曜日, 火曜日, 水曜日, 木曜日, 金曜日, 土曜日, 日曜日]
  READ_MORE: 続きを読む...
  RANDOM_ARTICLE: ランダムな記事
  RELATED_POSTS: 関連記事
  ARCHIVES: アーカイブ
  POPULAR_TAGS: よく使われているタグ
  PUBLISHED_BY: 著者
  PREVIOUS: 前へ
  NEXT: 次へ
  PAGE: ページ

言語設定が適切であれば,これで日本語化できるはずです。

ブログ記事を投稿する

記事を書く」および「記事の管理」の応用ですので,そちらもあわせてご覧ください。

Grav のブログでまず重要なのは,ブログ記事一覧専用の template として blog があるということです。そしてその下に item という template の文書を追加することで,item の一覧が blog で表示されるようになります。

不正確な表現ではありますが,WordPress での固定ページ (page) と投稿 (post) に引き寄せて言うと,前者に相当するのが default, 後者に相当するのが item......と言うこともできるでしょう。blog は,文書の種類としては WordPress にはない概念です。

上の Skeleton では,blog として "Blog" という名前の記事があり,その下にそれぞれの名前を持つ item のサンプル記事がぶら下がっています。

とにかく,ブログの投稿には item template を指定する必要があること,blog templateの文書の下にブログ投稿を追加する必要があることに注意してください。これを忘れると,ブログ記事が表示されなかったり,表示の一部に不具合が出たりします。

また,URL のパスについて,日付や ID は使えないことにも注意が必要です。フォルダ名も日本語非対応なので,そのブログ全体で衝突しない英数字のフォルダ名を毎回考えて手動で入力する必要があるということです。

ブログ用のプラグイン

ブログとしての利用ではぜひ入れておきたいプラグインを紹介します。上記の Skeleton の導入ではすべてデフォルトで含まれています。

Pagenation

記事一覧ページなどでのページ分けを実現します。これは必須です。

Taxonomy List

タグやカテゴリ別の一覧を表示できるようにします。これも事実上必須でしょう。

Achives

更新月による記事一覧を表示できるようにします。特に理由がなければ入れておくべきです。

Feed

RSS フィードを提供します。利便性を考えると,できれば導入しておきたいところです。

SimpleSearch

検索機能を追加します。日本語でも利用できます。テーマによっては依存関係がありますが,無ければ省略可能です。ただし,利便性を考えるとあったほうがよいです。

Related Pages

関連記事を表示します。

ほか,固定ページのサイトと同様に,Sitemap, Custom CSS, Auto Date は導入しておくとよいかもしれません。