Hexo の 新規投稿パス を カスタマイズ

Hexo では 新しい投稿は hexo new "記事タイトル" コマンドで作成します. その際に新しいファイルは /source/_posts/記事タイトル.md として作成されます. 初めのうちはひとつのフォルダ内でよいのですが、ファイルが増えてくると管理に困ってしまいます.
このファイルが作成される場所を管理しやすいように Hexo を 設定したいと思います.

作業環境

  • Windows 7
  • Hexo 3.2

新規投稿ファイルの配置場所

この設定は _config.ymlnew_post_name に なります. 以下に初期設定を抜粋したように :title.md と なっているため、/source/_posts に コマンドの引数で与えた 記事のタイトル.md というファイルが作られます.

1
2
# Writing
new_post_name: :title.md # File name of new posts

ここの設定を変えることで、作成されるファイルをコントロールすることができます. パーマリンクの設定を例にみると permalink: :year/:month/:day/:title/ のように :year などの変数を使っています.
この例に倣って、以下のように年月フォルダにファイルを置くように設定してみます.

1
2
# Writing
new_post_name: :year/:month/:title.md # File name of new posts

hexo new "記事のタイトル" を 実行したところ、ねらったとおりに年月フォルダに作られるようになりました.
ここで使える変数についてのドキュメントは見当たらなかったのですが、Permalinks | Hexo を 参考に試してみました. :i_month:i_day などは動作しました. :id:categoryundefined というフォルダになります. カテゴリは、この時点では設定がないので当然ですね.

新しいフォルダへの引っ越し

これまでのファイルは自分でフォルダを作成する必要があります. フォルダを作成してファイルを移動することで完了です.
ここは自動でできないので致し方ありません.

ところで、

実は new_post_name の フォルダ部分 は ファイルを作成する際に参照される設定で、サイトの生成には関係していません.
そのため、これまでのファイル は そのままに、新しく作るものだけを新しい設定のフォルダで管理することもできますし、全く関係ないフォルダ名で管理することもできます. もちろん、日本語のフォルダ名も利用できます… (あとから気づいた orz)
そうなると内部的なカテゴリで分けても良かったのかもと思ったりもします.

ただ、ファイル名については URL で 使われるので、こちらに細工するこは URL として見えてしまうことを前提にする費用があります.
フォルダを内部的な カテゴリ や シリーズ で 整理して、ファイル名に連番を付けてもよいかと思ったのですが URL に 連番が出るのは悩みどころです.


最初にファイルを生成するときに、一定のルールに従って生成してくれるという機能の紹介でした.
ある程度ポストが増えてくるとファイル管理に意外と悩むものなんだなぁと感じます. 規模や特性によるので一概には言えないことなのでしょうが、何か良い方法があったら知りたいところです.