README: Docutils 0.22b.dev
- Contact:
- [email protected]
- Date:
- 2024-10-18
- Web site:
- Copyright:
- This document has been placed in the public domain.
Quick-Start
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.
Purpose
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.
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.
Dependencies
To run the code, Python must be installed. (Python is pre-installed with most Linux distributions.)
Since version 0.21, Docutils requires Python 3.9 or later.
Docutils versions 0.19 to 0.20.1 require Python 3.7 or later.
Docutils versions 0.16 to 0.18 require Python 2.7 or 3.5+.
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.
Recommendations
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 records projects that users of Docutils and reStructuredText may find useful.
Installation
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:
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.
GNU/Linux, BSDs, Unix, Mac OS X, etc.
Use su or sudo for a system-wide installation as root, e.g.:
sudo pip install docutils
Windows
The Python FAQ explains how to 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.
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.
Usage
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!
Project Files & Directories
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/user/tools.rst: Docutils Front-End Tools
docs/user/latex.rst: Docutils LaTeX Writer
docs/user/rst/quickstart.rst: A ReStructuredText Primer
docs/user/rst/quickref.html: Quick reStructuredText (HTML only)
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.
Development version
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.
Converting the documentation
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!)
Running the Test Suite
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). 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
Getting Help
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.