メニュー

テーマ設定

Grav では、 Twig や PHP ファイルから、テーマ設定やブループリント(設計図)情報へ簡単にアクセスできます。

ブループリント情報へのアクセス

現在有効なテーマの blueprints.yaml ファイルの情報は、theme オブジェクトにあります。
具体例として、次のような blueprins.yaml ファイルを使いましょう:

name: Antimatter
slug: antimatter
type: theme
version: 1.7.0
description: "Antimatter is the default theme included with **Grav**"
icon: empire
author:
  name: Team Grav
  email: devs@getgrav.org
  url: https://getgrav.org
homepage: https://github.com/getgrav/grav-theme-antimatter
demo: http://demo.getgrav.org/blog-skeleton
keywords: antimatter, theme, core, modern, fast, responsive, html5, css3
bugs: https://github.com/getgrav/grav-theme-antimatter/issues
license: MIT

これらの情報には、標準的な ドット構文 を使い、 grav.theme からアクセス可能です。

Author Email: {{ grav.theme.author.email }}
Theme License: {{ grav.theme.license }}

プラグインからは、同じ情報に PHP 構文を使ってアクセスできます:

$theme_author_email = $this->grav['theme']['author']['email'];
$theme_license = $this->grav['theme']['license'];

テーマ設定へのアクセス

テーマには、設定ファイルもあります。
テーマの設定ファイルは、 <テーマ名>.yaml というファイルです。
デフォルトでは、このファイルは、テーマのルートフォルダ(user/themes/<テーマ名>/)にあります。

テーマのデフォルトの YAML ファイルを変更するのは、強く 非推奨ですので、その代わり、user/config/themes フォルダの設定で上書きしてください。
これにより、テーマのオリジナルの設定が残り、変更部分に素早く対応できたり、必要な場合はもとに戻すこともできます。

たとえば、 Antimatter テーマについて検討してみましょう。
デフォルトでは、 antimatter.yaml ファイルが、テーマのルートフォルダにあります。
この設定ファイルは、次のようになっています:

enabled: true
color: blue

これは、シンプルなファイルですが、同時に、テーマで設定できるものが何なのか知ることができます。
これらの設定を、新しいものに上書きしてみましょう。

user/config/themes/antimatter.yaml に、ファイルを作成して下さい。そして次のように入力してください。

enabled は、ここでは繰り返さないことに注意してください。設定ファイルが、単純に置き換えられるのではなく、マージされるとすれば、それは明示されていたほうが良いです。

color: red
info: Grav is awesome!

そして、テーマテンプレート中、grav.theme.config オブジェクトを使って、これらの変数にアクセスできます:

<h1 style="color:{{ grav.theme.config.color|e }}">{{ grav.theme.config.info|e }}</h1>

これは、次のようにレンダリングされます:

Grav is awesome!

PHP では、現在のテーマの設定は、次のようにアクセス可能です:

$color = $this->grav['theme']->config()['color'];
$info = $this->grav['theme']->config()['info'];

シンプルですね!
テーマの設定は無限です。
好きなように使ってください! :)

その他の注意事項

次のような別名(エイリアス)も動きます:

Theme Color Option: {{ config.theme.color_option|e }}
   or
Theme Color Option: {{ theme_var(color_option)|e }}
   or
Theme Color Option: {{ grav.themes.antimatter.color_option|e }} [AVOID!]

上記のような grav.themes.<テーマ名> は、サポートされてはいるものの、適切に継承できなくなるので、使わないほうが良いです