前の記事の続き。
最終的にHugoにすることになった。
- やりたいのは「記事集」みたいなやつ
- 静的ページとフィードアイテム?みたいな区別はそこまで必要ではない
- まして立派なトップページとかはいらないんだよなぁ〜
- Docusaurusは寧ろstaticな「サイト」を主眼としている印象。実際、「トップにfeed並べたいなあ・・」というところで手が止まってしまった
- 「静的サイトジェネレータ」ってスコープでいくと、(ちょっと古い記事だけど)すげーたくさんあるw
- その中で、hugo良さそうかな〜と思っていたら会社の人にも「hugoはいいぞ〜」って聞いたので選択
という流れで。
整備にあたって、主にここら辺の記事を参考にさせていただきました。
circleci.com hori-ryota.com chroju.github.io
で、実際に書いたcircleciの設定はこんな感じ。*1
version: 2 jobs: build: docker: - image: felicianotech/docker-hugo:latest steps: - checkout - run: git config --global user.email (ここにemail) - run: git config --global user.name (ここに名前) - run: echo "machine github.com login (ここにgithub id) password $GITHUB_TOKEN" > ~/.netrc - run: git submodule sync - run: git submodule update --init --recursive - run: git worktree add -B gh-pages public origin/gh-pages - run: rm -rf public/* - run: hugo # ユーザページサイトにPushする - deploy: command: cd public && git add . && git diff --cached --exit-code --quiet || git commit -m "Rebuilding site" && git push origin gh-pages workflows: version: 2 build: jobs: - build: filters: branches: only: master
ちょっと無駄がありそうな気もするんだけど・・・
machine github.com login
とかは要らないのかもな?ひとまず調べても試してもいないです。
- hugo作れる〜なdocker imageがあるのでそのまま使わせてもらう
- themeをsubmoduleで入れているので、checkoutしたらsyncして
- 今回は
gh-pages
ブランチを使ってるのでpublic
ディレクトリをsubtreeでgh-pages
ブランチ化して*2 hugo
コマンドでpublic
ディレクトリ(=gh-pagee
ブランチのroot)にサイトを生成してpublic
ディレクトリに移動して、add & commit & push- workflowsで「マスターの更新があった時だけ実行」というfilterを掛けて
- master merge時にサイトが更新されるようにする
という流れ。
もうちょいスッキリさせられる気はするけど、とりあえずこれで動く。
しかしながら感動したのは、「hugoって何やってるの?」みたいなところを理解しなくてもそのまま動いた!!という点。
多少コマンドや設定周りでドキュメントを読みはしたものの、ソースコード読んだり〜とかは全くしていない。
よいツールだなぁ〜という印象。。golangだとこんな感じでポータビリティの高いソフトを作りやすいのかな?とか思ったり。