Grav 概要20250921

提供: UselessNotes
ナビゲーションに移動検索に移動

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 ← エントリーポイント

---

      1. よく使うプラグイン

私の場合は、最初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 %}`

`

` `

テンプレート:Page.content

`

 `{# Taxonomy List の表示 #}`
 `{% for taxonomy, items in taxonomylist %}`

`

` `

`

 `{% 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`を指定できます。

---