¡Ajipirijou! josé albornoz's blog

Raketask para crear un post nuevo en Jekyll

Habiendo dejado de lado el blog por un tiempo, me dieron ganas de escribir un...

Habiendo dejado de lado el blog por un tiempo, me dieron ganas de escribir un post.

Como buen programador, me comenzó a dar lata crear el nuevo archivo para un post de Jekyll, así que hice este rake task que crea el archivo por mi.

Acá está el código:

 1 task :default => [:new]
 2 
 3 # let's create a new blog post
 4 task :new do
 5   title = ENV['title'] || 'post title'
 6   tags = (ENV['tag'] || ENV['tags'] || 'tag').split(',').map(&:strip).join("\n- ")
 7   categories = (ENV['category'] || ENV['categories'] || 'category').split(',').map(&:strip).join("\n- ")
 8   today, now = Time.now.strftime("%Y-%m-%d %H:%M").split(' ')
 9   filename = "_posts/#{today}-#{title.downcase.split(' ').join('-')}.markdown"
10   File.open(filename, "w") do |file|
11 template = <<EOF
12 ---
13 date: '#{today} #{now}'
14 layout: post
15 title: '#{title}'
16 photo: ''
17 categories:
18 - #{categories}
19 tags:
20 - #{tags}
21 ---
22 EOF
23     file.write(template)
24   end
25   puts "> blog post &quot;#{title}&quot; created on #{filename}"
26 end

Si agregan eso a un archivo rakefile.rb pueden ejecutar el siguiente comando desde su terminal y rake creará el archivo del post para su disfrute.

jojo-mac-air:$ rake new title="Raketask para crear un post nuevo en Jekyll" categories="jekyll" tags="jekyll, rake"
> blog post "Raketask para crear un post nuevo en Jekyll" created on _posts/2012-09-16-raketask-para-crear-un-post-nuevo-en-jekyll.markdown

Servir con hielo.