¿Cómo se configura el ancho de tabulación en la salida HTML de fragmentos de código Sphinx resaltados por Pygments? Por defecto es el molesto 8, pero quiero 4. No encontré una palabra sobre esta configuración en Sphinx conf.py.

6
jbasko 6 nov. 2009 a las 13:52

3 respuestas

La mejor respuesta

Tendrá que escribir una extensión Sphinx. Agregue su Lexer personalizado, y aplíquelo con VisibleWhitespaceFilter.

0
iElectric 8 nov. 2009 a las 15:49

Hice la misma pregunta en el grupo sphinx-dev y resulta que es un problema con Docutils que es utilizado por Sphinx. Docutils reemplaza todas las pestañas con 8 espacios y actualmente no hay forma de cambiar ese valor de Sphinx.

http://groups.google.com/group/sphinx-dev/browse_thread/thread/35b8071ffe9a8feb

La única solución factible parece ser seguir los consejos de S.Lott y John Paulett en los comentarios a mi pregunta: use espacios en lugar de pestañas.

0
jbasko 30 nov. 2009 a las 09:51

Agregue algo como esto a su conf.py:

import re

def process_docstring(app, what, name, obj, options, lines):
    spaces_pat = re.compile(r"( {8})")
    ll = []
    for l in lines:
        ll.append(spaces_pat.sub("    ",l))
    lines[:] = ll

def setup(app):
    app.connect('autodoc-process-docstring', process_docstring)

Consulte también la documentación de preprocesamiento de Docstring de Sphinx.

3
gieffe 2 oct. 2012 a las 23:02