Creo que para dar contexto al post, lo primero es recordar qué en Grav el contenido se crea (y almacena) en formato Markdown.

Luego, cuando llega el momento de mostrarlo, Grav une el contenido del archivo markdown con una plantilla de tu theme, logrando entonces que obtengas una página HTML enriquecida (según tu theme, claro).

Este tipo de soluciones funcionan muy bien para documentación. Allí, algo que se escriba en formato:

# Mi titulo 

Se verá impreso como:

<h1>Mi título</h1>

Y el navegador lo mostrará (más o menos) así:

¿Pero qué pasa cuando necesito darle más posibilidades de presentación al contenido?

Aquí Grav implementa un tipo de bloque de contenido llamado página Modular. Este tipo de página construye el contenido usando las subpáginas existentes.

Vamos con una prueba sencilla usando el backend (módulo Admin2) para crear contenido (aunque se puede hacer perfectamente con un editor de texto).

Vamos a crear nuestra página como de costumbre.

Pero vamos a evitar el comportamiento por defecto y en Page Template vamos a elegir “Modular”. Esto le dirá luego que el contenido se debe convertir a HTML de una forma diferente a lo primero que mostré, que es lo que hace la plantilla «Default».

Una vez creada, pasamos al editor.

Nótese que debajo del contenido tenemos una sección específica de este tipo de plantilla.
Si navego la página en el frontend, obtengo:

Lo cual es correcto, porque no hice nada aún con respecto a los módulos que llevará la página.

¿Qué pasa si escribo contenido en el cuerpo de la página modular?

No va a pasar nada. Este tipo de páginas funcionan como un contenedor que ordena y presenta lo que tengan las subpáginas o, mejor llamados, módulos.

Vamos por el primero.

Elegimos Add module y veremos una pantalla muy similar a la que vimos antes al momento de crear la página.

Pero veremos que las opciones de plantilla son diferentes.

¿De dónde salen esas opciones? Del theme que tenemos en uso.

En mi caso, tengo un theme llamado Blank que es una copia exacta (no un child theme) de Quark2.

Si miramos dentro del directorio «modular» del theme, vemos los templates.

Creo entonces mi primer componente, de tipo texto.

Agregamos contenido.

Luego repito y agrego otro contenido con la misma plantilla (con la imagen en otra orientación) para tener más componentes.

Ahora hagamos uso del componente Hero.

Y ahora nos toca volver al frontend, a mirar la página que llamé “Mi página modular” y que no mostraba el contenido de su propio body.

Aquí tenemos una página, construída a base de Markdown, usando componentes y ordenados de forman manual (hay opciones para hacerlo distinto, claro).

Como puede verse, esto abre un sin fin de posibilidades al momento de plantear una solución que me de flexibilidad, incluso si el contenido viene de Markdown.

Unite a la lista de suscriptores

Una vez por mes vas a recibir un mail con contenido que se relaciona con lo que vemos en el blog, que extiende o anticipa lo que hacemos en YouTube, y que también suele incluir anécdotas del MundoReal® y algún que otro link.

Es gratis, no tiene publicidad y con double opt-in porque a nadie le gusta el spam.