Grav 概要20250921
WordpressからJoomlaに、その後は最近までDrupalを使ってサイト運営
やっぱり結局、軽いのがいいとの結論から探してみて見つけました ChatGPTを元に加筆修正
---
Gravの主な特徴
- まずはデータベース不要(フラットファイル構造)なので_高速・軽量_ - Markdownでノート作成できる - Twigテンプレートエンジンを使っている - ただしテーマ毎にファイルが違うのでカスタマイズするとバージョン変わるごとに修正が必要 - YAMLによる設定管理 - CLIツールとWeb管理パネル(Admin Plugin)が使いやすい
---
私の場合
- 静的サイトジェネレーターのような運用がしたいけど、ある程度CMSの機能もほしい。程度で良い
- サイト規模がそこまで大きくない(中小規模)、個人的なサイト
---
ディレクトリ構成
~/var/www/grav <-DocmentsRoot
/grav ├── user/ │ ├── pages/ ← ページコンテンツ(.mdファイル) │ ├── themes/ ← 使用テーマ │ ├── plugins/ ← プラグイン │ └── config/ ← サイト設定(.yamlファイル) ├── system/ ← コアファイル ├── vendor/ ← Composer依存 ├── cache/ ← キャッシュ └── index.php ← エントリーポイント
---
- よく使うプラグイン
私の場合は、最初Grav本体のみインストールしたのよいが、管理画面どこ??
となるので、パッケージになったものを導入するのが常識的です。私はあわてて後からインストール
- `admin`:Web管理パネルを提供 - `form`:フォーム作成 - `email`:メール送信処理 - `login`:ユーザーログイン管理 - `language-selector`: 多言語切り替え
など
---
テンプレート
具体的にどのテンプレートにTwigコードを埋め込むかは、表示したい場所や目的によりますが、以下のようなページやファイルでテンプレートが使われます
**ページテンプレート**
ページのレイアウトを指定するために使うTwigテンプレートです。ページごとに特定のテンプレートを使用することができます。
例:
- ページの`frontmatter`(ページのメタ情報)で指定した`template`フィールドに対応するテンプレートファイルです。
title: 'Sample Page'
template: default
上記の例では、`default`というテンプレートが使用されます。この場合、`user/themes/your-theme/templates/default.html.twig`というテンプレートが使用されます。
もし、特定のタクソノミーリストを表示したいページにこのコードを埋め込みたい場合、そのページのテンプレート(`default.html.twig`や`blog.html.twig`など)を編集が必要
**テーマのテンプレートファイル**
Gravのテーマディレクトリ(`user/themes/your-theme/`)内にあるテンプレートファイルが、ページ表示に使われます。例えば、`default.html.twig`、`blog.html.twig`、`article.html.twig`などがテーマに含まれていることが一般的です。
例えば、**`default.html.twig`** にタクソノミーリストを表示させたい場合、そのテンプレートに直接Twigコードを埋め込みます。
`{# user/themes/your-theme/templates/default.html.twig #}` `{% block content %}`
`
` `
`
`{# Taxonomy List の表示 #}`
`{% for taxonomy, items in taxonomylist %}`
`
` `
- `
`{% for item in items %}`
`
- <a href="テンプレート:Item.url">テンプレート:Item.title</a> ` `{% endfor %}` `
`
`{% endfor %}`
`{% endblock %}`
このコードは、ページコンテンツの下に`taxonomylist`を表示します。`taxonomylist`は、設定したタクソノミー(カテゴリーやタグ)に基づいて、関連するページをリスト化します。
特定のページにカスタムテンプレートを使う場合
特定のページだけにカスタムテンプレートを適用したい場合、そのページの`frontmatter`で`template`を設定します。例えば、`taxonomy.html.twig`という特別なテンプレートを作成し、それを使いたい場合は、次のようにページの`frontmatter`で指定します。
title: 'Taxonomy List Page' template: taxonomy
この設定を行った場合、`user/themes/your-theme/templates/taxonomy.html.twig`というテンプレートが使用されます。このテンプレートに`taxonomylist`を表示するTwigコードを追加することができます。
管理パネルから表示するページ
もし管理パネル(Admin Plugin)を使っている場合、ページごとにどのテンプレートを使うかを選択できます。管理パネルでページを編集する際に、`Template`フィールドでどのテンプレートを使用するか選べます。これによって、特定のページで異なるテンプレートを使ってタクソノミーリストを表示できます。
---
まとめ
- **ページにリストを表示する場所**は、そのページに対応するテンプレートファイルです - `default.html.twig`や`blog.html.twig`など。
- もし特定のページでタクソノミーリストを表示したい場合、そのページに適用されるテンプレートファイルにTwigコードを埋め込む必要がある
- 特定のテンプレートを使いたい場合、ページの`frontmatter`で`template`を指定できます。
---