JSON-Lexer in Sphinx nicht verfügbar?

JSON-Lexer in Sphinx nicht verfügbar?

Ich habe versucht, den JSON-Lexer in einem *.rst-Dokument mit Sphinx zu verwenden. Das hier funktioniert:

.. code-block:: console

  //Comment
  key1: value,
  key2: value2,

Aber wenn ich versuche, JSON wie folgt zu verwenden:

.. code-block:: json

  //Comment
  key1: value,
  key2: value2,

Ich erhalte eine Fehlermeldung

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

Ich habe nachgeprüft, pygmentize -L lexers | grep jsonaber es wird zurückgegeben, dass JSON an Bord ist. Was ist hier das Problem?

Antwort1

Ich habe mich auch über diese Warnung gewundert!

Ich habe es mir angesehen und es stellte sich heraus, dass der JSON-Lexer verfügbar war, mein Code aber kein gültiges JSON war, und deshalb hat Sphinx den Lexer für diesen Codeausschnitt deaktiviert.

Wenn Sie Ihren Codeblock in gültiges JSON ändern, sollte die Hervorhebung wieder funktionieren!

Beachten Sie Folgendes (soweit ich mich erinnere):

  • JSON erlaubt keine Kommentare
  • Zeichenfolgen müssen in Anführungszeichen gesetzt werden
  • Wörterbuchwerte müssen in {und eingeschlossen werden}
  • ein Komma nach dem letzten Schlüssel-Wert-Paar ist nicht zulässig

Beachten Sie, dass die Warnmeldung anders lautet, wenn kein Lexer verfügbar ist:

WARNING: Pygments lexer name 'xyz' is not known

verwandte Informationen