1 minuto

Vimos en /jekyll/github-pages/git/rakefile/publicar-a-github-pages-y-twittear/ cómo twittear automáticamente los posts creados o editados al publicar nuestro site en GitHub Pages. Hoy vamos a ver cómo añadir las categorías del post como hashtags en el tweet. Es más fácil de lo que parece.

Jekyll guarda las categorías de un post en la clave categories del hash data. Para obtener un string con los hashtags bastará con:

hashtags = docs.data['categories'].map{|c| "#" + c.tr_s(" ", "_")}.join(' ')

Al array de categorías le aplicamos un map, que ejecuta el bloque de código para cada elemento del mismo. En nuestro caso, lo que queremos ejecutar es el código que genere un hashtag. Esto es devolver un string que empieze por # y que no contenga espacios c.tr_s(" ", "_").

Actualización: Resulta que con tr_s subtituimos únicamente los espacios, mientras que Twitter tampoco acepta - como parte del hashtag. Así, para que nos haga un hashtag correcto de github-pages, por ejemplo, habrá que modificar la llamada por:

hashtags = doc.data['categories'].map{|c| "#" + c.gsub(/-|\s/, "_")}.join(' ')

Para añadir estos hashtags en nuestro tweet modificamos un poco la tarea :tweet nuestro Rakefile:

site.posts.docs.each do |doc|
  if doc.relative_path == file
    hashtags = doc.data['categories'].map{|c| "#" + c.gsub(/-|\s/, "_")}.join(' ')
    bundle exec "t update \"#{hashtags} #{config['url']}#{doc.url}\""
  end
end

Al tener varías líneas de código tenemos que hacer del if doc.relative_path == file un bloque.

Tenéis el Rakefile actualizado en https://github.com/xaviaracil/xaviaracil.github.io/blob/master/Rakefile

Deja un comentario