Skip to main content

The Python document processor

Project description

PyPI Python version Gitter chat Tests Test coverage

rinohtype is a batch-mode document processor. It renders structured documents to PDF based on a document template and a style sheet. An important design goal of rinohtype is make document layout and style customization user-friendly. See the documentation to learn how to customize the style of your document.

Call for Contributions

Since rinohtype is a fairly sizable project and currently being maintained by a single person, your contribution can make a big difference. Specifically, the following things can help move rinohtype forward:

  • development of professional-looking stylesheets and document templates

  • volunteering to be a maintainer: fix issues that pop up when new versions of dependencies are released (Python, Sphinx, …)

  • help with maintaining and improving the documentation

  • development of new features, e.g. widow/orphan handling, Knuth-Plass line breaking, mathematics typesetting, performance improvements, …

  • companies might be interested in funding the development of particular features that would benefit them

So if you are interested in helping with any of these items, please don’t hesitate to get in touch via brecht@opqode.com, GitHub issues or Gitter!

Features

rinohtype is still in beta, so you might run into some issues when using it. I’d highly appreciate it if you could create a ticket for any bugs you may encounter. That said, rinohtype is already quite capable. For example, it should be able to replace Sphinx’s LaTeX builder in most cases. Here is an overview of the main features:

  • a powerful page layout system supporting columns, running headers/footers, floatable elements and footnotes

  • support for figures and (large) tables

  • automatic generation of table of contents and index

  • automatic numbering and cross-referencing of section headings, figures and tables

  • configure one of the included document templates or create your own

  • an intuitive style sheet system inspired by CSS

  • modular design allowing for multiple frontends (such as reStructuredText, Markdown, DocBook, …)

  • handles OpenType, TrueType and Type1 fonts with support for advanced typographic features such as kerning, ligatures, small capitals and old style figures

  • embeds PDF, PNG and JPEG images, preserving transparency and color profiles

  • easy to install and deploy; pure-Python with few dependencies

  • built on Unicode; ready for non-latin languages

rinohtype’s primary input format is reStructuredText. The rinoh command line tool renders reStructuredText documents and the included Sphinx builder makes it possible to output large documents with your own style applied. Have a look at the rinohtype documentation for an example of the output.

Requirements

rinohtype supports Python 3.5 and up. For parsing reStructuredText and CommonMark documents, rinohtype depends on docutils and recommonmark respectively. pip takes care of these requirements when you install rinohtype.

Syntax highlighting of code blocks is eneabled if Pygments is installed, which will be installed automatically with Sphinx. If you want to include images other than PDF, PNG or JPEG, you also need to install Pillow.

Getting Started

Installation is trivial:

pip install rinohtype

reStructuredText Renderer

The easiest way to get started with rinohtype is to render a reStructuredText document (such as CHANGES.rst from this repository) using the rinoh command line tool:

rinoh CHANGES.rst

When rinoh finishes, you will find CHANGES.pdf alongside the input file.

By default rinoh renders the input document using the article template. Run rinoh --help to see how you can tell rinoh which document template and style sheet to use.

Sphinx Builder

rinohtype can be used as a drop-in replacement for the LaTeX builder (the latex_documents configuration variable has to be set). Simply select the rinoh builder when building the Sphinx project:

sphinx-build -b rinoh . _build/rinoh

Contributing

See CONTRIBUTING.rst and DEVELOPING.rst

License

All of rinohtype’s source code is licensed under the Affero GPL 3.0, unless indicated otherwise in the source file (such as hyphenator.py).

The Affero GPL requires for software that builds on rinohtype to also be released as open source under this license. For building closed-source applications, you can obtain a commercial license. The author of rinohtype is also available for consultancy projects involving rinohtype.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rinohtype-0.5.0.tar.gz (3.6 MB view details)

Uploaded Source

Built Distribution

rinohtype-0.5.0-py3-none-any.whl (600.3 kB view details)

Uploaded Python 3

File details

Details for the file rinohtype-0.5.0.tar.gz.

File metadata

  • Download URL: rinohtype-0.5.0.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.9.1 Linux/5.4.0-1036-azure

File hashes

Hashes for rinohtype-0.5.0.tar.gz
Algorithm Hash digest
SHA256 97c6456dfdab7c340953f47db3054199a551380df5235948cb6c7b7574da19b3
MD5 2dc35962763b01a5c912f2fe87853ab5
BLAKE2b-256 8faabee3d018144f596044852d17257f117494a62106db01b26c311744359a52

See more details on using hashes here.

Provenance

File details

Details for the file rinohtype-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: rinohtype-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 600.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.9.1 Linux/5.4.0-1036-azure

File hashes

Hashes for rinohtype-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 86a7fb6b91f82aba67a832338cb988963472f7fe81780c4b00055c0c7f42d8d4
MD5 853191aecad88fbe8f722a956acdb8e8
BLAKE2b-256 948cb9734df8ad2058f09e52f111bfe0fb94d0f26d204f9d816f199eb8e7459e

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page