UP | HOME

Diseño de Interfaces Web

Unidad 2.6 - Fundamentos del CMS Jekyll

Índice

1 Introducción

Jekyll es un gestor de contenido de tipo estático (static site generator). No depende de ninguna base de datos ni de ningún lenguaje de servidor. Utiliza ficheros de texto para almacenar los contenidos y los datos. Estos pueden dividirse en las siguientes categorías:

Ficheros de configuración
Almacenan la configuración general del sitio y las opciones de personalización.
Ficheros de contenido
Almacenan los contenidos de las páginas del sitio.
Ficheros de datos
Permiten crear estructuras de datos que pueden ser mostrados en las distintas páginas del sitio o utilizarse para generar estructuras, menús de navegación, listas,…
Ficheros de plantillas
Se utilizan para crear la estructura de las páginas que componen el sitio web.

Jekyll utiliza un sistema de plantillas denominado Liquid para combinar los distintos tipos de ficheros y crear el resultado final: un sitio web totalmente estático que utiliza únicamente HTML, CSS y JavaScript.

La documentación de Jekyll puede consultarse en este enlace.

2 Instalación

Las instrucciones de instalación de Jekyll pueden consultarse aquí. Jekyll no da soporte oficial para Windows, pero en las instrucciones se detalla cómo hacerlo.

Afortunadamente existe también la posibilidad de hacer una instalación de tipo portable, disponible en GitHub.

3 Uso básico

Jekyll se ejecuta desde la linea de comandos. Su uso básico permite:

  • Crear un nuevo sitio Jekyll mediante jekyll new NOMBRE_PROYECTO. Este comando crea un nuevo proyecto Jekyll en la carpeta ./NOMBRE_PROYECTO. Todas las acciones que se indican a continuación se deben ejecutar dentro de dicha carpeta.
  • Generar el sitio web en la carpeta ./_site mediante jekyll build.
  • Lanzar un servidor web para visualizar el proyecto en el navegador mediante bundle exec jekyll serve. Una vez lanzado se puede acceder al sitio web a través del navegador en http://localhost:4000.

Fuente: https://jekyllrb.com/docs/quickstart/

4 Organización de archivos

La organización de archivos y carpetas en un proyecto Jekyll se puede consultar en https://jekyllrb.com/docs/structure/. A continuación se detallan las que utilizaremos en las prácticas:

_config.yml
Fichero YAML de configuración. En él se detallan las opciones de configuración del proyecto.
_layouts
Carpeta que incluye los ficheros de plantilla. Cada fichero es un fichero HTML que se utiliza para englobar el contenido de las distintas páginas que componen el sitio. El nombre del fichero es el nombre de la plantilla. La etiqueta {{content}} se utiliza para incluir el contenido de la página que está usando la plantilla. Más información en https://jekyllrb.com/docs/themes/.
_includes
Carpeta que incluye los ficheros HTML que se utilizan como parciales para ser incluidos en plantillas u otras páginas del sitio. La etiqueta {% include ARCHIVO.html%} se utilizará para incluir el contenido del fichero _includes/ARCHIVO.html. Más información en https://jekyllrb.com/docs/includes/.
Carpeta principal
Los ficheros HTML (o MarkDown) que aparezcan en la carpeta principal del proyecto formarán las páginas estáticas del sitio. Cada página tendrá definido un front matter donde se indicará, entre otras cosas, qué plantilla utilizará dicha página.
_site
Carpeta que contiene el sitio web generado por Jekyll una vez realizadas todas las tareas de procesado (inyección del contenido de los archivos parciales, aplicación de plantillas, procesado de datos, etc.). El contenido de esta carpeta puede ser publicado en cualquier servidor HTTP.

5 Front matter

El front matter es el contenido de texto que aparece al comienzo de cualquier archivo que deba ser procesado por Jekyll. Si Jekyll encuentra un archivo que no tenga definido un front matter, no lo procesa y lo copia a la misma localización del directorio _site. El front matter está delimitado entre dos líneas formadas por un tres guiones. Su aspecto es parecido al siguiente:

---
layout: mi_layout
permalink: /url/estatica/de/la/pagina
title: Título de la página
---

En el front matter se pueden definir datos en forma variable: valor que luego podrán ser utilizados por el sistema Liquid de plantillas. Su uso más básico permite definir las siguientes características de la página:

layout
Indica el archivo de plantilla que se utilizará para mostrar la página. El nombre definido en esta variable hace referencia al archivo del mismo nombre sin la extensión presente en la carpeta _layouts.
permalink
Indica la URL estática que tendrá la página web en caso de querer que se muestre alguna distinta al nombre del archivo.
title
El título de la página.

Normalmente todos los ficheros que necesiten acceder al sistema de plantillas de Jekyll tendrán definido un front matter. Aquellos otros que no lo necesiten (por lo general, archivos CSS, JS, imágenes y demás) no tendrán definido un front matter (es posible que algunos de ellos, dependiendo del tipo de aplicación, sí que lo necesiten).

Fuente: https://jekyllrb.com/docs/frontmatter/

6 Integración con GitHub Pages

Jekyll está integrado en el servicio de GitHub Pages. Si se sube un repositorio a la rama de GitHub Pages (gh-pages) se compilará automáticamente y será visible en Internet. Por tanto, no es necesario compilarlo antes de subirlo ni subir la carpeta _site.

Fuente: GitHub Pages, Jekyll y GitHub Pages

Licencia de Creative Commons
Diseño de Interfaces Web by Pedro Prieto is licensed under a Creative Commons Reconocimiento-CompartirIgual 4.0 Internacional License.