デフォルトだとhugo
のMarkdown
のコードブロックには、シンタックスハイライト用のstyle
が直接埋め込まれる。
style
ではなくclass
名の埋め込みに変更し、css
によりハイライトの表示を変更可能にしたい。
解決策
hugo
には、Chromaというシンタックスハイライター用のCSSを生成する機能がある。
以下の手順で生成したCSSを利用できる。
-
サイト の
config.toml
で以下の設定を追加し、style
埋め込み →class
名埋め込み方式に変更する。(テーマ のconfig.toml
では反映されません。)[markup.highlight] noClasses = false
-
Chroma Style Galleryを参考に好みのCSSファイルを生成
cd ${themeのフォルダ} mkdir -p static/css hugo gen chromastyles --style=solarized-dark > static/css/syntax.css
-
生成したCSSファイルをヘッド(
layouts/partials/head.html
)で読み込む{{/* 略 */}} <link rel="stylesheet" href="{{ "css/syntax.css" | relURL }}"> {{/* 略 */}}