Grav - Variables del tema

En este capítulo, entendamos Theme Variablesen Grav. Se accede a los objetos y variables desde las plantillas twig mientras diseña su tema y estos objetos y variables son leídos y manipulados por Twig Templating Framework.

Objetos centrales

La plantilla Twig tiene muchos core objects; cada objeto tiene un conjunto de variables y functions.

La siguiente tabla muestra variables con una breve descripción.

No Señor. Variable y descripción
1

{{ base_dir }}

Podemos obtener el directorio de archivos base de las instalaciones de Grav usando esta variable.

2

{{ base_url }}

Se puede acceder a la URL base del sitio de Grav mediante esta variable.

3

{{ base_url_relative }}

Devuelve la ruta relativa de la URL base al sitio de Grav.

4

{{ base_url_absolute }}

Devuelve la ruta absoluta de la URL base al sitio de Grav.

5

{{ theme_dir }}

Se utiliza para devolver la carpeta del directorio de archivos del tema actual.

6

{{ theme_url }}

Se utiliza para devolver la URL relativa del tema actual.

objeto de configuración

En configuration.yaml archivo, el objeto de configuración está configurado para acceder a cualquier ajuste de configuración de Grav.

{{ config.pages.theme }}

Devolverá el tema configurado actualmente.

objeto del sitio

Proporciona un alias a config.site objeto, que representa las configuraciones establecidas en el site.yaml archivo.

objeto de hojas de estilo

Estos objetos proporcionan una matriz para que se almacenen los activos de la hoja de estilo CSS, que se puede enlazar para agregar CSS a las plantillas.

objeto de scripts

Estos objetos proporcionan una matriz que consta de activos de JavaScript, que se repiten y se añaden JavaScripts a las plantillas.

objeto de página

Dado que la estructura del Grav se define en pages/ carpeta, la page objectes responsable de representar cada página. lospage object contiene toda la información sobre la página en la que está trabajando actualmente.

La siguiente tabla muestra los métodos del objeto de página.

No Señor. Método y descripción Ejemplo
1

summary([size])

Ofrece una idea general del contenido de la página con el tamaño especificado proporcionado como parámetro.

Si no se especifica el tamaño, el valor se obtiene de summary.size variable en system/config/site.yaml archivo.

También puede delimitar ===en su contenido. El contenido antes del delimitador se utilizará como resumen.

{{ page.summary }}

O

{{ page.summary(80) }}
2

content()

Se utiliza para obtener todo el contenido HTML de la página.

{{ page.content }}
3

headers()

Devuelve los encabezados de página definidos en la portada de YAML de la página.

title: About Us
author: Johnson
Se puede acceder a los encabezados anteriores como:
The author of this page is:  {{ page.header.author }}
4

media()

Se utiliza para acceder a todos los archivos multimedia, como imágenes, videos y otros archivos. Devolverá una matriz que contiene todos los medios asociados con una 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()

Está configurado para devolver el título de la página que se define en los encabezados YAML de la página.

title: My Page
6

menu()

El valor de la menuSe devuelve la variable que se especifica en los encabezados YAML de la página. Si eltitle variable no está configurada, entonces será predeterminada title.

title: My Blog
menu: my blog page
7

visible()

Se utiliza para configurar la visibilidad de la página. Por lo general, las páginas con un valor numérico seguido de un punto (es decir, 01.foldername) se muestran en el menú y el nombre de la carpeta que no contiene un valor numérico (es decir, el nombre de la carpeta) no está visible. Podemos anularlo en el encabezado de la página.

title: About Us
visible: true
8

routable()

Al usar esto, podemos determinar si una página está routable o not routablelo que significa que si puede recibir contenido mientras apunta su navegador a la página. Las páginas que no son enrutables se pueden utilizar en complementos, plantillas, etc., y no se puede acceder a estas páginas directamente. Esto se establece en los encabezados de las páginas.

title: My Page
routable: true
9

slug()

Al usar esta variable, podemos obtener el nombre directo que se muestra en la URL de la página.

my-page
10

url([include_host = false])

Se utiliza para devolver la URL de la página.

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

O

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

route()

Se utiliza para devolver el enrutamiento interno de la página.

12

home()

Con esta variable puede determinar si la página está configurada como homepágina o no. Esto devuelve verdadero cuando una página está configurada como página de inicio y falso cuando no está configurada. Puede encontrar esta configuración ensystem.yaml archivo.

13

root()

Determina si la página actual es la página raíz de la jerarquía o no. Vuelvetrue si es una página raíz o false si no es la página raíz.

14

active()

Puede determinar si el navegador está accediendo a la página actual utilizando esta variable. Vuelvetrue si el navegador accede a esta página o false si no lo es.

15

modular()

Al usar esta variable, podemos determinar si esta página es modular o no. Si esta es una página modular, regresatrue y false si no lo es.

dieciséis

activeChild()

Esta variable puede determinar si la URL de este URI tiene la URL de la página activa; o, en palabras simples, la URL de esta página en la URL actual. Esto es muy útil cuando está trabajando en navegaciones y desea saber si las páginas están iterando sobre la misma página principal.

17

find(url)

Según lo especificado por la URL de la ruta, esta variable devuelve el objeto de página.

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

collection()

Esta variable se utiliza para devolver el grupo de páginas para un contexto determinado por los encabezados de las páginas de la colección.

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

isFirst()

Si la página actual es la primera de su página hermana, entonces regresa true más regresa false.

20

isLast()

Si la página actual es la última de su página hermana, entonces regresa true más regresa false.

21

nextSibling()

Con referencia a la posición actual, devuelve la siguiente página hermana de la matriz.

22

prevSibling()

Con referencia a la posición actual, devuelve la página anterior del hermano de la matriz.

23

children()

Como se define en la estructura de contenido de las páginas, esta variable devuelve la matriz de páginas secundarias.

24

orderBy()

Este método devuelve el tipo de orden de los niños ordenados. Los valores que pueden incluirse sondefault, title, date y folder y estos valores configurados en los encabezados de página.

25

orderDir()

Este método devuelve la dirección de orden de las páginas secundarias ordenadas. Y los valores pueden serasc(ascendente) o desc(descending). Por lo general, estos valores se configuran en encabezados de página.

26

orderManual()

Este método devuelve una matriz que consta de un orden de página manual y este orden será para cualquier hijo de la página. Este valor se establecerá normalmente en los encabezados de las páginas.

27

maxCount()

Esta variable indica como máximo cuántas páginas secundarias se pueden devolver. Normalmente, el valor se especifica en los encabezados de las páginas.

28

children.count()

Esta variable devuelve cuántas páginas secundarias hay para una página.

29

children.current()

Esta variable devolverá el elemento secundario actual.

30

children.next()

Esto devolverá el siguiente elemento secundario de una matriz de páginas secundarias.

31

children.prev()

Esto devolverá el elemento secundario anterior de una matriz de páginas secundarias.

32

children.nth(position)

Esto devolverá la posición del niño en la matriz de niños.

33

parent()

En una estructura de árbol anidada, cuando desee volver a navegar hasta la página principal, puede utilizar esta variable. Devolverá el objeto de la página principal de la página actual.

34

isPage()

Al usar esta variable, puede determinar si esta página tiene un .md archivo o es solo una carpeta para enrutar.

35

isDir()

Al usar esta variable, puede determinar si la página actual es solo una carpeta para enrutamiento. Vuelvetrue o false basado en él.

36

id()

Esto devolverá una identificación única para la página.

37

modified()

Devuelve la marca de tiempo de la última modificación de la página.

38

date()

Este método devuelve la fecha y hora de la página. Por lo general, esto se configura en encabezados que representan la fecha de la página o publicación. Si no se proporciona ningún valor de forma predeterminada, se utiliza la marca de tiempo modificada.

39

filePath()

Al usar esto, puede obtener la ruta completa del archivo de la página.

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

filePathClean()

Esto devolverá la ruta relativa.

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

path()

Esto devolverá una ruta completa al directorio en el que está presente la página actual.

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

folder()

Esto devolverá el nombre de la carpeta de la página.

43

taxonomy()

Esto devolverá una matriz de taxonomía que está conectada con la página.

objeto de páginas

El objeto de páginas se representa como un árbol anidado de objetos de página. Este árbol anidado es muy útil al crearnavigations, sitemap o finding a particular page.

método de los niños

Esto devuelve una matriz de objetos de página que consta de páginas secundarias. El objeto de página con una estructura en forma de árbol se puede iterar sobre cada página de la carpeta.

Para obtener las páginas de nivel superior para el menú, use el siguiente código.

<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

Se puede acceder a la parte del URI actual mediante varios métodos del objeto URI.

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

La siguiente tabla muestra los métodos del objeto Uri.

No Señor. Método y descripción Ejemplo
1

path()

Se puede acceder a la parte de la URL actual mediante este método.

uri.path = /section/category/page
2

paths()

La matriz de elementos de la ruta se devuelve mediante este método.

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

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

Este método devuelve la ruta con una URL absoluta o relativa.

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

O,

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

params()

Esto devolverá la parte del parámetro en la URL.

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

param(id)

Esto devolverá el valor del param.

uri.param('param1') = foo
6

query()

Se puede acceder a la parte de consulta de la URL mediante este método.

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

query(id)

Con esto, puede acceder al elemento de consulta específico.

uri.query('query1') = bar
8

url([include_host = true])

Esto devuelve la URL completa que puede contener o no un host.

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

extension()

Esto devolverá la extensión o, si no se proporciona, devolverá el html.

uri.extension = json)
10

host()

Esto devuelve el host de la URL.

uri.host = mysite.com
11

base()

Esto devolverá la parte base de la URL.

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

rootUrl([include_host = true])

Esto devolverá la URL raíz de la instancia de Grav.

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

referrer()

Este método devuelve la información de referencia de la página.

objeto de encabezado

Es una alternativa para page.header()de la página original. Es más apropiado utilizar el encabezado de página original cuando recorre las páginas secundarias.

objeto de contenido

Es una alternativa para page.content() de la página original.

objeto de taxonomía

Toda la información de taxonomía del sitio está contenida en el objeto de taxonomía global.

objeto del navegador

Grav determina de forma programática la plataforma, el navegador y la versión del usuario mediante el soporte integrado.

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

Agregar variables personalizadas

Las variables personalizadas se agregan de varias formas. Si está utilizando una variable para todo el sitio, colóquela enuser/config/site.yaml archivo y puede acceder a él como se muestra a continuación.

{{ site.my_variable }}

Si la variable es solo para una página en particular, puede agregarla en YAML y acceder a ella usando el page.header objeto.

For example -

title: My Page
author: John

Se puede acceder al nombre del autor como -

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

Agregar objetos personalizados

Al utilizar complementos, puede agregar objetos personalizados al objeto Twig. Este es un tema avanzado y veremos más información en el capítulo de complementos .