Hugo テーマのカスタマイズ:徹底解説
· 読了時間 3 分
はじめに
Hugo には美しいテーマが数多く用意されているが、特定のニーズに合わせてカスタマイズしたい場面は多い。本ガイドでは、Hugo テーマを効果的にカスタマイズする手順を順を追って解説する。
Hugo テーマの構造を理解する
カスタマイズに取りかかる前に、Hugo テーマがどのように構成されているかを理解しておくことが重要である。
基本的なテーマカスタマイズ
1. 色とタイポグラフィ
最も手軽に始められるカスタマイズは、CSS の変更である:
assets/css/main.css
:root {
--primary-color: #007bff;
--secondary-color: #6c757d;
--font-family: 'Inter', sans-serif;
}
body {
font-family: var(--font-family);
color: #333;
}
2. レイアウトの変更
サイトの layouts ディレクトリに対応するファイルを作成することで、テーマの任意のレイアウトファイルを上書きできる。
高度なカスタマイズ手法
カスタムショートコードの作成
ショートコードは、カスタム機能を追加するための強力な手段である:
layouts/shortcodes/custom-alert.html
<div className="alert alert-{{ .Get 0 }}">
{{ .Inner | markdownify }}
</div>
パーシャルの活用
パーシャルを活用すると、コードを DRY に保ち、保守しやすくなる:
layouts/partials/custom-header.html
<header className="site-header">
<nav>
{{ range .Site.Menus.main }}
<a href="{{ .URL }}">{{ .Name }}</a>
{{ end }}
</nav>
</header>
ベストプラクティス
-
テーマファイルを直接編集しない
- サイトディレクトリに上書き用ファイルを作成する
- Hugo のルックアップ順序を活用する
-
互換性を維持する
- カスタマイズ内容をさまざまなデバイスでテストする
- アクセシビリティを意識する
-
パフォーマンスへの配慮
- 画像とアセットを最適化する
- CSS と JavaScript を最小化する
よくあるカスタマイズ例
カスタムホームページレイアウト
layouts/index.html
{{ define "main" }}
<div className="homepage">
{{ partial "hero.html" . }}
{{ partial "featured-posts.html" . }}
{{ partial "newsletter.html" . }}
</div>
{{ end }}
カスタムタクソノミーページ
layouts/taxonomy/category.html
{{ define "main" }}
<div className="category-page">
<h1>{{ .Title }}</h1>
<div className="posts-grid">
{{ range .Pages }}
{{ partial "post-card.html" . }}
{{ end }}
</div>
</div>
{{ end }}
まとめ
Hugo テーマをカスタマイズすることで、他と差別化された独自のウェブサイトを構築できる。Hugo の構造を理解し、ベストプラクティスに従えば、効果的かつ保守しやすい変更を行える。