Mucho ha llovido desde que configuré Hugo para generar este blog (Publica en GitHub Pages). Lo hice en mi MacBook Air (Mid 2013) y casi todas las actualizaciones las sigo haciendo desde ahí.

Alguna vez he clonado el repositorio en otro equipo pero siempre había tenido problemas al intentar publicar el resultado final (en HTML) en GitHub Pages. El problema surge de que los ficheros HTML se generan en la carpeta public/, que está configurada como un submódulo de Git.

Al clonar el respositorio que contiene las entradas (en formato Markdown), hay que indicar que contiene submódulos. Esto se consigue mediante: git clone --recursive ${URl-del-repo} o con git clone --recurse-submodules ${URl-del-repo}.

Sin embargo, tras ejecutar el clonado, la carpeta public/ seguía siendo una carpeta normal, sin los ficheros en formato HTML y sin la carpeta .git que la identifica como un repositorio.

En la raíz del repositorio sí que se encontraba el fichero .gitmodules.

Después de mucho buscar en internet y tras consultar la documentación oficial para gitsubmodules - Mounting one repository inside another, finalmente me he dado cuenta de mi error leyendo la entrada Git Submodules: Adding, Using, Removing, Updating.

Por algún motivo, en mi fichero .gitmodules, el path especificado era onthedock.github.io, en vez de la ruta “local” en la que se encuentra el submódulo (la carpeta public).

Tras corregirlo, he lanzado:

git sync
git submodule update --init --recursive

Esto ha clonado el repositorio del contenido generado (en HTML) en la carpeta public/ como debe ser.

La validación de que todo funciona correctamente es esta entrada que estás leyendo ;)