Json Lexer nicht in Sphinx verfügbar?

488
Jeno

Ich habe versucht, den Json Lexer in einem * .rst-Dokument mit Sphinx zu verwenden. Dieser arbeitet:

.. code-block:: console  //Comment key1: value, key2: value2, 

Aber wenn ich versuche, Json so zu verwenden:

.. code-block:: json  //Comment key1: value, key2: value2, 

Ich bekomme einen Fehler

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

Ich habe mit überprüft, pygmentize -L lexers | grep jsonaber das gibt wieder, dass Json an Bord ist. Was ist das Problem hier?

1

1 Antwort auf die Frage

0
Matthias

Ich habe mich auch über diese Warnung gewundert!

Ich schaute hinein und es stellte sich heraus, dass der JSON-Lexer verfügbar war, aber mein Code war eigentlich kein gültiger JSON-Code, und daher deaktivierte Sphinx den Lexer für dieses Code-Snippet.

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

Beachten Sie, dass (IIRC):

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

Wenn kein Lexer verfügbar ist, unterscheidet sich die Warnmeldung:

WARNING: Pygments lexer name 'xyz' is not known