Qiitaのシンタックスハイライトライブラリを変更し、JSXなどの言語に対応しました

こんにちは、エンジニアアルバイトの

koki-satoです。

今回、Qiitaで使用しているシンタックスハイライトのライブラリを変更し、対応する言語の種類が増えました。これにより、今まで対応していなかったJSXなどのシンタックスハイライトにも対応するようになります。

背景

Qiitaでは、これまでシンタックスハイライト用のライブラリとして、PygmentsのRuby用のラッパーライブラリであるPygments.rbを利用してきました。その後、Rubyで書かれたシンタックスハイライトライブラリであるRougeが登場し、今回以下の理由からRougeに変更することに決めました。

  • ラッパーライブラリであるPygments.rbと比較して、Rougeは他言語のプロセスを起動する必要が無く安定しやすい
  • RougeがPygmentsの対応していない言語にも対応している
    • 残念ながら逆のパターンも存在するため一概には言えないのですが、JSXなど一部ユーザーの皆さんからの要望の大きかった比較的新しい言語にも対応しています。
    • 今後のアップデート頻度なども考慮し、Rougeを選択しました。

対応する言語の一覧

Rougeに変更することにより、対応する言語の種類が変わります。ライブラリの違いなどから正確なDiffを作成できておらず恐縮ですが、以下の記事にまとめていますのでご確認ください。

Qiitaでシンタックスハイライト可能な言語一覧 – Qiita