Hexo の記事投稿日表示フォーマットを変更する

Hexo の Lanscape テーマを使用すると、初期設定では日時フォーマットが YYYY-MM-DD になっているが、これをYYYY年MM月DD日に変更したい。

テーマの記事投稿日部分を確認する

怪しそうなファイル/themes/landscape/layout/_partial/post/date.ejs を開いてみると、記事投稿日の表示は以下のようになっている。

1
2
3
<a href="<%- url_for(post.path) %>" class="<%= class_name %>">
<time datetime="<%= date_xml(post.date) %>" itemprop="datePublished"><%= date(post.date, date_format) %></time>
</a>

どうやら記事のFront-matter の date から投稿日を取得し、設定ファイル _confing.yml 内の date_format で日時フォーマットをしているらしい。

設定ファイル _config.yml を確認する

date_fomrat という設定項目が見つかるので、ここを書き換えてみる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>git diff _config.yml
diff --git a/_config.yml b/_config.yml
index 96d4783..7a3973c 100644
--- a/_config.yml
+++ b/_config.yml
@@ -74,7 +74,7 @@ meta_generator: true
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
-date_format: YYYY-MM-DD
+date_format: YYYY年MM月DD日
time_format: HH:mm:ss
## Use post's date for updated date unless set in front-matter
use_date_for_updated: false

サイトを開いてみると、記事投稿日の日時フォーマットが「YYYY年MM月DD日」に変更されていることが確認できた。