おことわり
こちらのページは、完全に自分向けの備忘録として書いています。
何かを期待されて訪問された方、ごめんなさい。
まったく役に立たないかと思われます・・・。
前提
前提として、
- Github Pages の環境を構築済み(サイト公開済み)
- ローカル環境をまっさらにした
という感じになります。
これを書いているのも、自分のパソコンを新しくしたときに2時間ほどハマったからで、未来の自分に向けてという感じです。
環境構築の簡単な流れ
基本編
Github に Hugo で作ったデータを入れる手順はこんな感じ。
- ローカル
- Hugo をインストールする
- テーマを決めて所定の場所に置く
- 設定ファイル
config.toml
を適宜修正する - 記事を書く
- Github
- 空のリポジトリ(全)を作る
- ローカル
- 空のリポジトリ(全)にプッシュする
Github Pages 編
- Github
- 空のリポジトリ(公開用)を作る ※Github Pages 用
- リポジトリの設定画面から、page の設定をする
- ソースの場所を選んだりします。
- ローカル
- public フォルダをサブモジュール化する
git submodule add git@github.com:ユーザー名/空のリポジトリ(公開用).git public
たぶん、public は空にしておかないとダメ。
空にする場合はgit rm -r public
で。
- いつも通りプッシュする
- public フォルダをサブモジュール化する
ちょっと解説
ファイル関係
Hugo で作成する記事は、基本的に content/post
の中に、Markdown 形式で保存していきます。
hugo
というコマンドを実行すると public
の中に、html などサイト公開用のファイル群が生成されます。
Github Pages で使うのは public
の中にあるファイルで、それ以外のファイルは不要です。
連携
生成されたファイル群を毎回手作業で公開用リポジトリにコピーするのは面倒です。
そこで、サブモジュール化という手段をとっています。
git submodule add git@github.com:ユーザー名/空のリポジトリ(公開用).git public
これをすることで、自動的に public
の中身が、公開用リポジトリに入っていきます。
なんて便利なんだ。
ローカル環境をまっさらにしたとき
- ローカル
- リポジトリ(全)を持ってくる
Git clone
- サブモジュール化をする
git submodule add git@github.com:ユーザー名/空のリポジトリ(公開用).git public
- リポジトリ(全)を持ってくる
以上。
少し悩んだ
リポジトリ(全)がそのまま公開されると勘違いして、プッシュしてデータも更新されたのに、なんでサイトの表示が更新されないのか悩んでいました。
Github Pages 用にリポジトリが分かれていたのをすっかり忘れていたのです。
あとで気付いたんですが、どうやってそちらのリポジトリにデータを送っていたのか忘れていて、四苦八苦しました。
これはサブモジュールを使っていたんですね。
まぁ、4年ほど前の環境ですし、環境って1回作ったらなかなか触ることもないので、忘れるのも仕方ないですね。年齢的なアレもあるし。
そんなときにここの記事を思い出せれば良しということで。