
Product
Unify Your Security Stack with Socket Basics
A single platform for static analysis, secrets detection, container scanning, and CVE checks—built on trusted open source tools, ready to run out of the box.
:Author: David Goodger :Contact: goodger@python.org :Date: $Date: 2025-09-17 19:54:28 +0200 (Mi, 17. Sep 2025) $ :Web site: https://docutils.sourceforge.io/ :Copyright: This document has been placed in the public domain.
:Abstract: Docutils is a modular system for processing documentation into useful formats, such as HTML, XML, and LaTeX. For input Docutils supports reStructuredText, an easy-to-read, what-you-see-is-what-you-get plaintext markup syntax.
.. contents::
This is for those who want to get up & running quickly.
Docutils requires Python, available from https://www.python.org/. See Dependencies_ below for details.
Install the latest stable release from PyPi with pip_::
pip install docutils
For alternatives and details, see section Installation
_ below.
Use the front-end scripts
_ to convert reStructuredText documents.
Try for example::
docutils FAQ.rst FAQ.html
See Usage_ below for details.
The purpose of the Docutils project is to provide a set of tools for processing plaintext documentation into useful formats, such as HTML, LaTeX, troff (man pages), OpenOffice, and native XML. Support for the following sources has been implemented:
Standalone files.
PEPs (Python Enhancement Proposals)
_.
Support for the following sources is planned or provided by
third party tools
_:
Inline documentation from Python modules and packages, extracted with namespace context.
Email (RFC-822 headers, quoted excerpts, signatures, MIME parts).
Wikis, with global reference lookups of "wiki links".
Compound documents, such as multiple chapter files merged into a book.
And others as discovered.
.. _PEPs (Python Enhancement Proposals): https://peps.python.org/pep-0012 .. _third party tools: docs/user/links.html#related-applications
To run the code, Python_ must be installed. (Python is pre-installed with most Linux distributions.)
The type hints added in version 0.22 use Python 3.10 syntax.
However, the Python interpreter treats them as annotations
unless typing.TYPE_CHECKING
is set to True
.
.. _Python: https://www.python.org/.
Docutils uses the following packages for enhanced functionality, if they are installed:
The recommended installer is pip_, setuptools_ works, too.
The Python Imaging Library
_ (PIL) is used for some image
manipulation operations.
The Pygments
_ package provides syntax highlight of "code" directives
and roles.
The myst
, pycmark
, or recommonmark
_ parsers can be used to
parse input in "Markdown" (CommonMark_) format.
The Docutils Link List <docs/user/links.html>
__ records projects that
users of Docutils and reStructuredText may find useful.
.. _pip: https://pypi.org/project/pip/ .. _setuptools: https://pypi.org/project/setuptools/ .. _Python Imaging Library: http://www.pythonware.com/products/pil/ .. _Pygments: https://pypi.org/project/Pygments/ .. _myst: https://pypi.org/project/myst-docutils/ .. _pycmark: https://pypi.org/project/pycmark/ .. _recommonmark: https://github.com/rtfd/recommonmark .. _CommonMark: https://spec.commonmark.org/0.30/
The Python Packaging User Guide
_ gives details how to
use pip for installing
_.
The simplest way is to install the latest stable release from PyPi::
pip install docutils
To install a pre-relase, append the option --pre
.
To install a development version
_ from source:
Open a shell
Go to the directory containing the pyproject.toml
file.
Install the package with one of the following commands::
pip install -e . # editable install
pip install . # regular install
or do a "manual" install
_.
Optional steps:
Running the test suite
_Converting the documentation
_See also the OS-specific installation instructions below and
the Docutils version repository
_ documentation.
To install for a specific Python version, use this version in the setup call, e.g. ::
python3.11 -m pip install docutils
If the python executable isn't on your path, you'll have to specify the
complete path, such as /usr/local/bin/python3.11
.
To install for different Python versions, repeat step 3 for every
required version. The last installed version will be used for the
docutils
command line application.
.. _Python Packaging User Guide: https://packaging.python.org/en/latest/ .. _use pip for installing: https://packaging.python.org/en/latest/tutorials/installing-packages/ #use-pip-for-installing .. _"editable" install: https://pip.pypa.io/en/stable/topics/local-project-installs/ #editable-installs .. _"manual" install: docs/dev/repository.html#manual-install
Use su
or sudo
for a system-wide
installation as root
, e.g.::
sudo pip install docutils
The Python FAQ explains how to run a Python program under Windows
__.
__ https://docs.python.org/3/faq/windows.html #how-do-i-run-a-python-program-under-windows
Usually, pip_ is automatically installed if you are using Python
downloaded from https://python.org. If not, see the
pip documentation <https://pip.pypa.io/en/stable/installation/>
__.
The command window should recognise the word py
as an instruction to
start the interpreter, e.g.
py -m pip install docutils
If this does not work, you may have to specify the full path to the Python executable.
Start the "docutils" command line application with::
docutils [options] [<source> [<destination>]]
The default action is to convert a reStructuredText_ document to HTML5, for example::
docutils test.rst test.html
Read the --help
option output for details on options and arguments and
Docutils Front-End Tools
_ for the full documentation of the various tools.
For programmatic use of the docutils
Python package, read the
API Reference Material
_ and the source code.
Remaining questions may be answered in the Docutils Project Documentation
_ or the Docutils-users_ mailing list.
Contributions are welcome!
.. _reStructuredText: https://docutils.sourceforge.io/rst.html .. _front-end scripts: .. _Docutils Front-End Tools: docs/user/tools.html .. _API Reference Material: /docs/index.html #api-reference-material-for-client-developers .. _Docutils Project Documentation: /docs/index.html
README.rst: You're reading it.
COPYING.rst: Public Domain Dedication and copyright details for non-public-domain files (most are PD).
FAQ.rst: Frequently Asked Questions (with answers!).
RELEASE-NOTES.rst: Summary of the major changes in recent releases.
HISTORY.rst: A detailed change log, for the current and all previous project releases.
BUGS.rst: Known bugs, and how to report a bug.
THANKS.rst: List of contributors.
pyproject.toml: Project metadata. See "Installation" above.
docutils: The project source directory, installed as a Python package.
docs: The project documentation directory. Read docs/index.rst
for an overview.
docs/user: The project user documentation directory. Contains the following documents, among others:
docs/ref: The project reference directory.
docs/ref/rst/restructuredtext.rst
is the reStructuredText
reference.
licenses: Directory containing copies of license files for non-public-domain files.
tools: Directory for Docutils front-end tools. See
docs/user/tools.rst
for documentation.
test: Unit tests. Not required to use the software, but very useful
if you're planning to modify it. See Running the Test Suite
_
below.
While we are trying to follow a "release early & often" policy, features are added frequently. We recommend using a current snapshot or a working copy of the repository.
Repository check-out:
To keep up to date on the latest developments,
use a working copy
__ of the Docutils version repository
_.
Snapshots:
To get a repository _snapshot
, go to
https://sourceforge.net/p/docutils/code/HEAD/tree/trunk/docutils/
and click the download snapshot button.
Unpack in a temporary directory,
not directly in Python's site-packages
.
See the Installation
_ instructions above.
__ docs/dev/repository.html#checking-out-the-repository .. _Docutils version repository: docs/dev/repository.html .. _sandbox: https://docutils.sourceforge.io/sandbox/README.html
After unpacking and installing the Docutils package, the following shell commands will generate HTML for all included documentation::
cd <archive_directory_path>
tools/buildhtml.py .
On Windows systems, type::
cd <archive_directory_path>
py tools\buildhtml.py ..
The final directory name of the <archive_directory_path>
is
"docutils" for snapshots. For official releases, the directory may be
called "docutils-X.Y.Z", where "X.Y.Z" is the release version.
Some files may generate system messages (warnings and errors). The
docs/user/rst/demo.rst
file (under the archive directory) contains
five intentional errors. (They test the error reporting mechanism!)
The test suite is documented in Docutils Testing
_ (docs/dev/testing.rst).
To run the entire test suite, open a shell and use the following commands::
cd <archive_directory_path>/test
./alltests.py
Under Windows, type::
cd <archive_directory_path>\test
python alltests.py
You should see a long line of periods, one for each test, and then a summary like this::
Ran 1744 tests in 5.859s
OK (skipped=1)
Elapsed time: 6.235 seconds
The number of tests will grow over time, and the times reported will
depend on the computer running the tests.
Some test are skipped, if optional dependencies (recommendations
_)
are missing.
The difference between the two times represents the time required to set
up the tests (import modules, create data structures, etc.).
A copy of the test output is written to the file alltests.out
.
If any of the tests fail, please open a bug report
_ or send an email
_
(see Bugs <BUGS.html>
_).
Please include all relevant output, information about your operating
system, Python version, and Docutils version. To see the Docutils
version, look at the test output or use ::
docutils --version
.. _Docutils Testing: https://docutils.sourceforge.io/docs/dev/testing.html .. _open a bug report: https://sourceforge.net/p/docutils/bugs/ .. _send an email: mailto:docutils-users@lists.sourceforge.net ?subject=Test%20suite%20failure .. _web interface: https://sourceforge.net/p/docutils/mailman/
All documentation can be reached from the Project Documentation Overview
_.
The SourceForge project page
_ has links to the tracker, mailing
lists, and code repository.
If you have further questions or need assistance with Docutils or reStructuredText, please post a message to the Docutils-users_ mailing list.
.. _Project Documentation Overview: docs/index.html .. _project page: https://sourceforge.net/p/docutils .. _Docutils-users: docs/user/mailing-lists.html#docutils-users
.. Emacs settings
Local Variables: mode: indented-text mode: rst indent-tabs-mode: nil sentence-end-double-space: t fill-column: 70 End:
FAQs
Docutils -- Python Documentation Utilities
We found that docutils demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
A single platform for static analysis, secrets detection, container scanning, and CVE checks—built on trusted open source tools, ready to run out of the box.
Product
Socket is launching experimental protection for the Hugging Face ecosystem, scanning for malware and malicious payload injections inside model files to prevent silent AI supply chain attacks.
Research
/Security News
The Socket Threat Research Team uncovered a coordinated campaign that floods the Chrome Web Store with 131 rebranded clones of a WhatsApp Web automation extension to spam Brazilian users.