
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 json
aber 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