{"id":13588955,"url":"https://github.com/brechtm/rinohtype","last_synced_at":"2025-12-29T22:47:02.396Z","repository":{"id":11442597,"uuid":"13900112","full_name":"brechtm/rinohtype","owner":"brechtm","description":"The Python document processor","archived":false,"fork":false,"pushed_at":"2024-12-06T11:16:46.000Z","size":146217,"stargazers_count":517,"open_issues_count":115,"forks_count":63,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-04-02T05:49:51.093Z","etag":null,"topics":["pdf","pdf-generation","pdf-generator","python","restructuredtext","sphinx-extension","typesetting","typesetting-system"],"latest_commit_sha":null,"homepage":"http://www.mos6581.org/rinohtype","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brechtm.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":"CONTRIBUTING.rst","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["brechtm"]}},"created_at":"2013-10-27T11:36:06.000Z","updated_at":"2025-03-17T11:57:22.000Z","dependencies_parsed_at":"2023-12-14T19:30:26.858Z","dependency_job_id":"cc3cbec8-90e6-4494-bc50-5c5fd6473f05","html_url":"https://github.com/brechtm/rinohtype","commit_stats":{"total_commits":3253,"total_committers":19,"mean_commits":"171.21052631578948","dds":"0.028588994774054743","last_synced_commit":"a9268d6209e54038ca5a300bacac5af8d848c29b"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brechtm%2Frinohtype","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brechtm%2Frinohtype/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brechtm%2Frinohtype/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brechtm%2Frinohtype/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brechtm","download_url":"https://codeload.github.com/brechtm/rinohtype/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247796158,"owners_count":20997522,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pdf","pdf-generation","pdf-generator","python","restructuredtext","sphinx-extension","typesetting","typesetting-system"],"created_at":"2024-08-01T16:00:15.491Z","updated_at":"2025-12-29T22:47:02.390Z","avatar_url":"https://github.com/brechtm.png","language":"Python","readme":"rinohtype\n=========\n\n.. image:: http://img.shields.io/pypi/v/rinohtype.svg\n   :target: https://pypi.python.org/pypi/rinohtype\n   :alt: PyPI\n\n.. image:: https://img.shields.io/pypi/pyversions/rinohtype.svg\n   :target: https://pypi.python.org/pypi/rinohtype\n   :alt: Python version\n\n.. image:: https://img.shields.io/github/discussions/brechtm/rinohtype\n   :target: https://github.com/brechtm/rinohtype/discussions\n   :alt: Discussions\n\n.. image:: https://badges.gitter.im/brechtm/rinohtype.svg\n   :target: https://gitter.im/brechtm/rinohtype\n   :alt: Gitter chat\n\n.. image:: https://github.com/brechtm/rinohtype/workflows/Test%20\u0026%20Publish/badge.svg\n   :target: https://github.com/brechtm/rinohtype/actions?query=workflow%3A%22Test+%26+Publish%22\n   :alt: Tests\n\n.. image:: https://codecov.io/gh/brechtm/rinohtype/branch/master/graph/badge.svg\n   :target: https://codecov.io/gh/brechtm/rinohtype\n   :alt: Test coverage\n\n\nrinohtype is a batch-mode document processor. It renders structured documents\nto PDF based on a document template and a style sheet. An important design goal\nof rinohtype is make document layout and style customization user-friendly.\nHave a look at the showcase_ to get an idea of the level of customization that\nis possible. See the documentation_ to learn how to customize the style of your\ndocument.\n\n.. _showcase: https://www.mos6581.org/rinohtype/master/showcase.html\n.. _documentation: http://www.mos6581.org/rinohtype/master/\n\n\nCall for Contributions\n----------------------\n\nSince rinohtype is a fairly sizable project and currently being maintained by a\nsingle person, your contribution can make a big difference. Specifically, the\nfollowing things can help move rinohtype forward:\n\n* development of professional-looking stylesheets and document templates\n* volunteering to be a maintainer: fix issues that pop up when new versions of\n  dependencies are released (Python, Sphinx, ...), or handling\n  platform-specific regressions (development is mainly on macOS).\n* help with maintaining and improving the documentation\n* development of new features, e.g. widow/orphan handling, Knuth-Plass line\n  breaking, mathematics typesetting, performance improvements, ...\n* companies might be interested in funding the development of particular\n  features\n\nSo if you are interested in helping with any of these items, please don't\nhesitate to get in touch via Discussions_, Gitter_ or brecht@opqode.com!\n\n.. _Discussions: https://github.com/brechtm/rinohtype/discussions\n.. _Gitter: https://gitter.im/brechtm/rinohtype\n\n\nFeatures\n--------\n\nrinohtype is still in beta, so you might run into some issues when using it.\nI'd highly appreciate it if you could `create a ticket`_ for any bugs you may\nencounter. That said, rinohtype is already quite capable. For example, it\nshould be able to replace Sphinx_'s LaTeX builder in most cases. Here is an\noverview of the main features:\n\n* a powerful page layout system supporting columns, running headers/footers,\n  floatable elements and footnotes\n* support for figures and (large) tables, optionally rendered sideways\n* automatic generation of table of contents and index\n* automatic numbering and cross-referencing of section headings, figures and\n  tables\n* configure one of the included document templates or create your own\n* an intuitive style sheet system inspired by CSS allowing changing almost\n  every aspect of how document elements are rendered\n* modular design allowing for multiple frontends (such as reStructuredText,\n  Markdown, DocBook, ...)\n* handles OpenType, TrueType and Type1 fonts with support for advanced\n  typographic features such as kerning, ligatures, small capitals and old style\n  figures\n* built-in support for the 1000+ libre licensed fonts on `Google Fonts`_\n* embeds PDF, PNG and JPEG images, preserving transparency and color profiles\n* easy to install and deploy; pure-Python with few dependencies\n* built on Unicode; ready for non-latin languages\n\nrinohtype's primary input format is reStructuredText_. The ``rinoh`` command\nline tool renders reStructuredText documents and the included Sphinx_ builder\nmakes it possible to output large documents with your own style applied. Have\na look at the `rinohtype manual`_ for an example of the output.\n\nThere is also a commercial DITA_ frontend, but it's development is currently\non hold. Please `contact me`_ if you are interested in testing it.\n\n.. _create a ticket: https://github.com/brechtm/rinohtype/issues/new/choose\n.. _Google Fonts: https://fonts.google.com\n.. _reStructuredText: http://docutils.sourceforge.net/rst.html\n.. _Sphinx: http://sphinx-doc.org\n.. _rinohtype manual: http://www.mos6581.org/rinohtype/master/manual.pdf\n.. _DITA: https://en.wikipedia.org/wiki/Darwin_Information_Typing_Architecture\n.. _contact me: brecht@opqode.com\n\n\nRequirements\n------------\n\nrinohtype supports all stable Python 3 versions that have not reached\nend-of-life_ status. For parsing reStructuredText and CommonMark documents,\nrinohtype depends on docutils_ and myst-parser_ respectively. pip_ takes care\nof installing these requirements when you install rinohtype.\n\nFor rendering equations, rinohtype additionally requires ziamath_ and cairosvg_.\nTo install these along with rinohtype, specify the *math* extra_ when installing\nrinohtype::\n\n    pip install rinohtype[math]\n\nSyntax highlighting of code blocks is enabled if Pygments_ is installed, which\nwill be installed automatically with Sphinx_. If you want to include images\nother than PDF, PNG or JPEG, you also need to install Pillow_.\n\n.. _end-of-life: https://devguide.python.org/versions/#versions\n.. _docutils: http://docutils.sourceforge.net/index.html\n.. _myst-parser: https://myst-parser.readthedocs.io\n.. _pip: https://pip.pypa.io\n.. _ziamath: https://ziamath.readthedocs.io\n.. _cairosvg: https://cairosvg.org/\n.. _extra: https://packaging.python.org/en/latest/specifications/dependency-specifiers/#extras\n.. _Pygments: https://pygments.org\n.. _Pillow: http://python-pillow.github.io\n\n\nGetting Started\n---------------\n\nInstallation is trivial::\n\n    pip install rinohtype\n\n\nIf you want to have access to bug fixes and features that are not available in\na release, you can install the current development version::\n\n    pip install https://github.com/brechtm/rinohtype/archive/refs/heads/master.zip\n\n\nreStructuredText Renderer\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe easiest way to get started with rinohtype is to render a reStructuredText\ndocument (such as ``CHANGES.rst`` from this repository) using the ``rinoh``\ncommand line tool::\n\n   rinoh CHANGES.rst\n\nWhen ``rinoh`` finishes, you will find ``CHANGES.pdf`` alongside the input\nfile.\n\nBy default ``rinoh`` renders the input document using the article template. Run\n``rinoh --help`` to see how you can tell ``rinoh`` which document template and\nstyle sheet to use.\n\n\nSphinx Builder\n~~~~~~~~~~~~~~\n\nrinohtype can be used as a drop-in replacement for the LaTeX builder (the\n``latex_documents`` configuration variable has to be set). Simply select the\n`rinoh` builder when building the Sphinx project::\n\n    sphinx-build -b rinoh . _build/rinoh\n\n\nContributing\n------------\n\nSee ``CONTRIBUTING.rst`` and ``DEVELOPING.rst``\n\n\nLicense\n-------\n\nAll of rinohtype's source code is licensed under the `Affero GPL 3.0`_, unless\nindicated otherwise in the source file (such as ``hyphenator.py`` and\n``purepng.py``).\n\nThe Affero GPL requires for software that builds on rinohtype to also be\nreleased as open source under this license. For building closed-source\napplications, you can obtain a `commercial license`_. The author of rinohtype\nis also available for consultancy projects involving rinohtype.\n\n.. _Affero GPL 3.0: https://www.gnu.org/licenses/agpl-3.0.html\n.. _commercial license: `contact me`_\n","funding_links":["https://github.com/sponsors/brechtm"],"categories":["PYTHON","Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrechtm%2Frinohtype","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrechtm%2Frinohtype","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrechtm%2Frinohtype/lists"}