Hugo の C++ 用 シンタックスハイライトを直す

Hugo で C++ のコードをシンタックスハイライトしたら誤った位置に改行が入っていた。

Figure 1: 入力したソースコード

Figure 1: 入力したソースコード

Figure 2: 出力されたソースコード

Figure 2: 出力されたソースコード

調べたところ Hugo が使っているシンタックスハイライタ chroma のバグであることが分かった。 このバグは chroma の最新版(0.4.0)では直っていたので、 Hugo が最新版の chroma を使うようにしたところ直った。

手順は簡単で、

  • go get -v github.com/gohugoio/hugo
  • git checkout v0.37.1
  • Gopkg.toml 内の chroma のバージョンを0.4.0に直す
  • mageをインストールする
  • mage vendor
  • mage install

でできる。

しばらくすれば Hugo が chroma の最新版を使うようになるとは思うが、それまではこれで。

追記

最新の Hugo では直ったことを確認した。