作ったものとか » Hugo テーマ

Hugo テーマ 2. まずは作ってみる

2026-05-28 21:26:15 Hugo
最終更新日から %s 以上が経過しています。
内容が古くなっている可能性があるのでご注意ください。

テーマを作りプロジェクトに適用してみます。

テーマを作成する

テーマの作成にもコマンドがあります。 これは単純にテーマに必要なファイルを作成してくれるコマンドです。

公式ドキュメントhugo new theme


ここでは “derty” という名前で作成してみます。

> hugo new theme derty

Creating new theme in (省略)/themes/derty

Note

実行するコマンドは “>” に続けて記載します。 出力例は続く行に “>” なしで記載します。

すると、以下のようにファイルが作成されます。

作成されたファイル (長いので折り畳み)
\---themes
    \---derty
        |   hugo.toml
        |
        +---archetypes
        |       default.md
        |
        +---assets
        |   +---css
        |   |   |   main.css
        |   |   |
        |   |   \---components
        |   |           footer.css
        |   |           header.css
        |   |
        |   \---js
        |           main.js
        |
        +---content
        |   |   _index.md
        |   |
        |   \---posts
        |       |   post-1.md
        |       |   post-2.md
        |       |   _index.md
        |       |
        |       \---post-3
        |               bryce-canyon.jpg
        |               index.md
        |
        +---data
        +---i18n
        +---layouts
        |   |   baseof.html
        |   |   home.html
        |   |   page.html
        |   |   section.html
        |   |   taxonomy.html
        |   |   term.html
        |   |
        |   \---_partials
        |       |   footer.html
        |       |   head.html
        |       |   header.html
        |       |   menu.html
        |       |   terms.html
        |       |
        |       \---head
        |               css.html
        |               js.html
        |
        \---static
                favicon.ico

余分なファイルを削除する

archetypes

hugo new content を実行した際に、セクション (ざっくり解説: content 内のサブフォルダー) ごとにコンテンツのひな形を定義しています。

テーマ側がセクションの構造を指定するような場合にはあった方が親切かもしれませんが、ここでは取り扱いません。

content

すでに自身のプロジェクトにコンテンツがある場合、themes/derty/content の方は不要ですので削除してしまいましょう。

コンテンツがまったくない状況であれば、残しておくと動作確認に便利ではあります。 が、いずれにしても、最終的には削除するようにしましょう。

(static/favicon.ico)

プロジェクトで favicon.ico を作っている場合そちらが優先されますが、ない場合にこのファイルが使われます。

使う側が混乱しそうなので (「なんでこんな favicon になったんだ!?」) よほど主張をしたいテーマでなければ削除した方が良いかと。

プロジェクトにテーマを適用する

プロジェクトの設定ファイルを編集し、いましがた作ったテーマを適用します。

設定ファイルは、プロジェクトのルートディレクトリーに config.toml といった名前で存在するはずです。

Warning

編集しようとしているのはテーマの設定ファイルではありませんので、ご注意ください。

🙅 themes/derty/hugo.toml
👍 config.toml

theme = "derty"

そのうえで、プレビューしてみましょう。

> hugo serve -D

サイトのトップページ

サイトのトップページ

個別の記事のページ(コンテンツページ)

個別の記事のページ(コンテンツページ)

セクションページ

セクションページ