json lexer は sphinx では利用できませんか?

json lexer は sphinx では利用できませんか?

私は、sphinx を使って *.rst ドキュメントで json lexer を使用しようとしました。これは動作します:

.. code-block:: console

  //Comment
  key1: value,
  key2: value2,

しかし、次のようにjsonを使用しようとすると:

.. code-block:: json

  //Comment
  key1: value,
  key2: value2,

エラーが発生します

WARNING: Could not lex literal_block as "json". Highlighting skipped.

確認しましたがpygmentize -L lexers | grep json、json がオンになっていることが返されます。ここで何が問題なのでしょうか?

答え1

私もこの警告について疑問に思っていました!

調べてみると、JSON レクサーは利用可能でしたが、私のコードは実際には有効な JSON ではなかったため、Sphinx はこのコード スニペットのレクサーを無効にしました。

コード ブロックを有効な JSON に変更すると、ハイライト表示が再び機能するはずです。

注意してください (IIRC):

  • JSONではコメントは許可されない
  • 文字列は引用符で囲む必要があります
  • 辞書の値は、で囲む必要があります{}
  • 最後のキーと値のペアの後にコンマを入れることはできません

レクサーが利用できない場合は、警告メッセージが異なります。

WARNING: Pygments lexer name 'xyz' is not known

関連情報