# Docutils Link List

Author: | Lea Wiemann, the Docutils team
Contact: | docutils-develop@lists.sourceforge.net
Revision: | 8025
Date: | 2017-02-06
Copyright: | This document has been placed in the public domain.

Contents

- Editors
- Export
  - PDF
  - OpenOffice
  - website generators and HTML variants
  - ePub
  - Others
- Import
- Extensions
- Related Applications
  - Tools
  - Development
  - CMS Systems
  - Presentations

This document contains links users of Docutils and reStructuredText may find useful. Many of the projects listed here are hosted in the Docutils Sandbox. If you have something to publish, you can get write access, too!

The most current version of this link list can always be found at http://docutils.sourceforge.net/docs/user/links.html.

# Editors

Advanced text editors with reStructuredText support, IDEs, and docutils GUIs:

- Emacs rst mode.

- Vim:

  - reStructuredText syntax highlighting mode,
  - VST (Vim reStructuredText) plugin for Vim7 with folding.
  - VOoM plugin for Vim that emulates two-pane outliner with support for reStructuredText (since version 4.0b2).
  - Riv: Take notes in rst Vim plugin to take notes in reStructured text.

- JED programmers editor with rst mode

- reStructuredText editor plug-in for Eclipse

- Gnome's gedit offers syntax highlighting and a reST preview pane.

  Latest version of the plugin is available from bittner @ github (See also: Gedit third party plugins).

- A BBEdit/TextWrangler language module for editing reST documents.

- Gunnar Schwant's DocFactory is a wxPython GUI application for Docutils.

- ReSTedit by Bill Bumgarner is a Docutils GUI for Mac OS X.

- Leo is an outliner, written in Python using PyQt. It can be used as IDE for literal programming, as a filing cabinet holding any kind of data and as document editor with outlines containing reStructuredText markup.

- NoTex is a browser-based reStructuredText editor with syntax highlighting and PDF/HTML export functionality using Sphinx.

- rsted is a "simple online editor for reStructuredText on Flask". You can try it on http://rst.ninjs.org/

# Export

Convert reStructuredText to other formats:

## PDF

- rst2pdf (reportlab) is a tool to go directly from reStructuredText to PDF, via reportlab. No LaTeX installation is required.
- rst2pdf (pdflatex) by Martin Blais is a minimal front end producing LaTeX, compiling the LaTeX file, getting the produced output to the destination location and finally deleting all the messy temporary files that this process generates.
- rst2pdf (rubber) is a front end for the generation of PDF documents from a reStructuredText source via LaTeX in one step cleaning up intermediate files. It uses the rubber Python wrapper for LaTeX and friends.
- `py.rest` from the Codespeak py Lib scripts converts reStructuredText files to HTML and PDF (cleaning up the intermediate latex files). Similar to `buildhtml.py`, it looks recursively for .txt files in the given PATHS.
- rlpdf is another PDF Writer based on ReportLabs.
- RinohType is a pure Python PDF Writer based on a document template and a style sheet (beta).

## OpenOffice

- Since version 0.5, the odtwriter by Dave Kuhlman is part of the Docutils core.

## website generators and HTML variants

- The Sphinx Python Documentation Generator by Georg Brandl was originally created to translate the Python documentation, and is now used by a wide choice of projects.

  It can generate complete web sites (interlinked and indexed HTML pages), ePub, PDF, and others [1] from a set of rst source files.

  [1] | see http://sphinx-doc.org/config.html#options-for-epub-output

- The Nikola static site generator, uses reStructuredText by default.

- Pelican is a static site generator (mainly for blogs). Articles/pages can be written in reStructuredText or Markdown[2] format.

- tinkerer is a static bloggin framework based on Sphinx.

- rst2ht by Oliver Rutherfurd, converts reStructuredText to an .ht template, for use with ht2html.

- htmlnav by Gunnar Schwant, is an HTML writer which supports navigation bars.

- rest2web, by Michael Foord, is a tool for creating web sites with reStructuredText.

- rst2chm by Oliver Rutherfurd, generates Microsoft HTML Help files from reStructuredText files.

- html4strict produces XHTML that strictly conforms to the XHTML 1.0 specification.

- html4trans produces XHTML conforming to the version 1.0 Transitional DTD that contains enough formatting information to be viewed by a lightweight HTML browser without CSS support.

- A simple HTML writer by Bill Bumgarner that doesn't rely on CSS (stylesheets).

## ePub

- The rst2epub project by Robert Wierschke converts simple reStructuredText doucments into valid epub files.
- rst2epub2 by Matt Harrison includes the epublib (originally by Tim Tambin) and a rst2epub.py executable for the conversion.
- Sphinx provides ePub as output option, too.

## Others

- Pandoc is a document converter that can write Markdown[2], reStructuredText, HTML, LaTeX, RTF, DocBook XML, and S5.
- restxsl by Michael Alyn Miller, lets you transform reStructuredText documents into XML/XHTML files using XSLT stylesheets.
- An XSLT script by Ladislav Lhotka enables reStructuredText annotations to be included in RELAG NG XML schemas.
- DocBook Writer by Oliver Rutherfurd.
- Nabu, written by Martin Blais, is a publishing system which extracts information from reStructuredText documents and stores it in a database. Python knowledge is required to write extractor functions (see Writing an Extractor) and to retrieve the data from the database again.
- The pickle writer by Martin Blais pickles the document tree to a binary string. Later unpickling will allow you to publish with other Writers.
- The Texinfo Writer, by Jon Waltman converts reStructuredText to Texinfo, the documentation format used by the GNU project and the Emacs text editor. Texinfo can be used to produce multiple output formats, including HTML, PDF, and Info.
- For confluence CMS see https://github.com/netresearch/rst2confluence.
- Deploying into wikis might be aided by deploy-rst.

# Import

Convert other formats to reStructuredText:

- recommonmark is a Markdown[2] (CommonMark) parser for docutils.
- sxw2rest, by Trent W. Buck, converts StarOffice XML Writer (SXW) files to reStructuredText.
- xml2rst, an XSLT stylesheet written by Stefan Merten, converts XML dumps of the document tree (e.g. created with rst2xml.py) back to reStructuredText.
- xhtml2rest, written by Antonios Christofides, is a simple utility to convert XHTML to reStructuredText.
- DashTable by Gustav Klopp converts HTML tables into reStructuredText. Colspan and Rowspan supported!
- Sphinx includes a LaTeX to Rst converter in its source code (trimmed to importing the old Python docs).
- Pandoc can read Markdown[2] and (subsets of) HTML, and LaTeX and export to (amongst others) reStructuredText.
- PySource, by Tony Ibbs, is an experimental Python source Reader. There is some related code in David Goodger's sandbox (pysource_reader) and a Python Source Reader document.

[2] | (1, 2, 3, 4) Markdown is another lightwight markup language. See also documentation on Common markup for Markdown and reStructuredText.

# Extensions

Extend the reStructuredText syntax or the features of Docutils. More extensions are in the Docutils Sandbox.

- Beni Cherniavsky has written a generic preprocessing module for roles and/or directives and built preprocessors for TeX math for both LaTeX and HTML output on top of it.
- Beni Cherniavsky maintains a Makefile for driving Docutils, hoping to handle everything one might do with Docutils.
- The ASCII art to SVG converter (aafigure) developed by Chris Liechti can parse ASCII art images, embedded in reST documents and output an image. This would mean that simple illustrations could be embedded as ASCII art in the reST source and still look nice when converted to e.g. HTML
- zot4rst by Erik Hetzner is an extension that allows users to write reST documents using citations from a Zotero library.
- Quick and easy publishing reStructuredText source files as blog posts on blogger.com is possible with rst2blogger .

# Related Applications

Applications using docutils/reStructuredText and helper applications.

- For Wikis, please see the FAQ entry about Wikis.
- For Blogs (Weblogs), please see the FAQ entry about Blogs.
- Project Gutenberg uses a customized version of Docutils with it's own xetex- and nroff-writer and epub generator.

## Tools

- rstcheck Checks syntax of reStructuredText and code blocks nested within it. (Using the Sphinx syntax "code-block" for the "code" directive.)

- restview is a viewer for ReStructuredText documents.

  Pass the name of a ReStructuredText document to restview, and it will launch a web server on localhost:random-port and open a web browser. It will also watch for changes in that file and automatically reload and rerender it. This is very convenient for previewing a document while you're editing it.

## Development

- Sphinx extends the ReStructuredText syntax to better support the documentation of Software (and other) projects (but other documents can be written with it too).

  Since version 2.6, the Python documentation is based on reStructuredText and Sphinx.

- Trac, a project management and bug/issue tracking system, supports using reStructuredText as an alternative to wiki markup.

- PyLit provides a bidirectional text <--> code converter for literate programming with reStructuredText.

- If you are developing a Qt app, rst2qhc lets you generate the whole help automatically from reStructuredText. That includes keywords, TOC, multiple manuals per project, filters, project file, collection project file, and more.

## CMS Systems

- Plone and Zope both support reStructuredText markup.
- ZReST, by Richard Jones, is a "ReStructuredText Document for Zope" application that is complete and ready to install.

## Presentations

- rst2html5 transform restructuredtext documents to html5 + twitter's bootstrap css, deck.js or reveal.js
- landslide generates HTML5 slideshows from markdown, ReST, or textile.
- native support for S5.
- The PythonPoint interface by Richard Jones produces PDF presentations using ReportLabs' PythonPoint.
- rst2beamer generates a LaTeX source that uses the Beamer document class. Can be converted to PDF slides with pdfLaTeX/XeLaTeX/LuaLaTeX.
- InkSlide quick and easy presentations using Inkscape. InkSlide uses reStructuredText for markup, although it renders only a subset of rst.
- rst2outline translates a reStructuredText document to a plain text outline. This can then be transformed to PowerPoint.
- Pandoc can also be used to produce slides, as shown in this Pandoc Slides Demo