¿Cómo se establece el ancho de la pestaña en la salida HTML de los fragmentos de código Sphinx resaltados por Pygments? Por defecto es el 8 molesto, pero quiero 4. No encontré una palabra sobre esta configuración en Sphinx conf.py.Sphinx (herramienta de documentación): establecer el ancho de la pestaña en la salida
Respuesta
Tendrá que escribir una extensión de Sphinx. Add your custom Lexer, y aplicarlo con VisibleWhitespaceFilter.
Actualicé mi Sphinx a 0.6.3 y Pygments a 1.1.1 (pygmentize -V). Tocados todos mis archivos, entonces añadidos este a conf.py: configuración def (app): de sphinx.highlighting lexers importación de pygments.lexers.compiled JavaLexer importación de pygments.filters importar VisibleWhitespaceFilter myLexer = JavaLexer() myLexer.add_filter (VisibleWhitespaceFilter (spaces = '!')); app.add_lexer ('java', myLexer); Esto reemplazó todas las pestañas de mi código Java con ocho "!" y todos los espacios con "!" como se esperaba. Cuando probé las pestañas de opciones = '!', Nada cambió. Cuando probé la opción tabsize = 4, nada cambió. – jbasko
Parece que las pestañas han sido reemplazadas por espacios en algún lugar anterior en de la cadena. Así que traté de agregar este filtro a otros lexers (rest, none) [con lexers ['rest']. Add_filter (...)], pero nada de eso tuvo ningún efecto en las pestañas o tabsize. – jbasko
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 viable parece ser la de seguir el consejo de S. Lott y John Paulett en los comentarios a la pregunta - espacios de uso en lugar de pestañas.
añadir 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)
Véase también Esfinge Docstring preprocessing documentación.
- 1. salida condicional en Sphinx Documentación
- 2. Documentación de la API pública de Sphinx
- 3. Sphinx para la documentación del código php
- 4. Alojamiento privado Documentación Sphinx
- 5. show * only * docstring en la documentación de Sphinx
- 6. Proguard retrace la salida de la herramienta
- 7. Inclusión de documentación externa en un proyecto de Sphinx
- 8. Configuración de Django para sphinx (documentación)
- 9. Establecer el tamaño de la pestaña en JTabbedPane
- 10. Herramienta de documentación de fuente única
- 11. ¿Cómo subir la documentación html generada desde sphinx a github?
- 12. Documentación de Sphinx: ERROR: Directiva desconocida tipo "program-output"
- 13. ¿Cómo establecer el ancho de la barra de gráficos?
- 14. Ancho de la salida de PowerShell en la ventana de salida de Visual Studio
- 15. Generación automática de la salida de doctest con la extensión Sphinx
- 16. JavaFX TabPane: Cómo establecer la pestaña seleccionada
- 17. Flujo de trabajo de documentación de Sphinx y JavaScript
- 18. Establecer texto de etiqueta en la pestaña QTabWidget
- 19. Herramienta de generación de documentación de Oracle
- 20. ¿Cuál es la mejor manera de incluir un PDF en mi documentación de Sphinx?
- 21. ¿Cómo establecer el ancho de un elemento en línea?
- 22. Rspec Formato de salida: Documentación
- 23. ¿Cómo crear documentación basada en Sphinx en un proyecto Jython?
- 24. Cómo establecer 4 pestaña espacio en bash
- 25. Sphinx - Módulos, clases y funciones de Python Documentación
- 26. La mejor herramienta para monitorear el ancho de banda de la conexión de red
- 27. ¿Alguna buena alternativa para Sphinx para proporcionar documentación de software?
- 28. Java JTable establecer el ancho de columna
- 29. Documentación API de servicio web RESTful con Sphinx
- 30. Cómo establecer el ancho de la celda en la creación de itextsharp pdf
De acuerdo con S. Lott, incluso en el mundo de Java puede utilizar espacios en lugar de pestañas. http://java.sun.com/docs/codeconv/html/CodeConventions.doc3.html#262 –
Puede que para algunos no sea tan fácil simplemente cambiar a espacios: la base de código de todo su equipo podría usar pestañas y suministrar la documentación que usa espacios es inconsistente. Cambiar todo el código para usar uno sobre el otro no es práctico y potencialmente destructivo. Sphinx es útil para muchos idiomas y entornos diferentes. El argumento de que las mejores herramientas de documentación narrativa no se rompen si no admiten pestañas, es su código que está roto porque "PEP8, es por eso" es miope y contraproducente en el mejor de los casos. – Shabbyrobe
Además, soy consciente de que la sustitución de pestañas ocurre en docutils, no en sphinx, pero sphinx se ve gravemente afectado por el problema y debe asumir cierta responsabilidad al tratarlo. – Shabbyrobe