Grav-テーマ変数

この章では、理解しましょう Theme Variablesグラブで。オブジェクトと変数は、テーマの設計中にTwigテンプレートからアクセスされ、これらのオブジェクトと変数はTwigテンプレートフレームワークによって読み取られて操作されます。

コアオブジェクト

Twigテンプレートには多くの core objects; 各オブジェクトには、 variables そして functions

次の表に、変数と簡単な説明を示します。

シニア番号 変数と説明
1

{{ base_dir }}

この変数を使用して、Gravインストールのベースファイルディレクトリを取得できます。

2

{{ base_url }}

GravサイトのベースURLには、この変数を使用してアクセスできます。

3

{{ base_url_relative }}

ベースURLからGravサイトへの相対パスを返します。

4

{{ base_url_absolute }}

ベースURLからGravサイトへの絶対パスを返します。

5

{{ theme_dir }}

現在のテーマのファイルディレクトリフォルダを返すために使用されます。

6

{{ theme_url }}

現在のテーマの相対URLを返すために使用されます。

構成オブジェクト

configuration.yaml ファイルの場合、構成オブジェクトは任意のGrav構成設定にアクセスするように設定されます。

{{ config.pages.theme }}

現在設定されているテーマが返されます。

サイトオブジェクト

エイリアスを提供します config.site で設定された構成を表すオブジェクト site.yaml ファイル。

スタイルシートオブジェクト

これらのオブジェクトは、CSSスタイルシートアセットを格納するための配列を提供します。これをループして、CSSをテンプレートに追加できます。

スクリプトオブジェクト

これらのオブジェクトは、JavaScriptアセットで構成される配列を提供します。この配列はループされ、JavaScriptがテンプレートに追加されます。

ページオブジェクト

Gravの構造はで定義されているので pages/ フォルダ、 page object各ページを表す責任があります。ザ・page object 現在作業しているページに関するすべての情報が含まれています。

次の表に、ページオブジェクトのメソッドを示します。

シニア番号 方法と説明
1

summary([size])

これは、パラメーターとして指定されたサイズでページコンテンツの要点を示します。

サイズが指定されていない場合、値はから取得されます summary.size の変数 system/config/site.yaml ファイル。

区切り文字も使用できます ===あなたのコンテンツで。区切り文字の前の内容は要約に使用されます。

{{ page.summary }}

または

{{ page.summary(80) }}
2

content()

これは、ページのHTMLコンテンツ全体を取得するために使用されます。

{{ page.content }}
3

headers()

ページのYAMLフロントマターで定義されたページヘッダーを返します。

title: About Us
author: Johnson
上記のヘッダーには、次の方法でアクセスできます。
The author of this page is:  {{ page.header.author }}
4

media()

画像、ビデオ、その他のファイルなど、すべてのメディアファイルにアクセスするために使用されます。ページに関連付けられているすべてのメディアを含む配列を返します。

{% set first_image = page.media|first %}
{% set my_pdf = page.media['myfile.pdf'] %}
{% for image in page.media.images  %}
   {{ image.html }}
{% endfor %}
5

title()

ページのYAMLヘッダーで定義されているページのタイトルを返すように設定されています。

title: My Page
6

menu()

の値 menuページのYAMLヘッダーで指定されている変数が返されます。の場合title 変数が設定されていない場合、デフォルトで title

title: My Blog
menu: my blog page
7

visible()

ページの可視性を設定するために使用されます。通常、数値の後にピリオドが続くページ(01.foldernameなど)がメニューに表示され、数値を含まないフォルダー名(foldernameなど)は表示されません。ページヘッダーで上書きできます。

title: About Us
visible: true
8

routable()

これを使用することにより、ページが routable または not routableつまり、ブラウザをページに向けているときにコンテンツを受信できるかどうかを意味します。ルーティングできないページはプラグインやテンプレートなどで使用でき、これらのページに直接アクセスすることはできません。これはページヘッダーで設定されます。

title: My Page
routable: true
9

slug()

この変数を使用することで、ページのURLに表示されている直接の名前を取得できます。

my-page
10

url([include_host = false])

ページのURLを返すために使用されます

{{ page.url }}  { # could return /myfolder/mypage #}

または

{{ page.url(true) }}  {# could return http: //mysite.com/ myfolder/mypage #}
11

route()

これは、ページの内部ルーティングを返すために使用されます。

12

home()

この変数を使用して、ページが次のように構成されているかどうかを判別できます。 homeページかどうか。これは、ページがホームページとして構成されている場合はtrueを返し、構成されていない場合はfalseを返します。この設定はで見つけることができますsystem.yaml ファイル。

13

root()

現在のページが階層のルートページであるかどうかを判別します。戻りますtrue ルートページの場合または false ルートページでない場合。

14

active()

この変数を使用して、ブラウザーが現在のページにアクセスしているかどうかを判別できます。戻りますtrue ブラウザがこのページにアクセスしている場合、または false そうでない場合。

15

modular()

この変数を使用することで、このページがモジュール式であるかどうかを判断できます。これがモジュラーページの場合は、true そして false そうでない場合。

16

activeChild()

この変数は、このURIのURLにアクティブなページのURLがあるかどうかを判別できます。または、簡単に言えば、現在のURLのこのページのURL。これは、ナビゲーションで作業していて、ページが同じ親ページで繰り返されているかどうかを知りたい場合に非常に便利です。

17

find(url)

ルートURLで指定されているように、ページオブジェクトはこの変数によって返されます。

{% include 'modular/author-detail.html.twig' with {'page': page.find('/authors/ john-bloggs')} %}
18

collection()

この変数は、コレクションページヘッダーによって決定されたコンテキストのページのグループを返すために使用されます。

{% for child in page.collection %}
   {% include 'partials /blog_item.html.twig' with {'page':child, 'truncate':true} %}
{% endfor %}
19

isFirst()

現在のページがその兄弟ページの最初である場合、それは戻ります true それ以外の場合は false

20

isLast()

現在のページがその兄弟ページの最後である場合、それは戻ります true それ以外の場合は false

21

nextSibling()

現在の位置を参照して、配列から次の兄弟ページを返します。

22

prevSibling()

現在の位置を参照して、配列から前の兄弟ページを返します。

23

children()

ページコンテンツ構造で定義されているように、子ページの配列はこの変数によって返されます。

24

orderBy()

ソートされた子の注文タイプは、このメソッドによって返されます。含まれる可能性のある値は次のとおりです。defaulttitledate そして folder これらの値はページヘッダーで構成されます。

25

orderDir()

ソートされた子ページの順序方向は、このメソッドによって返されます。そして、値は次のいずれかになりますasc(昇順)または desc(descending)。通常、これらの値はページヘッダーで構成されます。

26

orderManual()

このメソッドは、手動のページ順序で構成される配列を返します。この順序は、ページのすべての子に適用されます。この値は通常、ページヘッダーに設定されます。

27

maxCount()

この変数は、最大でいくつの子ページを返すことができるかを示します。通常、値はページヘッダーで指定されます。

28

children.count()

この変数は、1ページにいくつの子ページがあるかを返します。

29

children.current()

この変数は、現在の子アイテムを返します。

30

children.next()

これにより、子ページの配列から次の子アイテムが返されます。

31

children.prev()

これにより、子ページの配列から前の子アイテムが返されます。

32

children.nth(position)

これにより、子の配列内の子の位置が返されます。

33

parent()

ネストされたツリー構造で、親ページに戻る場合は、この変数を使用できます。現在のページの親ページオブジェクトを返します。

34

isPage()

この変数を使用することで、このページに実際のページがあるかどうかを判断できます .md ファイルまたはそれはルーティングのための単なるフォルダです。

35

isDir()

この変数を使用することにより、現在のページがルーティング用のフォルダーのみであるかどうかを判別できます。戻りますtrue または false それに基づいて。

36

id()

これにより、ページの一意のIDが返されます。

37

modified()

ページが最後に変更されたときのタイムスタンプを返します。

38

date()

ページの日付タイムスタンプは、このメソッドによって返されます。通常、これはページまたは投稿の日付を表すヘッダーで構成されます。デフォルトで値が指定されていない場合は、変更されたタイムスタンプが使用されます。

39

filePath()

これを使用することにより、ページの完全なファイルパスを取得できます。

/Users/yourname/sites/ Grav/user/pages/ 01.home/default.md
40

filePathClean()

これにより、相対パスが返されます。

user/pages/ 01.home/default.md
41

path()

これにより、現在のページが存在するディレクトリへのフルパスが返されます。

/Users/yourname /sites/ Grav/user/pages /01.home
42

folder()

これにより、ページのフォルダ名が返されます。

43

taxonomy()

これにより、ページに関連する分類法の配列が返されます。

ページオブジェクト

Pagesオブジェクトは、ページオブジェクトのネストされたツリーとして表されます。このネストされたツリーは、作成時に非常に便利ですnavigations, sitemap または finding a particular page

子供の方法

これは、子ページで構成されるページオブジェクトの配列を返します。ツリーのような構造を持つページオブジェクトは、フォルダ内のすべてのページで繰り返すことができます。

メニューのトップレベルページを取得するには、次のコードを使用します。

<ul class = "navigation">
   {% for page in pages.children %}
      {% if page.visible %}
         <li><a href = "{{ page.url }}">{{ page.menu }}</a></li>
      {% endif %}
   {% endfor %}
</ul>

uriオブジェクト

現在のURIの一部には、Uriオブジェクトのいくつかのメソッドを使用してアクセスできます。

http://mysite.com/Grav/section/category/page.json/param1:foo/param2:bar/?query1 = baz&query2 = qux:

次の表に、URIオブジェクトのメソッドを示します。

シニア番号 方法と説明
1

path()

この方法を使用すると、現在のURLの一部にアクセスできます。

uri.path = /section/category/page
2

paths()

パス要素の配列は、このメソッドを使用して返されます。

uri.paths = [section, category, page])
3

route([absolute = false][, domain = false])

このメソッドは、絶対URLまたは相対URLのいずれかでルートを返します。

uri.route(true) = http://mysite.com/Grav/ section/category/page

または、

uri.route() = /section/category/page)
4

params()

これにより、URLのパラメータ部分が返されます。

uri.params = /param1:foo/param2:bar
5

param(id)

これにより、paramの値が返されます。

uri.param('param1') = foo
6

query()

この方法を使用すると、URLのクエリ部分にアクセスできます。

uri.query = query1=bar&query2=qux
7

query(id)

これを使用して、特定のクエリアイテムにアクセスできます。

uri.query('query1') = bar
8

url([include_host = true])

これにより、ホストが含まれる場合と含まれない場合がある完全なURLが返されます。

uri.url(false) = Grav/section/ category/page/param:foo?query = bar
9

extension()

これにより拡張子が返されます。指定されていない場合は、htmlが返されます。

uri.extension = json)
10

host()

これにより、URLのホストが返されます。

uri.host = mysite.com
11

base()

これにより、URLのベース部分が返されます。

uri.base = http://mysite.com
12

rootUrl([include_host = true])

これにより、GravインスタンスのルートURLが返されます。

uri.rootUrl() = http://mysite.com/Grav
13

referrer()

ページのリファラー情報は、このメソッドによって返されます。

ヘッダーオブジェクト

の代替です page.header()元のページの。子ページをループするときは、元のページヘッダーを使用する方が適切です。

コンテンツオブジェクト

の代替です page.content() 元のページの。

分類オブジェクト

サイトのすべての分類情報は、グローバル分類オブジェクトに含まれています。

ブラウザオブジェクト

Gravは、組み込みのサポートを使用して、プラットフォーム、ブラウザ、およびユーザーのバージョンをプログラムで決定します。

{{ browser.platform}}   # windows
{{ browser.browser}}    # chrome
{{ browser.version}}    # 24

カスタム変数の追加

カスタム変数はいくつかの方法で追加されます。サイト全体の変数を使用している場合は、user/config/site.yaml ファイルを作成すると、以下のようにアクセスできます。

{{ site.my_variable }}

変数が特定のページ専用の場合は、YAMLフロントマターに追加し、を使用してアクセスできます。 page.header オブジェクト。

For example

title: My Page
author: John

著者名は次のようにアクセスできます-

The author of this page is: {{ page.header.author }}

カスタムオブジェクトの追加

プラグインを使用すると、Twigオブジェクトにカスタムオブジェクトを追加できます。これは高度なトピックであり、プラグインの章で詳細を確認します。