PIYO - Tech & Life -

highlightjs-line-numbers.jsの結果に変な出力 "{1}" が混じる

このブログではソースコードのシンタックスハイライトにhighlight.jsを使っており、行番号の表示にはhighlightjs-line-numbers.jsを使用しています。

https://blog.piyo.tech/posts/2018-04-23-add-line-number/

あるとき、行番号の処理の結果として{1}のような不思議な文字列が紛れ込むことに気が付きました。 たとえば↓のようなものです。

本来はただの空行なのに変なのが混じっています。

内容のせいかなと色々試行錯誤しても駄目だったので、さきほど本格的に調べてみることにしました。

そこでようやく気がついたのが、highlight.js本体ではなくて、highlightjs-line-numbers.jsのほうだったということ。 本体側だと思いこんでいました。

そこでissueをあたってみると、まさにこれというissueがありました。 単なる不具合だったようで、すでにマージされ、リリースまでされていました。

https://github.com/wcoder/highlightjs-line-numbers.js/issues/42

2週間ほど前に対応されており、ちょうどいいタイミングで調べたなーという感じです。

参照しているファイルを変更することで対応できました。

<script src="//cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.3.0/highlightjs-line-numbers.min.js"></script>

<script src="//cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.4.0/highlightjs-line-numbers.min.js"></script>