X

Cómo crear una página web sencilla con Jekyll

En mi primera colaboración con el Colaboratorio os voy a hablar de algo con lo que he estado jugando últimamente y que permite que alguien como yo, sin conocimiento alguno de HTML o CSS, pueda montar una página web desde cero en cuestión de un par de horas: el generador de sitios estáticos Jekyll.

¿Qué es Jekyll?

Jekyll es un generador de sitios estáticos simple, escrito en Ruby y que se distribuye con licencia libre. Es especialmente conocido por ser la herramienta que GitHub Pages utiliza a la hora de crear sus páginas.

Yo, desde mi punto de vista ajeno a los entresijos de Internet, le veo las siguientes ventajas:

  • Nos permite escribir en Markdown o Textile, lenguajes de marcado que se aprenden en 10 minutos.
  • Utiliza plantillas Liquid, que permiten crear una lista de artículos o una barra de navegación fácilmente.
  • Podemos crear y ver nuestra página localmente.
  • Es lo que ellos denominan blog-aware, nos da facilidades para crear un blog a nuestro gusto.
  • Combinándolo con servicios como GitLab Pages o GitHub Pages podemos tener una página de proyecto en el mismo repositorio que el código, con la ventaja añadida de que la página estará bajo control de versiones.

Instalación y uso

Veamos ahora, entonces, cómo lo ponemos en marcha. Como es una gema de Ruby, lo más fácil es instalarlo directamente con gem:

gem install jekyll

Si tenéis algún problema o necesitáis más información podéis acudir a la documentación sobre la instalación.

Ahora podemos seguir dos caminos:

Opción 1: Decirle a Jekyll que nos instale un blog de ejemplo

Es una buena opción para tener algo listo rápidamente. Para ello seguimos los siguientes pasos:

# Instalar bundler
gem install bundler

# Crear una página con Jekyll en ./ejemplo
jekyll new ejemplo

# Entrar en la carpeta de la página
cd ejemplo

# Crear la web en localhost:4000
bundle exec jekyll serve

Nos creará algo con esta pinta:

Podemos modificar los archivos y la página se irá actualizando en concordancia.

Opción 2: Montarnos nosotros el sistema de archivos y carpetas

No dejan de ser dos carpetas y tres archivos y, aunque no nos va a quedar de inicio tan bonito, nos ayudará a aprender. En este segundo caso, podemos crear la página web localmente de dos maneras:

  • jekyll build: nos creará en la carpeta _site/ (o donde le digamos con la opción --destination) todos los archivos HTML correspondientes
  • jekyll serve: nos mostrará la página resultante en localhost:4000 y actualizará la página automáticamente cuando realicemos algún cambio.

Ejemplo de uso: un blog desde cero

Voy a suponer que queréis crear un blog desde cero y os voy a contar qué archivos necesitamos y cómo los tenemos que ordenar. La contrapartida de que podamos crear una página fácilmente es que Jekyll es bastante maniático con la estructura. En esta imagen podemos ver la estructura completa de una página web creada con Jekyll:

Para el caso más sencillo necesitaremos el archivo index.html o index.md, la carpeta _posts/ y la carpeta _layouts/. El resto de archivos y carpetas, como el archivo de configuración _config.yaml o la carpeta de borradores _drafts/, aunque útiles, no son obligatorios, así que los dejamos a un lado de momento.

El archivo index.html o index.md

Será la página de inicio de nuestro blog. Debe llevar al inicio un bloque YAML donde se indique el estilo de la página y el resto de variables necesarias. Por ejemplo, en este bloque YAML se le indica a Jekyll que use el estilo default y que el título de la página es Inicio:

---
 layout: default
 title: Inicio
 ---

La carpeta _posts/

Aquí guardaremos los artículos que vayamos escribiendo. Si queremos aprovechar los trucos de Jekyll, les pondremos como nombre de archivo la fecha de publicación seguida del nombre, es decir, seguiremos la estructura AAAA-MM-DD-nombre.ext. Dependiendo del lenguaje de marcado que estemos utilizando, la extensión puede ser o bien md o markdown, html o textile.

Al igual que la página de inicio, los artículos tienen dos bloques diferenciados, un bloque YAML superior en el que se definen variables, seguido del contenido propiamente dicho.

La carpeta _layouts/

Esta carpeta contiene los diferentes estilos de las páginas, por ejemplo, un estilo general y uno específico para los artículos. Estos estilos son lo único que tiene que estar escrito en HTML.

Para los que, como yo, no sepáis HTML, el estilo más simple podría llamarse default.html y parecerse al trocito de código que muestro debajo. Se usa la variable {{ content }} para indicar el punto en el que Jekyll debe insertar el contenido y {{ page.title }} para hacer referencia al título de la página (sorprendentemente).

<!DOCTYPE html>
<html>
  <head>
    <title>{{ page.title }}</title>
   </head>
   <body>
    {{ content }}
   </body>
</html>

Podemos, por supuesto, enlazar un CSS o complicar esto tanto como queramos (o sepamos).

Espero que todo esto os resulte útil. Como se aprende mejor haciendo que leyendo, os dejo con una lista de páginas creadas con Jekyll para que investiguéis en el código y con una página de prueba que creé yo misma en un rato para probar diferentes funcionalidades.


Las imágenes han sido extraídas de la documentación de Jekyll, que tiene licencia MIT. Para el caso de la página de ejemplo se ha generado siguiendo los pasos mostrados.

0 0 votos
Article Rating
Ondiz Zarraga: Doctora en ingeniería de formación y frikibloguera de vocación. Investigo tecnologías libres e invento panes.

Ver comentarios (10)

  • Muy buen aporte Ondiz, tengo muchas ganas de probarlo. Creo que iría muy bien para contenido con referencias, datos académicos, etcétera.

  • El plan de dominar el mundo ha empezado!!
    Como primer paso Ondiz ha colonizado esta web!! :P
    muy interesante!
    Tengo pendiente darle forma a una página en GitLab Pages con Jeckyll, traté de importar un theme y darle forma, pero había algo que no terminaba de chutar...

    no me da la vida pa' to'!

    Enhorabuena por el artículo, y me alegro por Colaboratorio, que amplía así su plantel de "All Stars" :)

    • ¡No descubras mi plan secreto! :P

      Probablemente sepas más que yo, pero si te puedo ayudar en algo con tu página de GitLab ya sabes donde estoy.

      ¡Un saludo!

  • Jekyll es tal vez el referente máximo en generadores de sitios web estáticos, Pelican le sigue de cerca. La seguridad es un punto a favor en este tipo de herramientas al no necesitar de una base de datos o un servidor externo; además, garantiza velocidad, Jekyll se puede lucir en hardware de poco recursos. Yo no lo he utilizado, pero sí otro similar: Hugo, bastante popular pero no es tan potente como Jekyll. Lo único que se le hecha de menos a estas herramientas es la falta de un plugin para comentarios, se puede utilizar Disqus, sin embargo se pierde la característica de "estático", los usuarios se suelen quejar de ello. Para mí no sería un problema, sigue siendo una herramienta excepcional.

    Saludos.

    • Así es.

      Sobre los comentarios, conozco aunque aun no he usado Staticman que parece que funciona especialmente bien con las páginas creadas con Jekyll y alojadas en GitHub o GitLab. No sé qué tal será.

      Gracias por la aportación. ¡Un saludo!

  • Y como podemos hacer cuando hemos usado Jekyll-now? Yo quiero cambiar colores o ponerle un fondo a mi blog, pero si lo tengo forkeado de Jekyll-now no podré hacerlo?? Saludos!!

    • Sí, se puede cambiar, tendrás que modificar los archivos de la carpeta _layout y el CSS correspondiente para ajustar el aspecto según tus gustos.

      ¡Gracias por comentar!

      Un saludo

Artículos relacionados

Este sitio utiliza cookies