使用rake生成jekyll静态博客新文章
使用了Jekyll也有9个月了,虽然写的博文不多,但也是会觉得每次写新文章是痛苦的。复制粘贴再更改也是显得不够条理,一个字一个字的敲也是痛苦的,索性搜索一下有没有好的方法,终于找到了一个好办法,利用ruby插件rake来完成。
下面就讲一下怎么实现。
安装rake
利用gem包管理工具进行安装rake模块,国内的话要将gem安装源更改为taobao的,详 Fedora Linux下安装Jekyll
# gem 安装 rake
sudo gem install rake
编写Rakefile
我们可以编写Rakefile,按照一定规则生成我们的博文,需要将Rakefile放到Jekyll博客工程的根目录下,如下是示例Rakefile的内容:
task :default => :new
require 'fileutils'
desc "创建新 post"
task :new do
puts "请输入要创建的 post URL:"
@url = STDIN.gets.chomp
puts "请输入 post 标题:"
@name = STDIN.gets.chomp
puts "请输入 post 分类,以空格分隔:"
@categories = STDIN.gets.chomp
@slug = "#{@url}"
@slug = @slug.downcase.strip.gsub(' ', '-')
@date = Time.now.strftime("%F")
@post_name = "_posts/#{@date}-#{@slug}.markdown"
@author = "5km(十里)"
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 "date: #{Time.now}"
file.puts "author: \"#{@author}\""
file.puts "categories: #{@categories}"
file.puts "---"
end
exec "vim #{@post_name}"
end
看上面的Ruby代码,应该能看出实现思路,可以根据自己的需求作出修改,其中@author变量改成自己的就可以了。
生成新文章
使用rake new命令,生成新的post,new与上述ruby代码中task命名对应起来,也可以修改。执行命令的时候要在jekyll的工程目录中,执行rake new
命令,执行过程如下:
-> % rake new
请输入要创建的 post URL:
rake-new-post
请输入 post 标题:
使用rake生成jekyll新文章
请输入 post 分类,以空格分隔:
Jekyll