青葉台旭のノートブック

やっぱり記事投稿ディレクトリは階層化しない方が良い

やっぱり記事投稿ディレクトリは階層化しない方が良い

http://aobadaiakira.jp/notebook/onedir_or_not.html の続き。

自作の静的サイト・ジェネレーターについて。

やっぱり記事投稿ディレクトリは階層化しない方が良い。 階層化すれば、いずれ「記事ファイルを移動する、ディレクトリを変更する」という誘惑にかられる。 たとえば年別に投稿ディレクトリを分けたとして、「投稿した記事の年ディレクトリを間違えた」と 後で気づくような事態が、いつかは起きる。 その時に正しい年ディレクトリに記事を移動したいという気持ちが絶対に起きる。 移動すれば記事URLの永続性が損なわれる(パーマネント・リンクでなくなる)

たとえば元記事ディレクトリentries以下に、「entries/year2017」と「entries/year2018」という2つの サブディレクトリがあったとして、2018年の投稿なのに「entries/year2017」ディレクトリに入れてしまって、 そのまま気づかずに1か月が過ぎてしまったとする。 当然、1か月後に気づいたとき正しいディレクトリに移動したい誘惑にかられるが、そうするとリンクの永続性が 途切れてしまう。

妥協して、HTML変換時に、 Markdownの元記事(階層ディレクトリ)→HTMLファイル(単一ディレクトリ) にするという案もあるが、そうすると、たとえば元記事の複数のディレクトリに偶然同じ名前のファイルがあった時、 HTML変換時にどういう名前にするかという問題が出てくる。 「entries/year2017」と「entries/year2018」に、同じfoo.txtという記事ファイルがあった時、これをHTMLに変換するときに 一つのファイルに入れてしまうと、ファイル名が衝突してしまう。 たとえば「year2017_foo.html」「year2018_foo.html」という分け方は可能だろうが……それでもファイル名の衝突を 完全に防ぐことは出来ないだろう。

2017-04-11 16:49