Incluso con Sphinx 1.2b1 y Pygments 1.6, necesitaba llamar a add_lexer para obtener .. code-block:: json
para hacer cualquier cosa. Terminé poniendo el siguiente fragmento de código en una extensión (docs/_ext/jsonlexer.py
):
def setup(app):
# enable Pygments json lexer
try:
import pygments
if pygments.__version__ >= '1.5':
# use JSON lexer included in recent versions of Pygments
from pygments.lexers import JsonLexer
else:
# use JSON lexer from pygments-json if installed
from pygson.json_lexer import JSONLexer as JsonLexer
except ImportError:
pass # not fatal if we have old (or no) Pygments and no pygments-json
else:
app.add_lexer('json', JsonLexer())
Mi docs/conf.py
para Esfinge tiene el siguiente para habilitar la extensión:
import os
import sys
sys.path.insert(0, os.path.abspath('_ext'))
# Add any Sphinx extension module names here, as strings. They can be
# extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = ['jsonlexer']
Sí, lo sabía. Solo me preguntaba si otros usaron el resaltador Pygins de JavaScript para el marcado JSON en Sphinx o si había otro lenguaje recomendado. – JayhawksFan93
Gabriel dice que la sintaxis de JSON es un subconjunto estricto de la sintaxis de JavaScript, por lo que cualquier resaltador de sintaxis adecuado para JavaScript también manejará JSON. –
Gracias Joe, y solo para aclararle al OP: el marcador de JavaScript es el correcto para usar, no hay resaltador específico de JSON (porque JSON * es * JavaScript), y no hay mejor opción en Sphinx para resaltar JSON. –