WordPress から Hugo への移行(2)ディレクトリ構成

前回 WordPress のコンテンツを書き出し、Hugo でサンプルページを表示するところまでやった。

今回は Hugo のコンテンツを整理するディレクトリ構成について考えてみた。

環境:macOS Ventura 13.5(英語環境)

Hugo では content ディレクトリに公開用コンテンツを入れる。公開用の URL をどうするかを md ファイルの Front matter で指定するが、content ディレクトリ内のディレクトリ構成は自由でいい。逆に言えば、content ディレクトリ内は自分が分かりやすいようディレクトリ分けをすればよく、実際の URL は Front matter で指定すればいい。ディレクトリと Front matter をそれぞれ、自分が分かりやすいように一貫性を持たせることができるわけだ。

ディレクトリ構成に決まりがないぶん、記事数が多い場合はゴチャゴチャになる可能性がある。なにしろ僕の WordPress の記事数が 2000 を超えているから。

また WordPress から変換してきたその 2000 を超えるファイルのディレクトリ分け作業もできるだけ簡潔にしたい。

WordPress の wordpress-to-hugo-exporter プラグインで書き出した各記事は、2023-09-29-this-is-my-post.md のような、{年}-{月}-{日}-{slug}.md の形式のファイル名になっている。

これをこのまま Hugo の content ディレクトリに置いてもいいが、なかには画像ファイルのある記事もある。Hugo はディレクトリで個別記事を管理するので画像ファイルは対応する記事と同じディレクトリにまとめたほうが管理しやすい。WordPress のように記事とメディアを別々に管理するよりはるかに分かりやすい。

つまり以下のようなディレクトリ構成にすることにした。

content - post - 2023 - '2023-09-29-this-is-my-post'

この '2023-09-29-this-is-my-post' のなかに、2023-09-29-this-is-my-post.md と hogehoge.jpg のようにファイルを入れていく。

(1)Script Editor を開き、以下のコードを入力する。

tell application "Finder"
	
	set selected to selection
	
	set current_folder to item 1 of selected
	
	set mlist to every file of current_folder
	
	repeat with this_file in mlist
		
		set cur_ext to name extension of this_file
		
		set new_name to text 1 thru -((length of cur_ext) + 2) of (name of this_file as text)
		
		set new_folder to make new folder with properties {name:new_name} at current_folder
		
		move this_file to new_folder
		
	end repeat
	
end tell

(2)Finder で wordpress-to-hugo-exporter プラグインで書き出した md ファイルがあるディレクトリを選択し、Script Editor の三角ボタン(実行ボタン)を押す。

すると全記事において各ファイル名のディレクトリが作成され、それぞれのファイルがそのディレクトリに格納される。つまり、2023-09-29-this-is-my-post.md なら 2023-09-29-this-is-my-post というディレクトリ記事に格納される。

(3)年ごとの分類は手動でやる。8年分なので 2023 とディレクトリを作って、そこに2のディレクトリをごっそり入れる。年はディレクトリ名の最初の4文字で見ればいいので分かりやすい。

僕が使う Stack テーマではディレクトリなど作らなくても、content/post ディレクトリに md ファイルをそのまま入れた上でサーバーを起動してもブログとして認識される。themes/Stack/config.yaml をいじれば見た目などをカスタマイズできる。

このテーマはデフォルトでは通常のブログのようなサイドバーにアーカイブへのリンクやカテゴリーやタグなどのリンクがないが、それでも一応ブログとしての形になった。

しかし WordPress から変換してきた Markdown ファイルは手直しが必要なので、次はそれをやっていく。

(続く)

参考:
How to Create Folders Named After File Names with Apple Script Editor - MAC only - YouTube
https://www.youtube.com/watch?v=L2JnNH-s3VM


この記事が気に入ったらサポートをしてみませんか?