Jekyll es un generador de páginas estáticas para la construcción de webs, principalmente enfocado a blogs, aunque nos sirve para construir cualquier tipo de página web. Está escrito en Ruby y fue desarrollado por Tom Preston-Werner, uno de los cofundadores de GitHub.
Jekyll es utilizado como el motor de creación de todas las páginas que se sirven en GitHub Pages.
La idea de Jekyll no es la de utilizar una base de datos para almacenar el contenido como hacen los CMS o Gestores de Contenidos tradicionales, si no que el contenido de nuestra web se define mediante ficheros de texto en formatos markdown.
Si que comparte con los CMS o Gestores de Contenidos la capacidad de disponer de plantillas para el diseño de la web. En este caso las plantillas de Jekyll están basadas en Liquid.
El proceso de Jekyll combina el contenido de los ficheros en markdown con las plantillas de Liquid para generar un sitio web totalmente creado por ficheros estáticos.
Al tener un sitio web totalmente creado por ficheros estáticos cualquier servidor web, ya sea NGinx, Apache,… nos permitirá montar de una forma muy sencilla nuestra página web.
La principal diferencia es que los gestores de contenido necesitan una base de datos así como más recursos del servidor, esta es la base de datos donde encontrará información sobre cómo presentar el contenido, el contenido a presentar, el rol del usuario y los beneficios y las páginas requeridas para los motores de búsqueda.
Cuando utiliza un framework, debe poner en la página toda la información requerida por los motores de búsqueda para mostrar el sitio para diferentes formatos de pantalla y la ubicación de los elementos externos que se muestran o agregan interactividad.
Historia
Tom Preston-Werner lanzó a Jekyll en 2008.1 Cuando él mismo se fue de GitHub en abril de 2014, el proyecto perdió a su principal programador.2
Jekyll empezó una tendencia de desarrollo: sitios web estáticos. En este tipo de sitios web la misma información es presentada a todos los usuarios, desde todos los contextos, dependiendo de las capacidades de los servidores web para gestionar el tipo de contenido o lenguaje del documento cuando tales versiones se encuentran disponibles y el servidor se encuentra configurado con la capacidad para hacerlo.3
Características
En lugar de usar bases de datos, Jekyll coge el contenido, en formato Markdown o Textile y plantillas Liqui y produce como resultado un sitio web completo estático listo para ser presentado mediante un servidor web tal como Servidor HTTP Apache, Nginx u otro.Jekyll es el motor de GitHub Pages, una funcionalidad de GitHub que permite a los usuarios hospedar sitios web desde sus repositorios del propio GitHub.
Jekyll es flexible y soporta contextos de aplicaciones web frontend tales como Bootstrap, o Semantic UI.
¿Qué podemos hacer con Jekyll?
Entre muchas otras cosas, con Jekyll podemos:
- Crear páginas web o entradas post.
- Agrupar las entradas o post en categorias.
- Definir etiquetas para las páginas o las entradas.
- Asociar un usuario a cada uno de los contenidos.
- Asignar una fecha de creación a cada uno de los contenidos.
- Podemos personalizar los enlaces permanentes para cada uno de los contenidos.
- Podemos crear un buscador de contenidos.
¿Es Jekyll un CMS?
Podríamos tratar a Jekyll como un CMS o Gestor de Contenidos ya que cumple con algunas de sus características, si bien carece de un interface que haga que un usuario de un perfil no técnico pueda contribuir con contenidos de una forma sencilla.
Para resolver este pequeño handicap hay algunas soluciones que han nacido alrededor de Jekyll para proporcionar un interface orientado a usuarios que contribuyen con contenidos.
Así tenemos herramientas como CloudCannon, Forestry, Netlify o SiteLeaf que nos ayudan ofreciendo un interface para gestionar el contenido de una forma sencilla.
Cómo empezar a utilizar Jekyll
Para poder empezar a trabajar con Jekyll simplemente necesitas tener instalado Ruby en tu ordenador. Si ya cuentas con Ruby puedes instalarte Jekyll como una gema. Es tan sencillo como ejecutar lo siguiente:
$ gem install bundler jekyll $ jekyll new mi-web $ cd mi-web $ bundle exec jekyll serve # => Abre en un navegador http://localhost:4000