使用github.io来写blog
本就是件很棒的事情,但是每次在想写新的文章的时候,都需要重新复制title和开头的标签,如果能够自动化地完成这件事就好了(重复性的东西工作)
About Rakefile
Rake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax.
摘自http://docs.seattlerb.org/rake/
安装Rake
sudo gem install rake
即可
创建Rakefile
在项目的根目录下
touch Rakefile
vim Rakefile
然后添加如下代码
task :default => :new
require 'fileutils'
desc "创建新 post"
task :new do
puts "请输入要创建的文章文件文件名字:"
@url = STDIN.gets.chomp
puts "请输入文章的标题:"
@name = STDIN.gets.chomp
puts "请输入文章的子标题:"
@slug = STDIN.gets.chomp
puts "请输入文章的分类,以空格分隔:"
@categories = STDIN.gets.chomp
puts "请输入文章的标签:"
@tag = STDIN.gets.chomp
@slug = "#{@url}"
@slug = @slug.downcase.strip.gsub(' ', '-')
@date = Time.now.strftime("%F")
@post_name = "_posts/#{@date}-#{@slug}.md"
if File.exist?(@post_name)
abort("文件名已经存在!创建失败")
end
FileUtils.touch(@post_name)
open(@post_name, 'a') do |file|
file.puts "---"
file.puts "layout: post"
file.puts "title: #{@name}"
file.puts "slug: #{@slug}"
file.puts "author: ymkNK"
file.puts "date: #{Time.now}"
file.puts "categories: #{@categories}"
file.puts "tags: #{@tag}"
file.puts "img: 1.jpg"
file.puts "---"
end
exec "vim #{@post_name}"
end
代码中的author等属性可以自行进行修改
使用Rakefile生成文章
在项目的根目录下打开命令行
rake new
依次输入相关的信息就可以在_post下看见新生成的文件啦