はじめに
この記事では、Hugoのインストールから簡単なサイトの作成までの流れを紹介する。
環境情報は以下の通り。
環境情報 | |
---|---|
PC | Apple M1 Pro |
OS | Sonoma 14.4 |
Hugo | v0.133 |
Hugoとは
- 静的サイトジェネレーターの1つ
- Go言語で開発された高速なHTMLサイト作成ツール
- 動的なデータベース等を使わず静的ファイルのみでサイトを構成する
- ビルドが非常に高速、セキュリティ面でのリスクが少ない、といったメリットがある
1. Homebrewをインストールする
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
(インストールコマンドはHomebrew公式サイトより)
2. Hugoをインストールする
$ brew install hugo
$ hugo version
hugo v0.133.1+extended darwin/arm64 BuildDate=2024-08-26T13:58:46Z VendorInfo=brew
バージョンが確認出来ればインストール完了。
3. Hugoのサイトを作成する
$ cd ~
$ mkdir hugo_practice # 専用のディレクトリを作成
$ cd hugo_practice # 作成したディレクトリに移動
hugo_practice $ hugo new site test_site
Congratulations! Your new Hugo site was created in /Users/[user_name]/hugo_practice/test_site.
-
hugo new site <site_name>
:現在いるディレクトリに<site_name>で指定した名前のサイトを作成するコマンド
hugo_practice $ cd test_site
test_site $ tree .
.
├── archetypes
│ └── default.md
├── assets
├── content
├── data
├── hugo.toml
├── i18n
├── layouts
├── static
└── themes
9 directories, 2 files
作成されたサイトのディレクトリ構造はこんな感じ
4. テーマをインストールする
Hugo公式テーマサイトから使用したいテーマを選択する。
今回は Hermit-V2
を使用。
Downloadボタンを押すとGitHubのリポジトリページに遷移するので、先ほど作成したサイトのthemesディレクトリ下にcloneし、hugo.tomlに使用するテーマを追加する。
test_site $ git clone https://github.com/1bl4z3r/hermit-V2 themes/hermit-v2
baseURL = 'https://example.org/'
languageCode = 'en-us'
title = 'My New Hugo Site'
+ theme = 'hermit-v2'
5. 開発サーバーを立ち上げる
テーマがインストールできたので、サーバーを起動。
test_site $ hugo server
Watching for changes in /Users/[user_name]/hugo_practice/test_site/{archetypes,assets,content,data,i18n,layouts,static,themes}
Watching for config changes in /Users/[user_name]/hugo_practice/test_site/hugo.toml
Start building sites …
hugo v0.133.1+extended darwin/arm64 BuildDate=2024-08-26T13:58:46Z VendorInfo=brew
| EN
-------------------+-----
Pages | 8
Paginator pages | 0
Non-page files | 0
Static files | 0
Processed images | 0
Aliases | 0
Cleaned | 0
Built in 13 ms
Environment: "development"
Serving pages from disk
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop
-
hugo server
:ローカル開発サーバーを起動し、ローカル環境でサイトをプレビューできるようにするためのコマンド- デフォルトだと
http\://localhost:1313/
でサイトが立ち上がる - サイトのコンテンツやテンプレートの内容の変更を検知すると自動的にサイトを再ビルドし、ブラウザを更新する(この機能を「ホットリロード」と呼ぶ。)
- デフォルトだと
http\://localhost:1313/
で、先ほどインストールしたテーマが反映されたサイトが見られるようになった。
6. サイトをカスタマイズする
この段階だとサイトにはタイトルが表示されているだけなので、少し手を加えてそれっぽくしてみる。
各テーマのリポジトリページには、基本の構成やカスタマイズの方法などが記載されているので、それを参考に自分のサイトに必要なコードをコピペする。
今回使用しているテーマはデモサイトのブランチを公開しているので、hugo.tomlから設定をピックアップして自分のサイトのhugo.tomlに追加し、細かい部分を書き換えてみる。
baseURL = 'https://example.org/'
languageCode = 'en-us'
- title = 'My New Hugo Site'
+ title = "Chika's Hugo Site"
theme = 'hermit-v2'
+ [languages]
+ [languages.en]
+ [languages.en.params]
+ homeSubtitle = 'This is my portfolio site created with Hugo.'
+
+ [params.author]
+ name = 'kwtck'
+
+ [params]
+ homeSubtitlePrinter = true
+ [[params.socialLinks]]
+ name = 'github'
+ url = 'https://github.com/'
+ [[params.socialLinks]]
+ name = 'facebook'
+ url = 'https://www.facebook.com/?locale=ja_JP'
+ [[params.socialLinks]]
+ name = 'twitter'
+ url = 'https://x.com/?lang=ja'
+ [[params.socialLinks]]
+ name = 'instagram'
+ url = 'https://www.instagram.com/'
+
+ [menu]
+ [[menu.main]]
+ name = 'Profile'
+ url = 'profile/'
+ weight = 1
+ [[menu.main]]
+ name = 'Skills'
+ url = 'skills/'
+ weight = 2
これだけでも、かなりそれっぽくなる。
7. 新規ページを作成する
6で「Profile」と「Skills」いうメニューを配置したが、該当のページを作成していないため、このリンクを押しても現時点では404となってしまう。
正しくページが表示されるように、ひとまずProfileページを作成する。
test_site $ hugo new profile.md
-
hugo new <file_name>
:contentディレクトリ下に<file_name>で指定した名前のページを作成するコマンド
作成されたファイルを編集して、プロフィール項目を追加する。
+++
title = 'Profile'
date = 2024-09-08T13:52:13+09:00
draft = true
+++
+ Name: Chika
+ Address: Tokyo
+ Occupation: Web Engineer
+ Hobby: Curry Shop Tour
デフォルトだとドラフト状態でファイルが作成されているので、-D
オプションを付けてドラフト状態のコンテンツも含めてサーバーを起動する。
test_site $ hugo server -D
再度、http://localhost:1313/profile/にアクセスしてみる。
ページが作成され、プロフィール項目が反映されていることが確認できた。
「Skills」ページも同じ要領で作成することができる。
おわりに
ものの5分程度で簡単なサイトを作成することができた。
ページを増やしたり、cssやjsで色々いじってみたりするともっとリッチになりそう。
ちなみに、Hugoは全てのコンテンツをHTMLファイルとして変換してpublicディレクトリに出力するため、サイトを公開する際にはpublicディレクトリだけウェブサーバーにアップロードすればOK。