reStructuredText ( RST , ReST o reST ) es un lenguaje de marcado de texto plano que se utiliza principalmente para documentación técnica y otros datos textuales. Cumple una función similar a la de Markdown , pero incluye características semánticas adicionales para una estructuración de documentos más compleja. Entre los proyectos de código abierto más destacados y a gran escala que utilizan reStructuredText se encuentran la comunidad del lenguaje de programación Python para su documentación oficial, la documentación del kernel de Linux , CMake y el proyecto del compilador LLVM .
Forma parte del proyecto Docutils del Python Doc-SIG (Grupo de Interés Especial en Documentación), cuyo objetivo es crear un conjunto de herramientas para Python similares a Javadoc para Java o Plain Old Documentation (POD) para Perl . Docutils puede extraer comentarios e información de programas Python y formatearlos en diversas formas de documentación de programas. [ 2 ]
En este sentido, reStructuredText es un lenguaje de marcado ligero diseñado para ser procesado por software de procesamiento de documentación como Docutils, y a la vez ser fácilmente legible por programadores humanos que leen y escriben código fuente de Python .
Historia
reStructuredText evolucionó a partir de un lenguaje de marcado ligero anterior llamado StructuredText [ 3 ] (desarrollado por Zope ). StructuredText presentaba varios problemas, y reST se desarrolló para solucionarlos. [ 4 ] El nombre reStructuredText se eligió para indicar que reST es un "StructuredText revisado, reelaborado y reinterpretado". [ 5 ]
Partes de la sintaxis de reST se inspiraron en el lenguaje Setext de principios de la década de 1990. También se consideraron elementos de los formatos comunes RFC822 (Formato de Mensajes de Internet) y Javadoc para su inclusión en el diseño. [ 6 ]
reStructuredText se lanzó por primera vez en junio de 2001. [ 1 ] Comenzó a tener un uso significativo en la comunidad de Python en 2002. [ 7 ]
Implementación de referencia
La implementación de referencia del analizador reST es un componente del marco de procesamiento de texto Docutils en el lenguaje de programación Python , pero existen otros analizadores disponibles.
El proyecto Docutils no ha registrado ningún tipo MIME para reStructuredText ni ha designado ningún tipo MIME no registrado como oficial, pero documenta el tipo MIME text/x-rstcomo de facto en uso por, por ejemplo, el sistema de compilación del sitio web de Python. [ 8 ] El mismo tipo MIME se utiliza en la base de datos de tipos de archivo freedesktop.org utilizada por los entornos de escritorio en Linux . [ 9 ] Otro tipo MIME, text/prs.fallenstein.rst, fue registrado como un tipo MIME vanidoso por un tercero en 2003 para representar reStructuredText, y sigue siendo el único tipo MIME registrado por IANA para reStructuredText, [ 10 ] aunque el proyecto Docutils no lo reconoce como tal. [ 8 ]
Aplicaciones
reStructuredText se usa comúnmente para documentación técnica, por ejemplo, en la documentación de bibliotecas de Python. [ 11 ] Sin embargo, es adecuado para una amplia gama de textos.
Desde 2008, reST ha sido un componente fundamental del sistema de generación de documentos Sphinx de Python .
Trac también admite reStructuredText, [ 12 ] al igual que GitHub y Bitbucket .
En 2011, Distributed Proofreaders , que preparaba textos para el Proyecto Gutenberg , estaba considerando la adopción de reST como un formato básico a partir del cual se podrían generar otros formatos de libros electrónicos. [ 13 ]
En julio de 2016, el proyecto del kernel de Linux decidió pasar de la documentación basada en DocBook a reStructuredText y la cadena de herramientas Sphinx . [ 14 ] [ 15 ]
La herramienta de compilación de software CMake cambió de un lenguaje de marcado personalizado a reStructuredText en la versión 3.0 para su documentación. [ 16 ]
El ecosistema IDE de JetBrains admite la edición de reStructuredText a través de complementos como reStructuredText Pro , que proporciona soporte para la documentación RST y Sphinx, incluyendo vista previa en vivo y resaltado de sintaxis. [ 17 ]
Ejemplos
Véase también
- Comparación de lenguajes de marcado de documentos
- Comparación de generadores de documentación
- Comparación de software para tomar notas
Referencias
- ^ a b "Proyecto: reStructuredText - Lista de archivos" . SourceForge . Archivado del original el 19 de octubre de 2001. Recuperado el 5 de febrero de 2023 .
- ^ Mertz, David (2003-02-01). "XML Matters: reStructuredText" . IBM developerWorks . Recuperado el 2016-10-05 .
- ^ "Documentación de zope.structuredtext" . Lea la documentación . Consultado el 16 de agosto de 2022 .
- ^ Goodger, David (24-05-2016). "Problemas con StructuredText" . Proyecto Docutils . Recuperado el 16-08-2022 .
- ^ Goodger, David (26 de febrero de 2016). "Preguntas frecuentes sobre Docutils" . Proyecto Docutils . Recuperado el 5 de octubre de 2016 .
- ^ Goodger, David (2022-04-02). "Un registro de alternativas de sintaxis de reStructuredText" . docutils.sourceforge.io . Proyecto Docutils . Recuperado el 16 de agosto de 2022 .
- ^ "Introducción a reStructuredText" . Write The Docs . Consultado el 25 de junio de 2022 .
- ^ a b "¿Cuál es el tipo MIME oficial para los datos reStructuredText? en las preguntas frecuentes de Docutils" . Proyecto Docutils . Consultado el 20 de diciembre de 2017 .
- ^ "freedesktop.org.xml.in" . shared-mime-info . freedesktop.org .
- ^ Fallenstein, Benja (2 de octubre de 2003). "text/prs.fallenstein.rst" . IANA .
ReStructuredText fue diseñado e implementado por David Goodger, no por el registrante de este tipo de medio. El registrante simplemente necesitaba un tipo de medio registrado para ello. […] El control de cambios de este registro está actualmente a cargo de Benja Fallenstein. (Si alguien más directamente involucrado con ReStructuredText desea hacerse cargo, se cederá con gusto).
- ^ Goodger, David (2002-04-02). "PEP 287 -- reStructuredText Docstring Format" . Python Software Foundation . Recuperado el 2016-10-05 .
- ^ "Soporte para reStructuredText en Trac" . Trac . 13 de septiembre de 2016. Consultado el 5 de octubre de 2016 .
- ^ Newby, Greg (2011-01-08). "Acta de la reunión del 11 de diciembre de 2010" . Distributed Proofreaders . Recuperado el 2011-01-08 .
- ^ "Documentación del kernel con Sphinx, parte 1: cómo llegamos hasta aquí" . LWN.net. 6 de julio de 2016. Consultado el 27 de octubre de 2016 .
- ^ "Sphinx. Núcleo de Linux" . Wikipedia. 2 de abril de 2024. Consultado el 2 de abril de 2024 .
- ^ "Notas de la versión de CMake 3.0.0" . Kitware, Inc. 10 de junio de 2014. Consultado el 5 de octubre de 2016 .
- ^ "reStructuredText Pro - Plugin para IDEs de IntelliJ | Marketplace" . JetBrains Marketplace . Consultado el 20 de febrero de 2026 .
Enlaces externos
- Sitio web oficial de reStructuredText con páginas de referencia.
- Lenguajes de marcado ligeros
- Formatos de documentación del código fuente