Skip to content


This project brings Pandoc's data model for markdown documents to Python:

$ echo "Hello world!" | python -m pandoc read 
Pandoc(Meta({}), [Para([Str('Hello'), Space(), Str('world!')])])

It can be used to analyze, create and transform documents, in Python :

>>> import pandoc
>>> text = "Hello world!"
>>> doc =
>>> doc
Pandoc(Meta({}), [Para([Str('Hello'), Space(), Str('world!')])])

>>> paragraph = doc[1][0]
>>> paragraph
Para([Str('Hello'), Space(), Str('world!')])
>>> from pandoc.types import Str
>>> paragraph[0][2] = Str('Python!')
>>> text = pandoc.write(doc)
>>> print(text) # doctest: +NORMALIZE_WHITESPACE
Hello Python!

Pandoc is the general markup converter (and Haskell library) written by John MacFarlane.


This documentation is dedicated to the latest version of the project available on github. It is automatically tested with Python 3.10 against pandoc 2.18, the latest release of pandoc at the moment I am writing this.