Grav - Variáveis ​​do Tema

Neste capítulo, vamos entender Theme Variablesem Grav. Objetos e variáveis ​​são acessados ​​a partir de modelos de twig ao projetar seu tema e esses objetos e variáveis ​​são lidos e manipulados pelo Twig Templating Framework.

Objetos Centrais

O modelo Twig tem muitos core objects; cada objeto tem um conjunto de variables e functions.

A tabela a seguir mostra as variáveis ​​com uma breve descrição.

Sr. Não. Variável e Descrição
1

{{ base_dir }}

Podemos obter o diretório do arquivo base das instalações do Grav usando esta variável.

2

{{ base_url }}

A url base do site Grav pode ser acessada usando esta variável.

3

{{ base_url_relative }}

Ele retorna o caminho relativo da url base para o site Grav.

4

{{ base_url_absolute }}

Ele retorna o caminho absoluto da url base para o site Grav.

5

{{ theme_dir }}

É usado para retornar a pasta do diretório de arquivos do tema atual.

6

{{ theme_url }}

É usado para retornar a URL relativa do tema atual.

objeto de configuração

Dentro configuration.yaml arquivo, o objeto de configuração é definido para acessar qualquer definição de configuração Grav.

{{ config.pages.theme }}

Ele retornará o tema atualmente configurado.

objeto do site

Fornece um alias para config.site objeto, representando as configurações definidas no site.yaml Arquivo.

objeto de folhas de estilo

Esses objetos fornecem uma matriz para os ativos da folha de estilo CSS serem armazenados, que podem ser repetidos para adicionar CSS aos modelos.

objeto de scripts

Esses objetos fornecem uma matriz que consiste em ativos JavaScript, que são repetidos e JavaScripts são adicionados aos modelos.

objeto de página

Uma vez que a estrutura do Grav é definida em pages/ pasta, o page objecté responsável por representar cada página. opage object contém todas as informações sobre a página na qual você está trabalhando no momento.

A tabela a seguir mostra os métodos do objeto de página.

Sr. Não. Método e Descrição Exemplo
1

summary([size])

Ele fornece uma ideia geral do conteúdo da página com o tamanho especificado fornecido como parâmetro.

Se o tamanho não for especificado, o valor será obtido de summary.size variável em system/config/site.yaml Arquivo.

Você também pode delimitar ===em seu conteúdo. O conteúdo antes do delimitador será usado para resumo.

{{ page.summary }}

Ou

{{ page.summary(80) }}
2

content()

É usado para obter todo o conteúdo HTML da página.

{{ page.content }}
3

headers()

Ele retorna os cabeçalhos de página definidos na primeira página YAML da página.

title: About Us
author: Johnson
Os cabeçalhos acima podem ser acessados ​​como:
The author of this page is:  {{ page.header.author }}
4

media()

Ele é usado para acessar todos os arquivos de mídia, como imagens, vídeos e outros arquivos. Ele retornará um array contendo todas as mídias associadas a uma página.

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

title()

Ele é configurado para retornar o título da página que é definido nos cabeçalhos YAML da página.

title: My Page
6

menu()

O valor do menua variável é retornada, a qual é especificada nos cabeçalhos YAML da página. Se otitle variável não está definida, o padrão será title.

title: My Blog
menu: my blog page
7

visible()

É usado para definir a visibilidade da página. Normalmente, as páginas com valor numérico seguido por ponto (ou seja, 01.foldername) são exibidas no menu e o nome da pasta que não contém valor numérico (ou seja, nome da pasta) não são visíveis. Podemos substituí-lo no cabeçalho da página.

title: About Us
visible: true
8

routable()

Usando isso, podemos determinar se uma página é routable ou not routableo que significa se você pode receber conteúdo de volta enquanto aponta seu navegador para a página. As páginas que não são roteáveis ​​podem ser usadas em plug-ins, modelos, etc., e essas páginas não podem ser acessadas diretamente. Isso é definido nos cabeçalhos das páginas.

title: My Page
routable: true
9

slug()

Usando esta variável, podemos obter o nome direto conforme exibido no URL da página.

my-page
10

url([include_host = false])

É usado para retornar o URL da página

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

Ou

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

route()

É usado para retornar o roteamento interno da página.

12

home()

Usando esta variável, você pode determinar se a página está configurada como homepágina ou não. Isso retorna verdadeiro quando uma página é configurada como home page e falso quando não configurada. Você pode encontrar essa configuração emsystem.yaml Arquivo.

13

root()

Ele determina se a página atual é a página raiz da hierarquia ou não. Retornatrue se é uma página raiz ou false se não for página raiz.

14

active()

Você pode determinar se o navegador está acessando a página atual usando esta variável. Retornatrue se o navegador está acessando esta página ou false se não for.

15

modular()

Usando esta variável, podemos determinar se esta página é modular ou não. Se esta é uma página modular, ela retornatrue e false se não for.

16

activeChild()

Essa variável pode determinar se o URL desse URI tem o URL da página ativa; ou, em palavras simples, o URL desta página no URL atual. Isso é muito útil quando você está trabalhando em navegações e deseja saber se as páginas estão iterando na mesma página pai.

17

find(url)

Conforme especificado pelo URL da rota, o objeto da página é retornado por esta variável.

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

collection()

Esta variável é usada para retornar o grupo de páginas para um contexto conforme determinado pelos cabeçalhos da página da coleção.

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

isFirst()

Se a página atual for a primeira de sua página irmã, ela retornará true mais retorna false.

20

isLast()

Se a página atual for a última de sua página irmã, ela retornará true mais retorna false.

21

nextSibling()

Com referência à posição atual, ele retorna a próxima página irmã da matriz.

22

prevSibling()

Com referência à posição atual, ele retorna a página irmã anterior da matriz.

23

children()

Conforme definido na estrutura de conteúdo das páginas, a matriz de páginas filhas é retornada por esta variável.

24

orderBy()

O tipo de pedido dos filhos classificados é retornado por este método. Os valores que podem ser incluídos sãodefault, title, date e folder e esses valores configurados em cabeçalhos de página.

25

orderDir()

A direção da ordem das páginas filhas classificadas é retornada por este método. E os valores podem serasc(ascendente) ou desc(descending). Normalmente, esses valores são configurados em cabeçalhos de página.

26

orderManual()

Este método retorna uma matriz que consiste em ordenação de página manual e essa ordenação será para todos os filhos da página. Este valor será normalmente definido nos cabeçalhos das páginas.

27

maxCount()

Esta variável informa que, no máximo, quantas páginas filhas podem ser retornadas. Normalmente, o valor é especificado nos cabeçalhos das páginas.

28

children.count()

Esta variável retorna quantas páginas filhas existem para uma página.

29

children.current()

Esta variável retornará o item filho atual.

30

children.next()

Isso retornará o próximo item filho de uma matriz de páginas filho.

31

children.prev()

Isso retornará o item filho anterior de uma matriz de páginas filho.

32

children.nth(position)

Isso retornará a posição do filho na matriz de filhos.

33

parent()

Em uma estrutura de árvore aninhada, quando você deseja navegar de volta para a página pai, você pode usar esta variável. Ele retornará o objeto da página-pai para a página atual.

34

isPage()

Usando esta variável, você pode determinar se esta página tem um real .md arquivo ou é apenas uma pasta para roteamento.

35

isDir()

Usando esta variável, você pode determinar se a página atual é apenas uma pasta para roteamento. Retornatrue ou false com base nele.

36

id()

Isso retornará um id único para a página.

37

modified()

Ele retorna o carimbo de data / hora de quando a página foi modificada pela última vez.

38

date()

O carimbo de data e hora da página é retornado por este método. Normalmente, isso é configurado em cabeçalhos que representam a data da página ou postagem. Se nenhum valor for fornecido por padrão, o carimbo de data / hora modificado é usado.

39

filePath()

Usando isso, você pode obter o caminho completo do arquivo da página.

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

filePathClean()

Isso retornará o caminho relativo.

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

path()

Isso retornará um caminho completo para o diretório no qual a página atual está presente.

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

folder()

Isso retornará o nome da pasta da página.

43

taxonomy()

Isso retornará uma matriz de taxonomia que está conectada com a página.

objeto de páginas

O objeto Pages é representado como uma árvore aninhada de objetos de página. Esta árvore aninhada é muito útil ao criarnavigations, sitemap ou finding a particular page.

método infantil

Isso retorna uma matriz de objetos de página consistindo em páginas filhas. O objeto de página com uma estrutura semelhante a uma árvore pode ser iterado em todas as páginas da pasta.

Para obter as páginas de nível superior do menu, use o código a seguir.

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

objeto uri

A parte do URI atual pode ser acessada usando vários métodos do objeto Uri.

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

A tabela a seguir mostra os métodos do objeto Uri.

Sr. Não. Método e Descrição Exemplo
1

path()

A parte do url atual pode ser acessada usando este método.

uri.path = /section/category/page
2

paths()

A matriz de elementos de caminho é retornada usando este método.

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

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

Este método retorna rota com URL absoluto ou relativo.

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

Ou,

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

params()

Isso retornará a parte do parâmetro no URL.

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

param(id)

Isso retornará o valor do parâmetro.

uri.param('param1') = foo
6

query()

A parte da consulta do URL pode ser acessada usando este método.

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

query(id)

Usando isso, você pode acessar o item de consulta específico.

uri.query('query1') = bar
8

url([include_host = true])

Isso retorna o URL completo que pode ou não conter o host.

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

extension()

Isso retornará a extensão ou, se não for fornecida, retornará o html.

uri.extension = json)
10

host()

Isso retorna o host do URL.

uri.host = mysite.com
11

base()

Isso retornará a parte básica do URL.

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

rootUrl([include_host = true])

Isso retornará a URL raiz da instância Grav.

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

referrer()

As informações do referenciador da página são retornadas por este método.

objeto de cabeçalho

É uma alternativa para page.header()da página original. É mais apropriado usar o cabeçalho da página original ao percorrer as páginas filhas.

objeto de conteúdo

É uma alternativa para page.content() da página original.

objeto de taxonomia

Todas as informações de taxonomia do site estão contidas no objeto de taxonomia global.

objeto de navegador

Grav determina programaticamente a plataforma, o navegador e a versão do usuário usando o suporte integrado.

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

Adicionando Variáveis ​​Personalizadas

Variáveis ​​personalizadas são adicionadas de várias maneiras. Se você estiver usando uma variável para todo o site, coloque-a emuser/config/site.yaml arquivo e você pode acessá-lo conforme mostrado abaixo.

{{ site.my_variable }}

Se a variável for apenas para uma página específica, você pode adicioná-la no front-matter YAML e acessá-la usando o page.header objeto.

For example -

title: My Page
author: John

O nome do autor pode ser acessado como -

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

Adicionar objetos personalizados

Usando plug-ins, você pode adicionar objetos personalizados ao objeto Twig. Este é um tópico avançado e veremos mais informações no capítulo sobre plug - ins .