SlideShare una empresa de Scribd logo
Introduciendo

Sphinx
Python documentation generator

www.irontec.com
Qué es
•

Herramienta para facilitar la generación de documentación.

•

Originalmente pensado para generar documentación en proyectos de Python

www.irontec.com
Características
•

Soporta varios tipos de salida (builders): HTML, LaTeX, Pdf, ePub, Texinfo, man
pages, texto plano.

•

Permite referencias cruzadas

•

Estructurado jerárquicamente

•

Generación automática de índices

•

Soporte para coloreo de código (usando pygments)

•

Soporta extensiones

•

Usa reStructuredText como lenguaje de marcado (docutils)

www.irontec.com
Instalación
apt-get install python-sphinx

www.irontec.com
ReStructuredText
•

•

Parrafos: Se escriben con una línea en blanco entre ellos.
Negritas, cursivas, códigos literales, subíndices, superíndices, enlaces,
etc.
–
–

Marcado Estandar: *Cursiva*, **Negrita**, ``Código literal``
Roles: Se escriben con dos puntos antes y después del nombre del rol,
seguido del texto que se desea utilizar entrecomillado.
● :rolname:`Texto que queremos marcar`
● Permiten realizar enlaces dentro del documento y/o entre documentos
– :ref:, :doc::download:, etc
● Permiten formatear el texto de forma semántica:
– :abbr: , :command:, :file:, :kbd:, :mimetype:, etc.
www.irontec.com
ReStructuredText
•

Listas: Se generan poniendo asteríscos, números o almohadillas al inicio de cada línea
* Lista con viñeta.
* Con dos elementos
el segundo de dos lineas.
* Y esto es un elemento en una sublista
1. Lista numerada
2. Con dos elementos
#. Esto es una lista autonumerada.
–

#. Y tiene dos líneas también.
Otros tipos de listas:
● Glosarios de terminos usando “term”
● Bloques de texto indentados dejando espacios en el inicio de línea
● Etc.
www.irontec.com
ReStructuredText
•

Bloques de código literales: Se inician poniendo dobles dos puntos al final de una línea e indentando todo el código que lo acompaña.
Lo que viene debajo de este texto es un código en PHP::
<?php
echo “hola mundo”

•

Tablas: Se pueden generar de múltiples maneras
–

Pintándolas completamente usando los siguientes caracteres: =-+|
+------------------------+------------+----------+----------+
| Header row, column 1

| Header 2

| Header 3 | Header 4 |

+========================+============+==========+==========+
| body row 1, column 1

| column 2

| column 3 | column 4 |

+------------------------+------------+----------+----------+
| body row 2

| ...

| ...

|

|

+------------------------+------------+----------+----------+

–

De forma más simple pero limitada
=====

=====

=======

A

B

A and B

=====

=====

=======

False

False

False

True

False

False

=====

=====

=======

www.irontec.com
ReStructuredText
•

•

Enlaces: Si el texto del enlace es el propio enlace no hay que hacer nada, si queremos ponerle un texto:
`Texto del enlace <http://example.com/>`_
– Atención: Si se quiere enlazar a documentos internos se usa el rol :ref:
Secciones: Las secciones se generan subrayando los títulos de las mismas.
–

Caracteres que sirven para el subrayado: ! " # $ % & ' ( ) * + , - . / : ; < = > ?
@ [  ] ^ _ ` { | } ~

–
–

Recomendados: = - ` : . ' " ~ ^ _ * + #
Los títulos de las secciones pueden llevar también un “sobrerayado”
=================
Esto es un título
=================

Y esto un subtítulo
–------------------

–

Atención: El subrayado debe coincidir exactamente con la longitud del título

www.irontec.com
ReStructuredText
•

Directivas: Junto con los roles es el mecanismo de extensión de Sphinx.
–

Se declaran de la siguiente manera:
.. tipo directiva:: directiva
:option1: value1
:option2: value2

–

bloque
Las directivas por defecto que soporta Sphinx permiten entre otras cosas:
● Añadir notas (avisos, mensajes, anotaciones, etc.)
● Añadir imágenes
● Añadir bloques de texto especiales
● Crear tablas a partir de fuentes alternativas (csv, listas, …)
● Generación de tags html
● Crear roles

www.irontec.com
Primeros Pasos
•

Crear un nuevo proyecto de Sphinx
–

sphinx-quickstart
● Asistente de instalación que permite generar la estructura inicial de un
proyecto a partir de un conjunto de preguntas
● Genera:
– index.rst: Documento inicial desde el que partirá toda la
documentación
– conf.py: Configuración del proyecto (theme, rutas, propiedades,
etc.)
– Makefile: Preparado para permitir generar la documentación
directamente con “make <builder>”
www.irontec.com
Build
•

index.rst
Welcome to Test's documentation!
================================
Contents:
.. toctree::
:maxdepth: 2

Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

www.irontec.com
Build
•

make html → index.html

www.irontec.com
Build
•

Añadiendo enlaces a otros documentos desde el “toctree”
Welcome to Test's documentation!
================================
Contents:
–-----------.. toctree::
:maxdepth: 2
new-page
new-page-2
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

www.irontec.com
Build
•

make html → index.html

www.irontec.com
inotify
•

Permite registrar los cambios dentro de un directorio y ejecutar acciones si algo ha cambiado, así evitamos tener
que hacer un make manualmente con cada cambio:
–

/usr/local/bin/inotify-sphinx.sh

#!/bin/bash
if [ ! -z "$1" ]; then
path=$1
else
path="."
fi
while true
do
inotifywait -r -e modify -e move -e create -e delete $path | while read line
do
cd $path
make html
done
done

www.irontec.com
Cambiar Theme
•

config.py
html_theme = “agogo”
html_theme_options = {
"textalign": "left",
"pagewidth": "50em",
"documentwidth": "40em",
"sidebarwidth": "10em"
}

www.irontec.com
Cambiar Theme
•

make html → new-page.html

www.irontec.com
Créditos
•

Sphinx - http://sphinx-doc.org/

www.irontec.com
Irontec

Internet y Sistemas sobre GNU/Linux
www.irontec.com / 94 404 81 82
Ribera de Axpe 11, A116 48950 Erandio – Bizkaia

Más contenido relacionado

PPSX
Redes de Computadores
DOC
Redes de computadores 1 - Conceitos Gerais
PDF
Aula1 montagem redes de computadores
DOCX
História e futuro do tcp ip
PPTX
Trabalho de sistema operativo servidor
PPTX
Manutenção de Servidores.pptx
PDF
Arquiteturas usando Pipes and Filters
PDF
A Fast and Efficient Time Series Storage Based on Apache Solr
Redes de Computadores
Redes de computadores 1 - Conceitos Gerais
Aula1 montagem redes de computadores
História e futuro do tcp ip
Trabalho de sistema operativo servidor
Manutenção de Servidores.pptx
Arquiteturas usando Pipes and Filters
A Fast and Efficient Time Series Storage Based on Apache Solr

La actualidad más candente (20)

PPT
Sistemas operativos módulo2 - ms dos
PPTX
Introdução ao windows server
PPTX
System Administration DCU
PDF
Sistemas Operacionais em redes
PDF
Cisco Packet Tracer
PDF
Redes de computadores
PPTX
Computação em Nuvem: conceitos básicos
PPTX
Introduction to tcp ip linux networking
PPT
Gerencia e Administração de Redes
PPTX
Sistema operativo servidor
PPTX
Redes de Computadores
PPTX
Sistemas Operativos Servidores
PPT
Overview of chef ( Infrastructure as a Code )
PPTX
Best Practice TLS for IBM Domino
PDF
Modelo osi
PPTX
PDF
Domino Tech School - Upgrading to Notes/Domino V10: Best Practices
PDF
Diagramas de Fluxo de Dados
PDF
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
PDF
AD11 Starting with Domino on Docker.pdf
Sistemas operativos módulo2 - ms dos
Introdução ao windows server
System Administration DCU
Sistemas Operacionais em redes
Cisco Packet Tracer
Redes de computadores
Computação em Nuvem: conceitos básicos
Introduction to tcp ip linux networking
Gerencia e Administração de Redes
Sistema operativo servidor
Redes de Computadores
Sistemas Operativos Servidores
Overview of chef ( Infrastructure as a Code )
Best Practice TLS for IBM Domino
Modelo osi
Domino Tech School - Upgrading to Notes/Domino V10: Best Practices
Diagramas de Fluxo de Dados
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
AD11 Starting with Domino on Docker.pdf
Publicidad

Destacado (18)

PDF
Arquitecturas de operador de Cloud PBX
PDF
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
ODP
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
PDF
Usando Docker con sistemas Asterisk
ODP
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
PPTX
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
PDF
Qué hace tu Asterisk cuando no miras
PDF
[VoIP2Day 2008] Asterisk & Carriers PSTN
ODP
[VoIP2Day 2012] World Wide SIP
PDF
Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / Kamailio
PDF
Curso de VoIP / Parte 01: VoIP y Asterisk
PDF
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
PDF
Comparativa Firewall: IPCop vs. pfSense
PDF
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
PDF
Simo Presentacion
ODP
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP
ODP
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
PDF
VoIP2DAY 2015 - Workshop comercial ivoz provider
Arquitecturas de operador de Cloud PBX
Asterisk: Liberando y generando modelos de negocio en gran cuenta y operador ...
Irontec - comunicaciones unificadas en educación - biopen eduka - software li...
Usando Docker con sistemas Asterisk
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
Qué hace tu Asterisk cuando no miras
[VoIP2Day 2008] Asterisk & Carriers PSTN
[VoIP2Day 2012] World Wide SIP
Escalabilidad “horizontal” en soluciones VoIP basadas en Asterisk / Kamailio
Curso de VoIP / Parte 01: VoIP y Asterisk
IVOZ Provider Open Source - La solución VoIP opensource para operadores e int...
Comparativa Firewall: IPCop vs. pfSense
LA REVOLUCIÓN DEL CLOUD COMPUTING: NUEVA ERA DE DESARROLLO - OpenExpo17
Simo Presentacion
[VoIP2Day 2009] Presente y futuro de las comunicaciones VoIP
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
VoIP2DAY 2015 - Workshop comercial ivoz provider
Publicidad

Similar a Curso de introducción a Sphinx | Irontec (20)

PPSX
FUNDAMENTOS PYTHON.ppsx
PPTX
Instalar Python 2.7 y 3 en Windows (Anaconda)
ODP
Taller PyGTK
PPTX
Python101
PDF
Flex y-bison
PDF
Elementos basicos de unix para la administracion
PPTX
PPTX
Graficos en el Analisis de Datos con Python
PPTX
Creacion de un Repositorio Local en CentOS_6.0
DOCX
Manual visual fox pro
PPT
Acceso a base de datos con php
PPT
programacion de sistemas de informacion.ppt
PPTX
01 T1 2021 Sistemas Embebidos.pptx
PPTX
Presentacion de Taller de Repositorio Eprints.pptx
PPT
Compilación del Kernel
PPT
Curso de Python para progrmadores 2022.ppt
PPTX
Conceptos Basicos de Html
PPTX
Git: flujos de trabajo y herramientas para trabajo colaborativo
ODP
python programming learning
PDF
Cap02 (1)
FUNDAMENTOS PYTHON.ppsx
Instalar Python 2.7 y 3 en Windows (Anaconda)
Taller PyGTK
Python101
Flex y-bison
Elementos basicos de unix para la administracion
Graficos en el Analisis de Datos con Python
Creacion de un Repositorio Local en CentOS_6.0
Manual visual fox pro
Acceso a base de datos con php
programacion de sistemas de informacion.ppt
01 T1 2021 Sistemas Embebidos.pptx
Presentacion de Taller de Repositorio Eprints.pptx
Compilación del Kernel
Curso de Python para progrmadores 2022.ppt
Conceptos Basicos de Html
Git: flujos de trabajo y herramientas para trabajo colaborativo
python programming learning
Cap02 (1)

Más de Irontec (20)

PDF
Gestion de proyectos con GitLab en tiempos de teletrabajo
PDF
Sobre cómo gestionamos centenares de despliegues de VoIP
PDF
Presente y futuro del nuevo IVOZ Provider
PDF
Automated Testing para aplicaciones VoIP, WebRTC
PDF
Introducción a varnish cache (@irontec)
PDF
Curso de VoIP / Parte 03: Dialplan
PDF
Curso de VoIP / Parte 02: SIP
PDF
Curso de VoIP / Parte 04: Conceptos avanzados
ODP
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
PDF
Virtualizacion KVM + libvirt + HREL6
PDF
Irontec - Presentación de servicios de telefonía IP
PDF
Caso de éxito: Irontec por nuestro proveedor Hostalia
PDF
PHP for Android: scripting PHP en Android
PDF
Curso completo de CRM + SugarCRM
PDF
Seguridad en VoIP
PDF
Mysql Administracion
PDF
Curso avanzado SVN
PDF
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
PDF
Mysq Replication
PDF
Curso avanzado de programación y configuración de Wordpress
Gestion de proyectos con GitLab en tiempos de teletrabajo
Sobre cómo gestionamos centenares de despliegues de VoIP
Presente y futuro del nuevo IVOZ Provider
Automated Testing para aplicaciones VoIP, WebRTC
Introducción a varnish cache (@irontec)
Curso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 02: SIP
Curso de VoIP / Parte 04: Conceptos avanzados
Euskera zabaltzeko gure app berriak | Nuestras apps para difundir el euskera
Virtualizacion KVM + libvirt + HREL6
Irontec - Presentación de servicios de telefonía IP
Caso de éxito: Irontec por nuestro proveedor Hostalia
PHP for Android: scripting PHP en Android
Curso completo de CRM + SugarCRM
Seguridad en VoIP
Mysql Administracion
Curso avanzado SVN
Javascript: Particularidades del Lenguaje, DOM, Eventos y AJAX
Mysq Replication
Curso avanzado de programación y configuración de Wordpress

Último (20)

PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
Diapositiva proyecto de vida, materia catedra
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
Estrategia de apoyo tecnología miguel angel solis
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PDF
Calidad desde el Docente y la mejora continua .pdf
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
CyberOps Associate - Cisco Networking Academy
PDF
clase auditoria informatica 2025.........
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
Maste clas de estructura metálica y arquitectura
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Influencia-del-uso-de-redes-sociales.pdf
Power Point Nicolás Carrasco (disertación Roblox).pptx
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
REDES INFORMATICAS REDES INFORMATICAS.pptx
Diapositiva proyecto de vida, materia catedra
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
historia_web de la creacion de un navegador_presentacion.pptx
Estrategia de apoyo tecnología miguel angel solis
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Calidad desde el Docente y la mejora continua .pdf
introduccion a las_web en el 2025_mejoras.ppt
CyberOps Associate - Cisco Networking Academy
clase auditoria informatica 2025.........
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Propuesta BKP servidores con Acronis1.pptx
Sesion 1 de microsoft power point - Clase 1
Maste clas de estructura metálica y arquitectura

Curso de introducción a Sphinx | Irontec

  • 2. Qué es • Herramienta para facilitar la generación de documentación. • Originalmente pensado para generar documentación en proyectos de Python www.irontec.com
  • 3. Características • Soporta varios tipos de salida (builders): HTML, LaTeX, Pdf, ePub, Texinfo, man pages, texto plano. • Permite referencias cruzadas • Estructurado jerárquicamente • Generación automática de índices • Soporte para coloreo de código (usando pygments) • Soporta extensiones • Usa reStructuredText como lenguaje de marcado (docutils) www.irontec.com
  • 5. ReStructuredText • • Parrafos: Se escriben con una línea en blanco entre ellos. Negritas, cursivas, códigos literales, subíndices, superíndices, enlaces, etc. – – Marcado Estandar: *Cursiva*, **Negrita**, ``Código literal`` Roles: Se escriben con dos puntos antes y después del nombre del rol, seguido del texto que se desea utilizar entrecomillado. ● :rolname:`Texto que queremos marcar` ● Permiten realizar enlaces dentro del documento y/o entre documentos – :ref:, :doc::download:, etc ● Permiten formatear el texto de forma semántica: – :abbr: , :command:, :file:, :kbd:, :mimetype:, etc. www.irontec.com
  • 6. ReStructuredText • Listas: Se generan poniendo asteríscos, números o almohadillas al inicio de cada línea * Lista con viñeta. * Con dos elementos el segundo de dos lineas. * Y esto es un elemento en una sublista 1. Lista numerada 2. Con dos elementos #. Esto es una lista autonumerada. – #. Y tiene dos líneas también. Otros tipos de listas: ● Glosarios de terminos usando “term” ● Bloques de texto indentados dejando espacios en el inicio de línea ● Etc. www.irontec.com
  • 7. ReStructuredText • Bloques de código literales: Se inician poniendo dobles dos puntos al final de una línea e indentando todo el código que lo acompaña. Lo que viene debajo de este texto es un código en PHP:: <?php echo “hola mundo” • Tablas: Se pueden generar de múltiples maneras – Pintándolas completamente usando los siguientes caracteres: =-+| +------------------------+------------+----------+----------+ | Header row, column 1 | Header 2 | Header 3 | Header 4 | +========================+============+==========+==========+ | body row 1, column 1 | column 2 | column 3 | column 4 | +------------------------+------------+----------+----------+ | body row 2 | ... | ... | | +------------------------+------------+----------+----------+ – De forma más simple pero limitada ===== ===== ======= A B A and B ===== ===== ======= False False False True False False ===== ===== ======= www.irontec.com
  • 8. ReStructuredText • • Enlaces: Si el texto del enlace es el propio enlace no hay que hacer nada, si queremos ponerle un texto: `Texto del enlace <http://example.com/>`_ – Atención: Si se quiere enlazar a documentos internos se usa el rol :ref: Secciones: Las secciones se generan subrayando los títulos de las mismas. – Caracteres que sirven para el subrayado: ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ ] ^ _ ` { | } ~ – – Recomendados: = - ` : . ' " ~ ^ _ * + # Los títulos de las secciones pueden llevar también un “sobrerayado” ================= Esto es un título ================= Y esto un subtítulo –------------------ – Atención: El subrayado debe coincidir exactamente con la longitud del título www.irontec.com
  • 9. ReStructuredText • Directivas: Junto con los roles es el mecanismo de extensión de Sphinx. – Se declaran de la siguiente manera: .. tipo directiva:: directiva :option1: value1 :option2: value2 – bloque Las directivas por defecto que soporta Sphinx permiten entre otras cosas: ● Añadir notas (avisos, mensajes, anotaciones, etc.) ● Añadir imágenes ● Añadir bloques de texto especiales ● Crear tablas a partir de fuentes alternativas (csv, listas, …) ● Generación de tags html ● Crear roles www.irontec.com
  • 10. Primeros Pasos • Crear un nuevo proyecto de Sphinx – sphinx-quickstart ● Asistente de instalación que permite generar la estructura inicial de un proyecto a partir de un conjunto de preguntas ● Genera: – index.rst: Documento inicial desde el que partirá toda la documentación – conf.py: Configuración del proyecto (theme, rutas, propiedades, etc.) – Makefile: Preparado para permitir generar la documentación directamente con “make <builder>” www.irontec.com
  • 11. Build • index.rst Welcome to Test's documentation! ================================ Contents: .. toctree:: :maxdepth: 2 Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` www.irontec.com
  • 12. Build • make html → index.html www.irontec.com
  • 13. Build • Añadiendo enlaces a otros documentos desde el “toctree” Welcome to Test's documentation! ================================ Contents: –-----------.. toctree:: :maxdepth: 2 new-page new-page-2 Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` www.irontec.com
  • 14. Build • make html → index.html www.irontec.com
  • 15. inotify • Permite registrar los cambios dentro de un directorio y ejecutar acciones si algo ha cambiado, así evitamos tener que hacer un make manualmente con cada cambio: – /usr/local/bin/inotify-sphinx.sh #!/bin/bash if [ ! -z "$1" ]; then path=$1 else path="." fi while true do inotifywait -r -e modify -e move -e create -e delete $path | while read line do cd $path make html done done www.irontec.com
  • 16. Cambiar Theme • config.py html_theme = “agogo” html_theme_options = { "textalign": "left", "pagewidth": "50em", "documentwidth": "40em", "sidebarwidth": "10em" } www.irontec.com
  • 17. Cambiar Theme • make html → new-page.html www.irontec.com
  • 19. Irontec Internet y Sistemas sobre GNU/Linux www.irontec.com / 94 404 81 82 Ribera de Axpe 11, A116 48950 Erandio – Bizkaia