
私は、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