シンタックスハイライト
はじめに
Hugoでは、Chromaを使った、シンタックスハイライトを利用することができます。
設定
設定項目
以下の設定を、設定ファイルで行うことができます。設定には、コードブロック毎に個別に設定を変更でいるものがあります。
項目 | 意味 | 設定値 | デフォルト値 | 個別設定 |
---|---|---|---|---|
anchorLineNos | 行番号にアンカータグをつける。アンカーをくくる span タグのidに行番号が設定される。 | true/false | false | ✔ |
codeFences | コードフェンス(```)でシンタックスハイライトを有効にする。 | true/false | true | |
guessSyntax | 言語を自動推測するか。 | true/false | false | |
hl_Lines | 指定した行番号をハイライト表示する。 | 数値。 複数指定する場合はスペースで区切る。 連続した範囲は ‘-‘でつなげる。 lineNoStartの設定には依存せず、1から始まる。 |
✔ | |
lineAnchors | 行番号にアンカータグをつける際の、id のプレフィックス。設定値-行番号というidになる。 | 文字列 | ✔ | |
lineNoStart | 行番号の開始番号。 | 数値 | 1 | ✔ |
lineNos | 行番号をつけるか。 | true/false/table/inline。 | false | ✔ |
lineNumbersInTable | 行番号をテーブル形式にするか。 | true/false | true | ✔ |
noClasses | classを利用しないか。 | true/false | true | |
style | 表示スタイル。 | 設定値 | monokai | |
tabWidth | タブ幅。 | 数値。 | 4 | |
pygmentsUseClasses | classを利用するか。 | true/false | false |
設定ファイル(TOML)での、デフォルト値は以下の通りです。pygmentsUseClassesだけは、記載位置が違うので、注意してください。
|
|
pygmentsUseClassesとnoClasses
i
この部分はHugoのドキュメントを基にしたものではなく、設定値を変更して動作の確認をしたものです。
pygmentsUseClassesとnoClassesの関係がよくわからなかったので、動作の確認をしました。
pygmentsUseClasses | noClasses | 動作 |
---|---|---|
true | true | classを利用する。 |
true | false | classを利用する。 |
false | true | classを利用しない。 styleが有効になる。 |
false | false | classを利用する。 |
CSSの作成
classを利用する際に利用するCSSを生成するには、以下のコマンドを実行します。styleに設定する値は、設定値を参照してください。
|
|
記述方法
シンタックスハイライトを利用するには、ショートコードを利用する方法と、コードフェンスを利用する方法があります。コードフェンスを利用する場合は、codeFencesをtrueに設定している必要があります。
ショートコードを利用する
highlightというショートコードが用意されています。書式は以下の通りです。オプションは省略可能です。言語は、利用可能な言語を参照してください。
|
|
例えば、以下のように記述すると、
|
|
このように出力されます。
|
|
コードフェンスを利用する
コードフェンスを利用する際は、以下のように記述します。オプションの指定方法が少し異なります。
|
|
例えば、以下のように記述します。
|
|
codeFencesがfalseの場合でも、通常のマークダウン同様、<pre><code></code></pre>を利用したHTMLが出力されます。
最終更新日
November 28, 2021