Mac上で静的サイトジェネレーターのHugoを使って日本語のファイル名のマークダウンからHTMLを生成したときに、パーマリンクのエンコーディングがうまくいきません。
例:
$ hugo new test_site // プロジェクトの生成
$ cd test_site
$ hugo new post/ダミー.md
$ vi content/post/ダミー.md // draft = trueを削除
$ hugo // HTML生成
すると、以下のようなファイルが生成されます
public/sitemap.xml
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://replace-this-with-your-hugo-site.com/</loc>
<lastmod>2016-03-06T19:03:05+09:00</lastmod>
<priority>0</priority>
</url>
<url>
<loc>http://replace-this-with-your-hugo-site.com/post/%E3%82%BF%E3%82%99%E3%83%9F%E3%83%BC/</loc>
<lastmod>2016-03-06T19:03:05+09:00</lastmod>
</url>
</urlset>
ここで問題なのが%E3%82%BF%E3%82%99%E3%83%9F%E3%83%BC
です。このサイトでURLのエンコードをしてみると、タ†ミー
となってしまいます。
この原因は、Hugoがパーマリンクを生成する際、デフォルトではcontent/
以下のファイル構成をそのまま使うことです。このときのエンコーディングが使っているファイルシステムに依存しているため、Macの場合、濁音問題が起きてしまいます。
とりあえずの回避方法として、以下のようにパーマリンクをファイル名ではなく、記事タイトルから生成するように設定すれば、ファイルの本文自体はUTF-8なので、ちゃんとUTF-8でURLエンコードされるようになります。(その他の命名規則についてはこちら )
config.toml
[permalinks]
post= "/:section/:title"
どなたか直接的な解決方法をご存知でしたら教えてください。