HUGOの初期セットアップ

Quick Start | Hugo

インストール

brew install hugo

バージョン確認

hugo version

新規サイト作成

hugo new site プロジェクトディレクトリ名

テーマ追加

  • 自作したテーマでももちろん良いが、ゼロからの構築は大変
  • Hugo 公式も推奨しているテーマ ananke をインストールし、それをカスタマイズしていく方が楽
cd ディレクトリ名
git init
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
  • テーマを有効化する
echo theme = \"ananke\" >> config.toml

config.toml

  • config.toml は、Hugo サイトの各種設定を記述するファイル
    • このファイルから様々なカスタマイズの設定を行う

Archetypes を設定する

Archetypes | Hugo

フロントマターを設定する

Front Matter | Hugo

  • カテゴリー・タグ・月別アーカイブなどを作成する場合は、タクソノミーも設定する

Taxonomies | Hugo

assets ディレクトリに各種ファイル用のディレクトリを作成

  • css, js, (グローバルで管理する)画像などを格納するための各種ディレクトリを用意する
  • テーマ/assets ディレクトリ配下に作成する

Sass

  • root/themes/ananke/assets/scss/main.scss

画像

  • root/themes/ananke/assets/img/common/logo.svg

試しにコンテンツを追加する

  • Hugo は、content フォルダにある Markdown ファイルをコンバートする
  • hugo new コマンドで、基本となるフォーマットを記述した Markdown ファイルを生成してくれる
hugo new ファイル名.md
  • 階層を設けたい場合は、ディレクトリを含めたパスを指定すればよい
hugo new ディレクトリ名/ファイル名.md

ローカルサーバー起動

hugo server
  • サーバーを起動することで、以下の URL からアクセスできる
    • http://localhost:1313/
  • ただし、デフォルトのままだと、複数のプロジェクトサイトを同時進行する際にポート番号が重複する可能性がある
  • また、便利に実行環境を用意できるオプションなどもあるため、多少のカスタマイズを行っていた方がよい

HTML ファイル生成

  • 以下のコマンドで public ディレクトリ配下に HTML ファイルなどが一式生成される
hugo
  • ソースコードを圧縮する場合は以下で実行
hugo --minify

ファイルパスがおかしい問題

  • デフォルトのままだと、リンクや画像、css などは相対パス表記で出力される
    • ただ、階層が変わると当然ながらリンク切れを起こす
      • この問題の解決方法はまだ未確認

とりあえず当面のしのぎ

  • config.toml に以下を記述することで、生成されるパスが相対パス → 絶対パスになる
    • baseURL + パス 表記となる)
canonifyurls = true
  • なお、この設定はローカルサーバーでの表記には影響しない
    • http://localhost:1313/style.min.css といった表記となる)