ブログ用にRakefile使ってみた
ちなみに最新版は地味にちょこちょこ変えてる
Rubyが分からんから参考サイトから拝借しながらやってみた。
今のところあんまり楽とは感じない。
楽だった。
jekyllの起動
コマンドラインでrake preview
するとjekyllが起動する。jekyll --auto --server
よりはタイプが減る。
# Usage: rake preveiw
desc "Launch preview environment"
task :preview do
sh "jekyll --server --auto"
end
Githubへpush
コマンドラインでrake release
するとGithubにpush。毎回コミットメッセージ書かなくて済む。
一応新規投稿用なんで他ファイルの修正を施したときは使わないようにしたほうが良いのかな。
エラー処理とかはよく分からんからとりあえず無視してる。
ちょっと修正した
# Usage: rake release
desc "Pushing repository to Github"
task :release do
message = "Site updated at #{Time.now.strftime('%Y-%m-%d')}"
sh "git add ."
sh "git commit -m \"#{message}\""
sh "git push origin master"
end
新規投稿用のファイルを作成
コマンドラインでrake post['記事のタイトル']
でファイルを作成。
同じファイル名があったらエラーが出て終了する。
何ならエディタ開くところまで自動化したかったけど分からんので諦めた。
作成されるとパスを出力するのでvimとかで開いて編集する。
ちょっと修正した
# 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
ScoutかCodekit立ちあげてscssからcssにコンバートしてたけどそれすら面倒くさくなってきたのでコマンドから立ち上げるために下記を追記した。
# Usage: rake watch
desc "Watch scss"
task :watch do
sh "sass --style compressed --watch scss:css"
end
なんなら.sass-cacheが邪魔だったから消そうとしたけどこれがあることによってパフォーマンスが上がるらしいからどうしよっかな。