Grav - Páginas

En este capítulo, estudiemos sobre Grav Pages. Las páginas se pueden definir como bloques de construcción del sitio. Las páginas combinan contenidos y navegaciones; esto facilita el trabajo incluso para los usuarios sin experiencia.

Para empezar, háganos saber cómo crear una página simple. Todo el contenido del usuario se almacenará enuser/pages/carpeta. Solo habrá una carpeta llamada01.home. La parte numérica de la carpeta es opcional; expresa el orden de sus páginas (por ejemplo, 01 vendrá antes de 02) e informa explícitamente a Grav que esta página debe estar visible en el menú.

Veamos ahora cómo crear una nueva página.

Step 1 - Crea una carpeta debajo /user/pages/; por ejemplo, 02.about como se muestra en la siguiente captura de pantalla.

Step 2 - Crea un archivo llamado default.md dentro del recién creado 02.about carpeta con el siguiente contenido.

---
title: About Us
---

# About Us Page!

This is the body of **about us page**.

El código anterior usa algunos Markdownla sintaxis se explica brevemente a continuación. Puedes estudiar en detalle sobreMarkdownen el capítulo de Markdown .

  • El contenido entre los indicadores --- son los Page Headers.

  • # o hashes sintaxis en Markdown indica un título que se convertirá en <h1> encabezado en HTML.

  • ** los marcadores indican texto en negrita o <b> en HTML.

Step 3 - Vuelva a cargar su navegador y podrá ver una nueva página en el menú como se muestra en la siguiente captura de pantalla.

Tipos de página

Grav Pages admite 3 tipos de páginas:

  • Página estándar.
  • Página de listado.
  • Página modular.

Página estándar

Las páginas estándar son el tipo más básico de páginas, como publicaciones de blog, formularios de contacto, páginas de error, etc. De forma predeterminada, una página se considera una página estándar. Una página estándar le da la bienvenida tan pronto como descargue e instale el paquete Base Grav. Verá la siguiente página cuando instale el paquete Base Grav.

Página de listado

La página de listado es una extensión de una página estándar que tiene una referencia a una colección de páginas. La forma más sencilla de configurar la página de la lista es crear páginas secundarias debajo de la página de la lista. Una página de lista de blogs es un buen ejemplo de esto.

Se puede encontrar un ejemplo de Esqueleto de blog con página de listado en Descargas de Grav . En la siguiente captura de pantalla se muestra un ejemplo.

Página modular

La página modular es una forma de página de listado que crea una sola página a partir de sus páginas secundarias. Esto nos permite crear diseños de una página muy complejos a partir de páginas de contenido modular más pequeñas. Esto se puede lograr creando la página modular a partir de varias carpetas modulares que se encuentran en la carpeta principal de la página.

Se puede encontrar un ejemplo de esqueleto de una página usando una página modular en las descargas de Grav . En la siguiente captura de pantalla se muestra un ejemplo.

Carpetas

los /user/pagesLa carpeta contendrá el contenido de sus respectivas páginas. Las carpetas dentro del/user/pagesGrav las trata automáticamente como menús y se utilizan para realizar pedidos. Por ejemplo, el01.homeLa carpeta se tratará como inicio. El pedido también debe mantenerse, es decir, 01.home vendrá antes de 02. about.

Debe proporcionar un punto de entrada para que especifique el navegador a dónde ir cuando apunte el navegador a la raíz de su sitio. Por ejemplo, si ingresa http://mysite.com en su navegador, Grav espera un aliashome/ de forma predeterminada, pero puede anular la ubicación de casa cambiando el home.alias opción en el archivo de configuración de Grav.

Guión bajo (_) antes de que el nombre de la carpeta se identifique como Modular folders, que es un tipo de carpeta especial que está diseñado para usarse solo junto con contenido modular. Por ejemplo, para la carpeta comopages/02.about, slug por defecto abouty la URL será http://mysite.com/about.

Si el nombre de la carpeta no tiene como prefijo números, esa página se considera invisible y no se mostrará en la navegación. Por ejemplo, el ifuser/pages/ tiene /contactcarpeta, no se mostrará en la navegación. Esto se puede anular en la propia página dentro de la sección del encabezado estableciendo visible en verdadero como se muestra a continuación para que sea visible en la navegación.

---
title: contact
visible: true
---

Por defecto, una página es visible en la navegación si las carpetas circundantes tienen prefijos numéricos. Los valores válidos para configurar la visibilidad son true o false.

Ordenar

Hay muchas formas de controlar el orden de la carpeta, una de las más importantes es configurar content.order.byde los ajustes de configuración de la página. Las opciones se enumeran a continuación.

  • default - El sistema de archivos se puede utilizar para realizar pedidos, es decir, 01.home antes de 02.about.

  • title - El título se puede utilizar para el pedido que se define en cada página.

  • date - El pedido se puede basar en la fecha que se define en cada página.

  • folder - Se eliminará el nombre de la carpeta que consta de cualquier prefijo numérico, por ejemplo, 01..

  • basename - El orden se basa en la carpeta alfabética sin orden numérico.

  • modified - También se puede utilizar la marca de tiempo modificada de la página.

  • header.x - Cualquiera de los campos de encabezado de página se puede utilizar para realizar pedidos.

  • manual - Mediante el uso de la variable order_manual se pueden realizar pedidos.

  • random - También se puede aleatorizar su pedido.

El orden manual se define específicamente proporcionando una lista de opciones al content.order.customajuste de configuración. Puede configurar elpages.order.dir y el pages.order.by opciones para anular el comportamiento predeterminado en el archivo de configuración del sistema Grav.

Archivo de página

La página dentro de la carpeta de la página debe crearse como .mdarchivo, es decir, archivo con formato Markdown; es una rebaja con la materia delantera de YAML. losdefaultserá el nombre estándar de la plantilla principal y puede darle cualquier nombre. A continuación se muestra un ejemplo de una página simple:

---
title: Title of the page
taxonomy:
   category: blog page
---
# Title of the page

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque porttitor eu
felis sed ornare. Sed a mauris venenatis, pulvinar velit vel, dictum enim. Phasellus
ac rutrum velit. **Nunc lorem** purus, hendrerit sit amet augue aliquet, iaculis
ultricies nisl. Suspendisse tincidunt euismod risus. Nunc a accumsan purus.

El contenido entre los marcadores --- se conoce como el material frontal YAML y este material frontal YAML consta de configuraciones básicas de YAML. En el ejemplo anterior, establecemos el título y la taxonomía de la página del blog. La sección después del par de marcadores --- es el contenido real que vemos en nuestro sitio.

Tamaño de resumen y separador

El tamaño predeterminado del resumen se puede configurar en site.yaml utilizado a través de page.summary(). Esto es útil para blogs donde solo se necesita la información resumida y no el contenido de la página completa. Puedes usar elmanual summary separator también conocido como summary delimiter: === y asegúrese de poner esto en su contenido con líneas en blanco arriba y abajo, como se muestra a continuación.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.

===

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
est laborum."

El texto sobre el separador se utilizará cuando se haga referencia a él page.summary() y el contenido completo cuando se hace referencia a él page.content().

Encontrar otras páginas

Grav tiene una función llamada find() método para buscar otra página y realizar acciones en esa página.

Por ejemplo, si desea enumerar toda la ubicación de la empresa en una página en particular, use la siguiente regla de descuento:

# Locations 
<ul>
   {% for loc in page.find('/locations').children if loc != page %}
      <li><a href="{{loc.url}}">{{ loc.title }}</a></li>
   {% endfor %}
</ul>