Middlemanでブログを書いていて、ふと思ったのですが、記事の作成日は表示しているのですが、更新日は表示されていないんですよね。これじゃ、せっかく過去の記事を修正しても、読者に古い記事だと思われて記事の信用度が落ちてしまいますよね。
更新日付というのはこういうやつです。
手順
WordPressのサイトだと普通にあるんですが、Middlemanはデフォルトだと更新日付までは表示しないことが多いと思います。
なので、あまりネット上に手順などもないのですが、意外と簡単にできました。
下のGemを利用します。
https://github.com/AndrewKvalheim/middleman-vcs-time
Gemfileに以下を追記し、bundle install
を実行。
1 |
gem 'middleman-vcs-time' |
config.rbに以下を追記。
1 |
activate :vcs_time |
すると、コード内で以下が使えるようになります。
1 |
current_page.mtime # => 2014-01-20 17:31:50 -0800 |
自分は、viewでは下のように書いています。
1 2 3 4 |
- if (article.mtime.to_date - article.date.to_date).to_i > 7 span.article__info_item i.fa.fa-repeat = article.mtime.strftime("%Y/%m/%d") |
記事投稿日と、更新日が7日以内であれば、特に表示する必要はないかな、と思い上のようなif文になっています。つまり、投稿直後は結構、誤字とかで修正は頻繁にするので、それをいちいち更新日にしなくてもいいと思ったからです。
クルッと回っているようなアイコンはfontawsomeのfa-repeatを使っています。
スポンサーリンク
日付はどうやって取得しているのか
このgemは、gitなどのバージョン管理システムから更新日付をとってきてくれるといます。最初は下の記事(英語)にあるような、ファイルのタイムスタンプを使用する手順を考えていましたが、gitの履歴にある日付のほうが正確だと思うので、こちらのgemを採用することにしました。
Show last modified date in Middleman
注意点
gitから更新日付をとってきているので、middleman build
する前に、commitをしておかないと、更新日付が更新されません。
このあたりは、ファイルのタイムスタンプのほうが楽そうですね。
とはいえ、gitと同じ日付の方が、更新履歴もおいやすいので、長期的に見れば楽だと思います。