Autor

Alejandro Alcalde

Graduado en Ingeniería Informática en la ETSIIT, Granada.

Más artículos de Alejandro Alcalde

En el anterior artículo, hablamos sobre cómo sincronizar dos repositorios en git, también se vio algo de hooks.

Hoy vamos a ver cómo usar filtros en git para cambiar automáticamente la url de una web hecha con jekyll en función de si estamos en local o en el servidor. Es decir, cuando estemos desarrollando o escribiendo un artículo, querremos ir viendo los resultados en local, para ello la url del fichero _config.yml debe estar vacía, cuando esté en el servidor deberá ser el nombre del dominio.


Ayúdanos a seguir escribiendo


Creando el script para smudge

Bastará con crear un script que contenga:

ruby -e '$stdout.puts $stdin.read.gsub(/url: http:\/\/elbauldelprogramador\.com/, "url: ")'

Lo llamaremos siteurl.smudge, y le daremos permisos de ejecución.

Creando el script para clean

Similar al anterior:

ruby -e '$stdout.puts $stdin.read.gsub(/url: /, "url: http:\/\/elbauldelprogramador\.com")'

Añadir los scripts a los filtros

Solo resta añadir los filtros a la configuración de git:

$ git config filter.siteurl.smudge siteurl.smudge
$ git config filter.siteurl.clean siteurl.clean

Nota: Los scripts tienen que estar en el PATH del sistema, y tener permisos de ejecucion. {: .notice}

El Gitattributes

Gracias al comentario de Julián, me dí cuenta de que faltaba una última cosa por especificar. A qué ficheros se aplicarán los filtros. Para ello, añadimos lo siguiente al fichero .gitattributes:

_config.yml filter=siteurl

Gracias Julián.

Conclusión

Ejecutados todos los pasos, ahora tendremos la url en local cuando estemos desarrollando, y se sustituirá automáticamente por el dominio cuando se publique en github.

Referencias