Índice
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.
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
¿Has visto algún error?: Por favor, ayúdame a corregirlo contactando conmigo o comentando abajo.