RakefileでJekyllの生成されたページをさくらVPSにデプロイする


RakefileでさくらVPSの公開フォルダにデプロイするために、参考ページを参考にRakefileを作った。

Rakefile
# Usage: rake preveiw
desc "Launch preview environment"
task :preview do
    sh "jekyll --server --auto"
end

task :deploy do
    sh "jekyll"
    sh 'rsync -e "ssh -p port" -avz --delete _site/ user@hogehoge:/home/usr/jekyll/_site'
end

# Usage: rake post["new-post-name"]
desc "Given a title as an argument, create a new post file"
task :post, [:title] do |t, args|
    dirname = File.join(".", "_posts")
    if not FileTest.directory?(dirname)
        abort("rake aborted: #{dirname} directory is not found.")
    end
    date = Time.now.strftime('%Y-%m-%d')
    slug = args.title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
    filename = "#{date}-#{slug}.md"
    fullpath = File.join(dirname, filename)
    if File.exist?(fullpath)
        abort("rake aborted: #{fullpath} already exists.")
    end
    File.open(fullpath, 'w') do |post|
        post.puts "---"
        post.puts "layout: post"
        post.puts "category: "
        post.puts "title: #{args.title}"
        post.puts "date: #{date}"
        post.puts "summary: "
        post.puts "---"
    end
    puts "Open #{fullpath} in an editor."
end

このRakefileをJekyllフォルダの直下に置くと、jekyllコマンドでRakefileも公開されてしまう。

これを防ぐには、_config.ymlに 以下の記述を追加する。

_config.yml
exclude: [Rakefile]

参考

Jekyll のデプロイ手順を改めた - tech.portalshit.net