便利な Rakefile を作った
この日報の一番の不便なところは記事の冒頭に以下のような呪文を記載する必要がある。
---
layout: post
title: "便利な Rakefile を作った"
categories: tech
date: "2018-06-15 16:47:31"
---
超めんどくさいから勝手に作ってくれ。 ということでスクリプト書いた。
task :default => :new
desc "create new post"
task :new do
title = ""
now = Time.now
path = "_posts/#{now.strftime('%F')}-report.md"
path = checkFilename(path)
File.open(path, "w") do |f|
f.puts "---"
f.puts "layout: post"
f.puts "title: \"\""
f.puts "categories: unknown"
f.puts "date: \"#{now.strftime('%F %T')}\""
f.puts "---"
f.puts ""
f.puts ""
end
sh "atom #{path}"
end
desc "check duplicate filename"
def checkFilename(filename)
while File.exist?(filename)
result = filename.match(/(.*)(\d+)?.md/)
unless result[2].nil?
filename = "#{result[1]}#{(result[2].to_i + 1).to_s}.md"
else
filename = "#{result[1]}2.md"
end
end
return filename
end
上書きが怖いので重複した場合、インクリメントすることで避ける。 日付とかタイトルとかカテゴリーとかは自分の思想信条に関わるものっぽいので記載しない。 プログラミング言語に重複するファイルがあった場合にファイル名に勝手にインクリメントつけてくれる機能欲しい。
task :default
を今頃知った。めっちゃ楽だな。