SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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

La actualidad más candente

Elastix a Ritmo de Merengue rev 1.3
Elastix a Ritmo de Merengue rev 1.3Elastix a Ritmo de Merengue rev 1.3
Elastix a Ritmo de Merengue rev 1.3
edgarjgonzalezg
 
How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on Linux
Etsuji Nakai
 

La actualidad más candente (20)

Expanding Asterisk with Kamailio
Expanding Asterisk with KamailioExpanding Asterisk with Kamailio
Expanding Asterisk with Kamailio
 
RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
 
Course 102: Lecture 5: File Handling Internals
Course 102: Lecture 5: File Handling Internals Course 102: Lecture 5: File Handling Internals
Course 102: Lecture 5: File Handling Internals
 
Local DNS with pfSense 2.4 - pfSense Hangout April 2018
Local DNS with pfSense 2.4 - pfSense Hangout April 2018Local DNS with pfSense 2.4 - pfSense Hangout April 2018
Local DNS with pfSense 2.4 - pfSense Hangout April 2018
 
NAT64 and DNS64 in 30 minutes
NAT64 and DNS64 in 30 minutesNAT64 and DNS64 in 30 minutes
NAT64 and DNS64 in 30 minutes
 
DDoS Mitigation using BGP Flowspec
DDoS Mitigation using BGP Flowspec DDoS Mitigation using BGP Flowspec
DDoS Mitigation using BGP Flowspec
 
6 la shell bash
6 la shell bash6 la shell bash
6 la shell bash
 
Introduction to RPKI
Introduction to RPKIIntroduction to RPKI
Introduction to RPKI
 
Automating OpenSCAP with Foreman
Automating OpenSCAP with ForemanAutomating OpenSCAP with Foreman
Automating OpenSCAP with Foreman
 
Elastix a Ritmo de Merengue rev 1.3
Elastix a Ritmo de Merengue rev 1.3Elastix a Ritmo de Merengue rev 1.3
Elastix a Ritmo de Merengue rev 1.3
 
Habilitar Korn Shell Linux
Habilitar Korn Shell LinuxHabilitar Korn Shell Linux
Habilitar Korn Shell Linux
 
Course 102: Lecture 9: Input Output Internals
Course 102: Lecture 9: Input Output Internals Course 102: Lecture 9: Input Output Internals
Course 102: Lecture 9: Input Output Internals
 
Fishes of shatt al arab
Fishes of shatt al arabFishes of shatt al arab
Fishes of shatt al arab
 
How VXLAN works on Linux
How VXLAN works on LinuxHow VXLAN works on Linux
How VXLAN works on Linux
 
Openstack live migration
Openstack live migrationOpenstack live migration
Openstack live migration
 
Ef09 installing-alfresco-components-1-by-1
Ef09 installing-alfresco-components-1-by-1Ef09 installing-alfresco-components-1-by-1
Ef09 installing-alfresco-components-1-by-1
 
20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)20150511 jun lee_openstack neutron 분석 (최종)
20150511 jun lee_openstack neutron 분석 (최종)
 
OSPF External Route Summarization
OSPF External Route Summarization OSPF External Route Summarization
OSPF External Route Summarization
 
Scaling Django
Scaling DjangoScaling Django
Scaling Django
 

Destacado

Simo Presentacion
Simo PresentacionSimo Presentacion
Simo Presentacion
Elio Rojano
 

Destacado (17)

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

Similar a Curso de introducción a Sphinx | Irontec

Acceso a base de datos con php
Acceso a base de datos con phpAcceso a base de datos con php
Acceso a base de datos con php
jaumeven
 
Compilación del Kernel
Compilación del KernelCompilación del Kernel
Compilación del Kernel
Juan Sánchez
 
python programming learning
python programming learningpython programming learning
python programming learning
m0n0lithic
 
Primera Clase
Primera ClasePrimera Clase
Primera Clase
mandres
 

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

FUNDAMENTOS PYTHON.ppsx
FUNDAMENTOS PYTHON.ppsxFUNDAMENTOS PYTHON.ppsx
FUNDAMENTOS PYTHON.ppsx
 
Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)
 
Taller PyGTK
Taller PyGTKTaller PyGTK
Taller PyGTK
 
Python101
Python101Python101
Python101
 
Flex y-bison
Flex y-bisonFlex y-bison
Flex y-bison
 
PYTHON.pptx
PYTHON.pptxPYTHON.pptx
PYTHON.pptx
 
Creacion de un Repositorio Local en CentOS_6.0
Creacion de un Repositorio Local en CentOS_6.0Creacion de un Repositorio Local en CentOS_6.0
Creacion de un Repositorio Local en CentOS_6.0
 
Manual visual fox pro
Manual visual fox proManual visual fox pro
Manual visual fox pro
 
Acceso a base de datos con php
Acceso a base de datos con phpAcceso a base de datos con php
Acceso a base de datos con php
 
01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx
 
Presentacion de Taller de Repositorio Eprints.pptx
Presentacion de Taller de Repositorio Eprints.pptxPresentacion de Taller de Repositorio Eprints.pptx
Presentacion de Taller de Repositorio Eprints.pptx
 
Compilación del Kernel
Compilación del KernelCompilación del Kernel
Compilación del Kernel
 
Conceptos Basicos de Html
Conceptos Basicos de HtmlConceptos Basicos de Html
Conceptos Basicos de Html
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
 
python programming learning
python programming learningpython programming learning
python programming learning
 
Cap02 (1)
Cap02 (1)Cap02 (1)
Cap02 (1)
 
Lenguajes de marcado
Lenguajes de marcadoLenguajes de marcado
Lenguajes de marcado
 
Gestión Remota de Equipos con Python
Gestión Remota de Equipos con PythonGestión Remota de Equipos con Python
Gestión Remota de Equipos con Python
 
Primera Clase
Primera ClasePrimera Clase
Primera Clase
 
PROYECTO 1,2,3,4 Y 5 EDGAR ZACARIAS
PROYECTO 1,2,3,4 Y 5 EDGAR ZACARIAS PROYECTO 1,2,3,4 Y 5 EDGAR ZACARIAS
PROYECTO 1,2,3,4 Y 5 EDGAR ZACARIAS
 

Más de Irontec

PHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en AndroidPHP for Android: scripting PHP en Android
PHP for Android: scripting PHP en Android
Irontec
 
Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql Administracion
Irontec
 
Curso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressCurso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de Wordpress
Irontec
 

Más de Irontec (20)

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

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

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