Джексон Лексер не доступен в Сфинксе?

Я пытался использовать лексер json в *.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
Другие вопросы по тегам