プログラミングに関する記事や技術ブログを運営するなら、ソースコードの要素ごとにカラフルに色分け表示される機能(シンタックスハイライト)は必須ですよね。
Hugoには 「Chroma(クロマ)」 という超高速な専用ハイライターが最初から組み込まれているため、外部ライブラリ(Prism.jsなど)を読み込まなくても、少しの設定だけですぐにきれいなコードブロックを作ることができます!
1. 設定ファイル(hugo.toml)での準備
hugo.toml に以下の設定を追加します。
[markup]
[markup.highlight]
noClasses = false # CSSクラスではなくインラインスタイルを使用するか(false推奨)
style = 'monokai' # 配色のテーマ
lineNumbers = true # 行番号を表示するか
tabWidth = 4 # タブの文字数
主な設定項目
- style: 色のテーマです。
monokaidraculagithubなど、多くのスタイルが選べます。 - lineNumbers:
trueにすると行番号が表示されます。 - noClasses:
false(推奨): CSSクラスを出力します。あとで自分のCSSで色を調整しやすくなります。ただし、別途Hugoコマンドでスタイルシートを生成する必要があります。- 初心者向け設定: とりあえず簡単に色を付けたい場合は、ここを
trueにするのではなく、上記のnoClasses = falseの設定のまま、あえてtrueのように振る舞わせる設定(インラインスタイル)もありますが、Hugoの今の標準では 「設定なし(デフォルト)」 でインラインスタイルが適用されることが多いです。 - 一番簡単な設定:これだけで、多くの場合はきれいに表示されます。もし色がつかない場合は、
[markup.highlight] noClasses = falsestyleを指定してみてください。
2. 使えるスタイルを確認する
どんな色が選べるのか気になりますよね?
実は、Hugoの開発元であるGo言語製のツールがベースになっているので、非常に多くのスタイルに対応しています。
以下のコマンドをターミナルで打つと、使えるスタイルの一覧が見れます。
hugo gen chromastyles --list
3. 記事での書き方
あとは、Markdownで記事を書く時に、言語名を指定してコードブロックを書くだけです。
```python
def hello():
print("Hello, Hugo!")
```
これだけで、Pythonの文法に合わせてきれいに色分けされます!🌈
よくあるトラブル:コードが長すぎてはみ出す!
コードブロックの中で長い行(例:横に長いHTMLタグやURLなど)を書くと、スマホなどの狭い画面で 枠からはみ出してしまう ことがあります。
これを防ぐには、CSSで「横スクロール」できるように設定するのがおすすめです。
CSS例(static/css/style.css):
pre {
background-color: #f5f5f5;
padding: 15px;
border-radius: 5px;
/* ここが重要! */
overflow-x: auto; /* 枠からはみ出したらスクロールバーを出す */
}
こうしておけば、コードを無理に改行しなくても、読者はスクロールして全体を確認できます。
特にHTMLタグなどは、勝手に改行するとコピーした時に動かなくなることもあるので、デザイン側(CSS)で対応するのがスマートです!😎
Chromaを活用して美しくて読みやすいコード表記を実現しよう
プログラミング系、技術系の記事では、シンタックスハイライトの有無が記事の「読みやすさ」「理解しやすさ」「説得力」に直結します。
設定ファイル(hugo.toml)に数行を追加するだけで、Hugo標準のChromaを利用した高速で多言語対応の色分けが有効になるので、技術要素を扱うサイトであれば必ず最初に設定しておきましょう!✨
