Instalación de Jekyll en Windows

Este artículo va a ser el primero de una serie de documentos dedicados a explorar (o, más bien, intentar explicar) cómo ha visto la luz este sitio web. El objetivo no es otro que servir de guía, para toda aquella persona que esté interesada en iniciarse en el uso de la combinación de GitHub Pages y Jekyll, de cara a la creación de un blog personal. Además, por lo que a mí respecta, esta colección será una especie de registro que me permita recordar, en todo momento, cada uno de los pasos seguidos hasta la fecha (por si hubiese que replicarlos o revertirlos en un futuro).

A continuación, exploraremos la instalación de las herramientas necesarias para dar vida a la página: el lenguaje de programación Ruby y el propio generador de sitios web estáticos Jekyll.

Primer intento: usando Chocolatey

En la guía de inicio rápido que aparece en la página oficial de Jekyll, dentro de su primer apartado, nos indican que si queremos revisar localmente la página web que vamos a generar debemos instalar Jekyll. Acto seguido, aparece el comando que tendríamos que ejecutar en la consola de comandos para ello. No obstante, si escribimos en el Símbolo del sistema:

$ gem install jekyll

Windows, amablemente, nos arrojará un mensaje de error. En una sección posterior de la mencionada guía nos enlazan hacia la documentación para la instalación de Jekyll, donde podemos empezar a atisbar que el proceso no va a ser tan sencillo como de costumbre, puesto que esta herramienta no ofrece, oficialmente, soporte para nuestro sistema operativo.

¿Quiere decir esto que no podremos examinar nuestro sitio web localmente? En absoluto, ya que a los usuarios de Windows nos recomiendan utilizar esta guía que, a la postre, no es más que un resumen de la orientación que podemos encontrar en este artículo.

El proceso a seguir pasa por instalar previamente una herramienta, Chocolatey, que nos permitirá luego hacernos fácilmente tanto con el lenguaje de programación Ruby, como con Jekyll. Para ello, ejecutamos el Símbolo del sistema en Windows (siempre con privilegios de administrador) y pegamos la siguiente instrucción:

@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

Una vez tenemos Chocolatey en nuestro sistema, cerramos la ventana y ejecutamos de nuevo el Símbolo del sistema para escribir:

choco install ruby -y

lo cual nos instalará el lenguaje de programación Ruby. Volvemos a cerrar y abrir el Símbolo del sistema y tecleamos las dos siguientes instrucciones para hacernos con Jekyll:

gem install bundler
gem install jekyll

En la guía nos advierten de que, en algún momento durante la ejecución de estas dos últimas líneas, puede aparecernos un mensaje de error sobre SSL, debido a la expiración de ciertos certificados. En mi caso particular, efectivamente, la consola me mostró el mencionado mensaje, pero podemos resolver la situación fácilmente a través de la orientación de esta guía, que nos invita a introducir los siguientes comandos en el Símbolo del sistema:

gem install --local C:\rubygems-update-2.6.7.gem
update_rubygems --no-ri --no-rdoc
gem uninstall rubygems-update -x

Tras completar todo este proceso, en teoría, deberíamos ser capaces de servir localmente nuestro sitio web (usando jekyll serve en el directorio local donde esté ubicado, como veremos en un futuro artículo). Sin embargo, en mi caso concreto, aquí es donde comenzó una pequeña odisea, puesto la consola arrojó un error relacionado con pygments.rb, muy similar al que se muestra en esta página, y que debería resolverse escribiendo en el Símbolo del sistema gem install pygments.rb. No obstante, para alimentar un tanto mi desesperación, esta vía no terminó de funcionar, por lo que me vi obligado a explorar métodos alternativos.

Nota: antes de que nos lancemos a solucionar cualquiera de los problemas relacionados con pygments (tal y como hice yo en su momento), recomiendo encarecidamente echar un vistazo al último apartado de este artículo.

Segundo intento: empezando desde cero

Tras saltar de una página web a otra, intentando sin mucho éxito resolver el dichoso problema generado por pygments, finalmente encontré esta excelente guía y decidí seguirla punto por punto. Si bien es cierto que tendría que reinstalar algunas de las herramientas que aparecieron en el apartado anterior, dado que me encontraba en una especie de “punto muerto”, consideré que no era mala idea empezar desde cero, para así “curarme en salud”.

Así pues, si seguimos los pasos que allí se indican:

  • Instalaremos, de nuevo, el lenguaje de programación Ruby, utilizando ahora un archivo ejecutable (método al que, por cierto, estamos más acostumbrados los usuarios de Windows).
  • Nos haremos con DevKit, también a través de un fichero ejecutable, por si acaso, ya que leyendo su cometido dudo que sea una herramienta de la que vayamos a hacer uso en un futuro próximo.
  • A continuación, reinstalaremos Jekyll a través del Símbolo del sistema, de forma muy similar a como hicimos en el apartado anterior.
  • Finalmente, estaremos en condiciones de instalar pygments, que requiere previamente que nos hagamos con la última versión de Python 2, así como con Easy Install.

Una vez completado todo este extenso proceso, intenté de nuevo servir localmente el sitio web, ¡y aparecieron más errores en la consola! Empecé a echar bastante de menos WordPress en aquel preciso instante. Sin embargo, con la ayuda del todopoderoso buscador Google, terminé dando con esta página, donde un usuario comenta un problema idéntico al que estaba experimentando. Entre las respuestas encontré la solución que andaba buscando: escribir en el Símbolo del sistema:

bundle update
bundle install

Así, finalmente, ¡ya pude acceder localmente a mi sitio web!

Nota: en esta sección no he detallado en exceso los pasos seguidos por dos motivos: en primer lugar, porque sería casi replicar al pie de la letra la excelente guía mencionada; y, en segundo lugar, por lo que explico en el siguiente apartado. No obstante, en este momento deberíamos estar todos en condiciones de revisar localmente una página web que se apoye en pygments, hecho que puede resultar interesante en un futuro.

pygments, una odisea sin sentido

En ocasiones, la vida es un tanto cruel, ¿verdad? La frustrante instalación del generador de sitios estáticos Jekyll en Windows, debida principalmente a la situación provocada por pygments, hubiese sido mucho más satisfactoria de haber sabido, en su momento, un detalle importante: ¡GitHub Pages no soporta pygments!

Me explico brevemente: pygments, para toda aquella persona que no lo sepa (conjunto en el que me encontraba antes de iniciar esta andadura), es una herramienta para dotar de un aspecto agradable al código fuente de un lenguaje de programación cuando lo mostramos en un sitio web (en inglés se conoce como syntax highlighter). En su página oficial, dentro del apartado Demo, podemos acceder a algunos ejemplos para hacernos una idea de las posibilidades que pygments nos ofrece.

Sin embargo, por desgracia, GitHub Pages únicamente soporta Rouge como utilidad para resaltar código. Desconozco el motivo, aunque sospecho pueda deberse a que Rouge está escrito utilizando el lenguaje de programación Ruby, así como Jekyll (mientras que pygments requiere Python).

De esta forma, nos podemos ahorrar tener que lidiar con toda la ristra de problemas asociados a pygments modificando con antelación el archivo de configuración de nuestro sitio web: _config.yml (que exploraremos en futuros artículos). Este, por defecto, apunta a pygments como herramienta para resaltar código, por lo que, en la línea donde aparece highlighter:, debemos cambiar pygments por rouge.

La experiencia de instalación ha sido un tanto agridulce, pero al menos hemos conseguido tener acceso a la posibilidad de examinar localmente nuestro sitio web. Esto nos permitirá experimentar con su configuración sin tener que subir cada cambio para así comprobar su efecto. En el siguiente artículo, exploraremos los pasos necesarios para crear la página web en sí.

Nota: cualquier comentario relacionado con el texto precedente se puede llevar a cabo a través de su correspondiente entrada en el blog.

Publicado: