Octopress から Hugo へ移行した
以前 Octopress に移行 してから2年弱になるが、アップデートで壊れてしまったのでこの機会にと別の方法を模索した。 結果 Hugo に移行することにした。こっから先は Octopress から Hugo への移行方法の備忘録となる。
Hugo のセットアップ
Quick Start を参考にしてインストールする。
こちらではテーマのインストールに submodule
を利用しているが、ややこしくなるので使わないことにする。
インストール
|
|
サイトのセットアップ
|
|
テーマのインストールと設定
Hugo Theme Gallery から適当に気に入ったものを探す。
気に入ったテーマを themes
ディレクトリ入れる。
git submodule add
は使わない方針にする。
サンプル投稿
サンプル投稿をする。テーマによって post
か posts
ディレクトリを使用しているので合わせたほうが無難。
|
|
サーバーを起動して確認
|
|
http://localhost:1313/ で確認。
Octopress からのデータ移行
この移行作業がブログ引っ越しにおいて一番大変な作業になる。過去を全部捨てるなら楽でいいんですけどね。
さてこちらを見ると以下のようにあるので slug の設定はしたほうがいいだろう。やり方はリンク元を参照されたい。
Hugoは特に指定しないとfront matterのtitleを記事URLに使うのだが、タイトルが日本語というかマルチバイトの場合アレなので、urlかslugを自分で書いて直接指定することになると思う。
その他の移行は概ねこちらを参考にした。 以下ほぼ同じ内容だがいくつかこちらで追記した部分もある。
記事と画像データのコピー
Markdown 記事のコピー
|
|
画像のコピー
|
|
Octopress の独自タグを置換
Octopress のみでしか使えない独自記法を Hugo でも扱えるよう書き換える。
|
|
パーマリンク設定
Octopress と同じパーマリンク設定を保持したい場合に必要な作業となる。 こちらを参考にした。
|
|
テーマのカスタマイズ
テーマはこちらを利用させて頂いている。
https://themes.gohugo.io/hugo-theme-even/
テーマディレクトリの内容をカスタマイズした場合は、以下のコマンドを打つ。
|
|
デプロイ
Octopress と違ってデプロイタスクがないので作る必要がある。
いくつか注意点
- 既存の github.io リポジトリを上書きする形にする
- 既存のリポジトリはバックアップを取っておく
- Octopress と同様のブランチ運用にする
GitHub Pages のルールについて重要な点
master
ブランチのリポジトリ直下の内容がホスティングされるということ
Octopress の仕組みのおさらい
- github.io には
master
とsource
ブランチがある source
には markdown で書いた記事と Octopress があるmaster
には markdown から Octopress が生成した静的HTMLファイルがある- https://[username].github.io/ は
master
を表示している - 記事を編集する時は
source
で行う - 基本
master
にcheckout
することはない
上記を踏まえて hugo でのデプロイ方針は以下の通り
- ドキュメントに該当しない hugo 関連のソースを
source
ブランチに移す - ビルドした html, css, js などのデータを
subtree
としてmaster
ブランチに作る - github.io のドキュメントルートを
/public
とする
Github Pages の変更作業
Octopress で運用していた Github Pages を Hugo に中身を入れ替える作業となる。
以下 hugo ディレクトリで作業する。
|
|
マスターブランチから source ブランチをチェックアウト
|
|
既存の source に強制 push (強制 push なので注意する)
|
|
Github のページに行って settings
→ Branches
→ Default branch を source
に変更する (master
ブランチを消すため)
ローカルとリモートの master
ブランチを削除する
|
|
hugo コマンドで静的データを生成する
|
|
コミット && push
|
|
以上で完了となる。
記事の更新方法
なお更新は次のようにする。
- 通常の作業は
source
ブランチで行う - 記事を書き終えたら
git add --all && git commit
を行う - デプロイするときは
./deploy.sh
を走らせる
|
|
別PCなどで取り込む場合
通常の git clone
をした後 git subtree add --prefix=public/ origin master
で subtree を登録後 master
の内容を git subtree pull --prefix=public/ origin master
で取り込む。
カスタムドメインの設定
カスタムドメイン設定をしている場合 public/CNAME
ファイルにドメインの記載が必要となる。
https://gohugo.io/hosting-and-deployment/hosting-on-github/#use-a-custom-domain
参考にさせて頂いた記事
先人のお世話になりました。
Author
LastMod 2018-12-27