json lexer недоступен в sphinx?

json lexer недоступен в sphinx?

Я попробовал использовать json lexer в документе *.rst с sphinx. Это работает:

.. 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

Связанный контент