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

386
Jeno

Я пытался использовать лексер 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

1 ответ на вопрос

0
Matthias

Мне тоже было интересно об этом предупреждении!

Я изучил его, и оказалось, что лексер JSON был доступен, но мой код на самом деле не был допустимым JSON, и поэтому Sphinx отключил лексер для этого фрагмента кода.

Если вы измените свой блок кода на допустимый JSON, выделение должно работать снова!

Обратите внимание, что (IIRC):

  • JSON не позволяет комментировать
  • Строки должны быть указаны
  • значения словаря должны быть заключены в {и}
  • запятая после последней пары ключ-значение не допускается

Обратите внимание, что если лексер недоступен, предупреждающее сообщение будет другим:

WARNING: Pygments lexer name 'xyz' is not known 

Похожие вопросы