Hugoを使って業績まとめページを作成し、GitHub Pagesを使って公開したので、手順をまとめます。(当初はJekyllを検討していたのですが、Rubyの環境構築で詰まったので諦めました。。。)
今回はコンテンツ更新用のリポジトリと公開用のリポジトリの二つを用意して運用する方針を取ります。ローカルの環境はMacbook Air, M1, 2020モデル、OSはMonterey 12.4です。
環境構築
まずはHugoをインストールします。今回はHomebrew経由でインストールしました。
Homebrew
公式サイトの指示に従って、以下のコマンドを打つとインストールできます。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Hugo
brew install hugo
で入ります。
Homebrewを使用しない方法
公式サイトには、
- Homebrewなどのパッケージマネージャーを経由してインストールする方法
- githubからソースコードを持ってきて自力でビルドする方法
が掲載されています。各方法の詳細はリンク先の公式ページをご参考ください。
コンテンツ更新用のリポジトリ
今回はこちらのリポジトリを元にページを作成します。使用するHugoのthemeはAcademicです。まずはwowchemy/starter-hugo-academicをforkし、コンテンツ更新用のリポジトリとします。
最低限の設定はこちらの記事を参考に行いました。手順は大きく変わりませんが、参考記事内で変更している.toml
ファイルは2022年9月1日時点では全て.yaml
ファイルに変更されていました。
forkした直後のcontent
フォルダは以下のような構成になってます。必要に応じてファイルを追加 / 削除してください。
content
├── authors
│ └── admin
├── home
│ ├── about.md
│ ├── accomplishments.md
│ ├── contact.md
│ ├── demo.md
│ ├── experience.md
│ ├── featured.md
│ ├── hero.md
│ ├── index.md
│ ├── people.md
│ ├── posts.md
│ ├── projects.md
│ ├── publications.md
│ ├── skills.md
│ ├── slider.md
│ ├── tags.md
│ └── talks.md
├── post
│ └── _index.md
├── publication
│ └── _index.md
└── event
└── _index.md
forkしたリポジトリのrootディレクトリでhugoコマンドを叩くとpublic
というディレクトリが生成されます。このpublic
ディレクトリがホームページ公開用のファイルを格納するディレクトリです。
今回はpublic
ディレクトリをgit submodule
によって公開用の別リポジトリで管理することにします。
公開ファイル用のリポジトリ
forkしたリポジトリのrootディレクトリで以下のコマンドを打つと、public
ディレクトリを公開用の別リポジトリで管理できるようになります。<username>
の部分にはご自身のgithubユーザー名を入れてください。また、事前に公開用のリポジトリとして<username>.github.io
を作成しておく必要があります。(リポジトリ名は必ずしも<username>.github.io
に従う必要はない?)
git submodule add https://github.com/<username>/<username>.github.io public
ホームページの運用
コンテンツ更新用のリポジトリで以下のコマンドを打つことで公開リポジトリと更新用リポジトリの両方に変更を反映することができます。Windowsの方はコマンドが異なるので適切なものに置き換えてください。
#!/bin/bash
set -ex
pushd public
git fetch -p
git checkout -B main origin/main
popd
# Build.
hugo --minify
pushd public
git add .
git commit -m "build source at $(date)."
git push origin HEAD
popd
git add
git commit -m "build source at $(date)."
git push origin HEAD
出版物(publication)ページの自動生成
academic
というPythonベースのコマンドラインツールを使用することで、Bibtexファイルからpublicationページを自動生成することができます。
pip install academic
でインストールできます。
academic import --bibtex my_publications.bib --publication-dir PUBLICATION_DIR
でページを生成できます。簡単ですね。
Event(Talk)やPostの追加
hugo new --kind <content type> <path to your content>
とすることで該当するページの雛形を作成することができます。
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
コメント