reStructuredText

Not to be confused with Representational State Transfer or REST.
reStructuredText
Filename extension .rst
Developed by David Goodger
Initial release April 2, 2002 (2002-04-02)
Latest release
Revision 7942
(May 25, 2016 (2016-05-25))
Open format? Public domain
Website docutils.sourceforge.net/docs/ref/rst/restructuredtext.html

reStructuredText (sometimes abbreviated as RST, ReST, or reST) is a file format for textual data used primarily in the Python programming language community for technical documentation.

It is part of the Docutils project of the Python Doc-SIG (Documentation Special Interest Group), aimed at creating a set of tools for Python similar to Javadoc for Java or POD for Perl. Docutils can extract comments and information from Python programs, and format them into various forms of program documentation.[1]

In this sense, reStructuredText is a lightweight markup language designed to be both (a) processable by documentation-processing software such as Docutils, and (b) easily readable by human programmers who are reading and writing Python source code.

History

Setext (developed by Ian Feldman or Tony Sanders) and StructuredText (developed by Zope) were ancestral forms of lightweight markup language.

There were a number of problems with StructuredText, and reST was developed to address them.[2] The name reStructuredText was chosen to indicate that reST is a "revised, reworked, and reinterpreted StructuredText."[3]

reST began to see significant use in the Python community in 2002.

Reference implementation

The reference implementation of the reST parser is a component of the Docutils text processing framework in the Python programming language, but other parsers are available.

Applications

reStructuredText is commonly used for technical documentation, for example, in documentation of Python libraries.[4] However, it is suitable for a wide range of texts.

Since 2008, reST is a core component of Python's Sphinx document generation system.

Trac also supports reStructuredText,[5] as does GitHub and Bitbucket.

Distributed Proofreaders, which prepares texts for Project Gutenberg, is considering adoption of reST as a basic format from which other ebook formats could be generated.[6]

In July, 2016 the Linux kernel project decided to transition from DocBook based documentation to reStructuredText and the Sphinx toolchain. [7]

The software build tool CMake switched from a custom markup language to reStructuredText in version 3.0 for its documentation.[8]

Examples of reST markup

Headers

Section Header
==============

Subsection Header
-----------------

Lists

- A bullet list item
- Second item

  - A sub item

- Spacing between items creates separate lists

- Third item

1) An enumerated list item

2) Second item

   a) Sub item that goes on at length and thus needs
      to be wrapped. Note the indentation that must
      match the beginning of the text, not the 
      enumerator.

      i) List items can even include

         paragraph breaks.

3) Third item

#) Another enumerated list item

#) Second item

Images

.. image:: /path/to/image.jpg
A sentence with links to Wikipedia_ and the `Linux kernel archive`_.

.. _Wikipedia: http://www.wikipedia.org/
.. _Linux kernel archive: http://www.kernel.org/
Another sentence with an `anonymous link to the Python website`__.

__ https://www.python.org/

N.B.: named links and anonymous links are enclosed in grave accents (`), and not in apostrophes (').

Literal blocks

::

  some literal text

This may also be used inline at the end of a paragraph, like so::

  some more literal text

.. code:: python

   print("A literal block directive explicitly marked as python code")

See also

References

  1. Mertz, David (2003-02-01). "XML Matters: reStructuredText". IBM developerWorks. Retrieved 2016-10-05.
  2. Goodger, David (2016-05-24). "reStructuredText: Markup Syntax and Parser Component of Docutils". Docutils Project. Retrieved 2016-10-05.
  3. Goodger, David (2016-02-26). "Docutils FAQ (Frequently Asked Questions)". Docutils Project. Retrieved 2016-10-05.
  4. Goodger, David (2002-04-02). "PEP 287 -- reStructuredText Docstring Format". Python Software Foundation. Retrieved 2016-10-05.
  5. "reStructuredText Support in Trac". Trac. 2016-09-13. Retrieved 2016-10-05.
  6. Newby, Greg (2011-01-08). "Minutes of 2010 December 11 meeting". Distributed Proofreaders. Retrieved 2011-01-08. (registration required (help)).
  7. "Kernel documentation with Sphinx, part 1: how we got here". LWN.net. 2016-07-06. Retrieved 2016-10-27.
  8. "CMake 3.0.0 Release Notes". Kitware, Inc. 2014-06-10. Retrieved 2016-10-05.

This article is issued from Wikipedia - version of the 10/28/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.