HugoとGitHub Pagesを使って、プログラミングの学習記録サイトを作りたいと思います。
なぜ記録するのか?
ハッカーになろう(How To Became A Hacker)で「3. World Wide Web を使う方法を学び、HTML を書くこと。」は必須スキルと紹介されています。
このスキルを身に付けるために、プログラミングの学習記録をつけたいと思います。
何を記録するのか?
ハッキングの学び方(How To Learn Hacking)で、ハッキングの学習段階が紹介されています。
この学習方法でプログラミングを学んでいきます。
(インクリメンタルハッキングサイクル)"] end subgraph three["第三段階"] s3["オリジナルプロジェクト開発"] end one<-->two two-->three
本サイトでは、学んだ事や成果物を以下のルールで記録します。
(インクリメンタルハッキングサイクル)"] o1["TIL"]; o2["Blog"]; o3["My Tools"]; o4["IHC"]; s1-- "学んだ事(メモ)" -->o1; s1-- "学んだ事のまとめ" -->o2; s2-->o3; s3-->o4;
どうやって記録するのか?
スタティックサイトジェネレータであるHugoを使ってサイトを作成します。 スタティックサイトジェネレータとは、静的コンテンツの作成に特化した手軽にWebサイトを構築できるツールです。
今回はあらかじめ用意したプログラミング学習記録用の Hugo Themeをベースにサイトを作成します。
サイトの作成
- Hugoでサイトを作成
- プログラミング学習記録用の Hugo Themeのインストール手順に従いインストールおよびセットアップ
- 設定ファイル(
config.toml
)をカスタマイズ(title
やbaseURL
、publishDir
などを変更してください) (参考: 作成例)
次に、動作確認します
ターミナルで以下を実行します。
hugo server --disableFastRender --ignoreCache --cleanDestinationDir
http://localhost:1313/にアクセスするとサイトを確認できます。
注意: baseURL
に’https://kantas-spike.github.io/portfolio/'のようなサブディレクトリを指定した場合は、http://localhost:1313/portfolio/にアクセスする必要があります。
LiveReloadが有効になっているので、設定やページを変更した場合、直ちにブラウザ上に反映されます。
動作確認を終了するには、ターミナルで Ctrl+C
を押します。
記事を追加します
Blog
に記事を追加する場合は、以下を実行します。
hugo new blog/create-my-portfolio-site.md
すると、content/blog/create-my-portfollio-site.md
が作成されます。
このファイルを編集して記事を書きましょう。
また、コマンドは以下のルールになっています。
本サイトでは、セクション名
部分にblog
、til
、mytools
、ihc
を指定可能です。
hugo new セクション名/記事名.md
記事の内容が確認できたら、コミットしましょう。
注意: 記事ファイルのフロントマター部分のdraft
がデフォルトでtrue
になっています。
hugo
は、ドラフト状態のファイルを出力しないため、記事が書けたら、draft
行を削除するか、draft: false
に変更しましょう。
draft: false # デフォルトはtrue
最後に、サイトを生成します
ターミナルで以下を実行すると、publishDir
で指定したフォルダにサイトが出力されます。
GitHub Pages
の利用する場合は、あらかじめ publishDir = "docs"
に変更してください。
hugo --cleanDestinationDir
どこに公開するのか?
無料で簡単に始められるGitHub Pages を使ってサイトを公開します。
(参考: Hugo
のHosting & Deploymentページに、各種ホスティングサービスへのデプロイ方法が記載されています。)
GitHub Pagesの種類にあるように、
GitHub Pages
には以下の2種類あります。
- ユーザー・組織ページ(URL:
<https://<USERNAME|ORGANIZATION>.github.io/>
) - プロジェクトページ(URL:
https://<USERNAME|ORGANIZATION>.github.io/<PROJECT>/
)
今回は、「2. プロジェクトページ」を採用します。
GitHub リポジトリの準備します
GitHub リポジトリを作成し、カスタマイズしたポートフォリオサイトの雛形をプッシュします。 (ただし、kantas-spike/portfolioをフォークした人はリポジトリの作成は不要です。)
docs
をプッシュします
さらに、以下のコマンドによりサイトを生成し、 docs
をリポジトリにプッシュします。
hugo --cleanDestinationDir
リポジトリのGitHub Pages
を設定し、サイトを公開する
GitHubリポジトリページのSettings
ページを表示します。
Pages
を選択し、Source
に公開するサイトのブランチ名とフォルダ名を指定します。
今回は、Branch: main
、フォルダ: /docs
を選択します。
すると、以下のように公開サイトのURLが表示されます。
Your site is published at https://kantas-spike.github.io/portfolio/
このURLが、あなたのポートフォリオサイトになります。
以上で、サイトが公開されました。URLにアクセスできるまに少し時間(数分ぐらい?)がかかる場合があります。
まとめ
HugoとGitHub Pagesを使えば、手軽にサイトを作成できます。
プログラミングの学習記録を継続的に更新していきましょう。
また、今後、ポートフォリオサイト自体に機能やレイアウト、デザインを変更したくなると思います。 ポートフォリオサイトのテーマをインクリメンタルハッキングサイクルの対象にすると良さそうです。
参考
Hugoの簡単な使い方を動画にもまとめています。