chroju.dev/blog

the world as code

ブログをHugoに移行した

すでに流行りは一巡しているような気もするが、Hugoを導入してみた。もともと自宅iMacにOctopressを置いてブログ作業はしていたのだが、外でもブログ更新ぐらいできた方がいいなぁと考え、クラウド上の開発用端末にレポジトリ移しちゃおうということになり、じゃあついでだからと移行してみた。Go自体は最近使っているオープンソースがそれであったという試しがあり、すでに導入は終えていた(ただし書けない)。

随所で語られているように移行自体は大したものではなく、Markdownでいずれも互換性があるし、Front MatterもYAML形式であれば同一。Hugoレポジトリのcontent/post配下に記事ファイルを突っ込めば移行としてはおしまい。多少の差異については以下の記事が詳しい。

OctopressからHugoへ移行した | SOTA

ただ自分の場合はパーマリンクを前ブログから保てていない。というのも、Octopressで使っていた記事ファイル名がYYYY-MM-DD-foobar.markdownの形だったのに対し、今回は記事のパーマリンクをconfig.tomlで以下のように設定してしまっている。

[permalinks]
    post = "/blog/:year/:month/:day/:filename/"

従って/blog/YYYY/MM/DD/YYYY-MM-DD-foobar/という歪なパーマリンクになってしまっている記事がいくつかある。ほとんどの記事はfoobar.markdownに直したのだが、はてなブログ時代から移植した記事はYYYY-MM-DD-post.markdownという適当なパーマリンクにしていたので、一括して直すことができなかった。時間を見てこれらも意味のあるURLに直すつもり。

記事を公開する流れは以下のようになる。

# 記事作成
$ hugo new post/title.md
$ vi content/post/title.md
# ビルド
$ hugo
# commit
$ cd public
$ git add .
$ git commit -m "new post"
$ git push origin master

hugoコマンドでビルドするとpublicフォルダにサイト構成全体が吐かれるので、それをそのままgit pushして終わり。ただ実際にバージョン管理したいのはpublicというより、設定ファイルや元のMarkdownが詰まったHugoのレポジトリ全体ではないかという気もするので、後々以下の記事のようにレポジトリ全体でgit pushしてCIでビルドさせる形に変えたいと思う。

HugoとCircleCIでGitHub PagesにBlogを公開してみた - Hori Blog

なおテーマはとても悩みどころで、しばらくコロコロ変わるかもしれない。というか自分でカスタマイズしたいけどCSSなんて今更書けるのか。。。

(追記 2016-02-22 23:50)

フィードのファイルパスがデフォルトだとindex.xmlになってしまうので、Octopressから変更がないようatom.xmlに直した。config.tomlで指定ができる。

rssuri = "atom.xml"

参考:What is {{ .RSSlink }}, exactly? - support - Hugo Discussion

その他参考記事