Skip to main content

Latest Version Build Status

pypandoc provides a thin wrapper for pandoc, a universal document converter.

Installation

  • Install pandoc

  • Ubuntu/Debian: sudo apt-get install pandoc

  • Fedora/Red Hat: sudo yum install pandoc

  • Mac OS X with Homebrew: brew install pandoc

  • Machine with Haskell: cabal-install pandoc

  • Windows: There is an installer available here

  • FreeBSD port

  • Or see http://johnmacfarlane.net/pandoc/installing.html

  • pip install pypandoc

  • To use pandoc filters, you must have the relevant filter installed on your machine

Usage

The basic invocation looks like this: pypandoc.convert('input', 'output format'). pypandoc tries to infer the type of the input automatically. If it’s a file, it will load it. In case you pass a string, you can define the format using the parameter. The example below should clarify the usage:

import pypandoc

output = pypandoc.convert('somefile.md', 'rst')

# alternatively you could just pass some string to it and define its format
output = pypandoc.convert('#some title', 'rst', format='md')
# output == 'some title\r\n==========\r\n\r\n'

If you pass in a string (and not a filename), convert expects this string to be unicode or utf-8 encoded bytes. convert will always return a unicode string.

It’s also possible to directly let pandoc write the output to a file. This is the only way to convert to some output formats (e.g. odt, docx, epub, epub3, pdf). In that case convert() will return an empty string.

import pypandoc

output = pypandoc.convert('somefile.md', 'docx', outputfile="somefile.docx")
assert output == ""

In addition to format, it is possible to pass extra_args. That makes it possible to access various pandoc options easily.

output = pypandoc.convert(
    '<h1>Primary Heading</h1>',
    'md', format='html',
    extra_args=['--atx-headers'])
# output == '# Primary Heading\r\n'
output = pypandoc.convert(
    '# Primary Heading',
    'html', format='md',
    extra_args=['--base-header-level=2'])
# output == '<h2 id="primary-heading">Primary Heading</h2>\r\n'

pypandoc now supports easy addition of pandoc filters.

filters = ['pandoc-citeproc']
pdoc_args = ['--mathjax',
             '--smart']
output = pd.convert(source=filename,
                    to='html5',
                    format='md',
                    extra_args=pdoc_args,
                    filters=filters)

Please pass any filters in as a list and not a string.

Please refer to pandoc -h and the official documentation for further details.

Dealing with Formatting Arguments

Pandoc supports custom formatting though -V parameter. In order to use it through pypandoc, use code such as this:

output = pypandoc.convert('demo.md', 'pdf', outputfile='demo.pdf',
  extra_args=['-V', 'geometry:margin=1.5cm'])

Note that it’s important to separate -V and its argument within a list like that or else it won’t work. This gotcha has to do with the way subprocess.Popen works.

Getting Pandoc Version

As it can be useful sometimes to check what Pandoc version is available at your system, pypandoc provides an utility for this. Example:

version = pypandoc.get_pandoc_version()

Contributing

Contributions are welcome. When opening a PR, please keep the following guidelines in mind:

  1. Before implementing, please open an issue for discussion.

  2. Make sure you have tests for the new logic.

  3. Make sure your code passes flake8 pypandoc.py tests.py

  4. Add yourself to contributors at README.md unless you are already there. In that case tweak your contributions.

Note that for citeproc tests to pass you’ll need to have pandoc-citeproc installed.

IMPORTANT! Currently Travis build is a bit broken. If you have any idea on how to debug that, please see #55.

Contributors

  • Valentin Haenel - String conversion fix

  • Daniel Sanchez - Automatic parsing of input/output formats

  • Thomas G. - Python 3 support

  • Ben Jao Ming - Fail gracefully if pandoc is missing

  • Ross Crawford-d’Heureuse - Encode input in UTF-8 and add Django example

  • Michael Chow - Decode output in UTF-8

  • Janusz Skonieczny - Support Windows newlines and allow encoding to be specified.

  • gabeos - Fix help parsing

  • Marc Abramowitz - Make setup.py fail hard if pandoc is missing, Travis, Dockerfile, PyPI badge, Tox, PEP-8, improved documentation

  • Daniel L. - Add extra_args example to README

  • Amy Guy - Exception handling for unicode errors

  • Florian Eßer - Allow Markdown extensions in output format

  • Philipp Wendler - Allow Markdown extensions in input format

  • Jan Schulz - Handling output to a file, Travis to work on newer version of Pandoc, return code checking, get_pandoc_version. Helped to fix the Travis build.

  • Aaron Gonzales - Added better filter handling

  • David Lukes - Enabled input from non-plain-text files and made sure tests clean up template files correctly if they fail

  • valholl - Set up licensing information correctly and include examples to distribution version

  • Cyrille Rossant - Fixed bug by trimming out stars in the list of pandoc formats. Helped to fix the Travis build.

  • Paul Osborne - Don’t require pandoc to install pypandoc.

License

pypandoc is available under MIT license. See LICENSE for more details.

Metadata

Release files for pypandoc 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pypandoc 1.1.2
File Size Uploaded
pypandoc-1.1.2.zip 26.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pypandoc 1.1.2
File
pypandoc-1.1.2-cp35-none-win_amd64.whl CPython 3.5 none Windows x86-64 Details
pypandoc-1.1.2-cp35-cp35m-macosx_10_5_x86_64.whl CPython 3.5 CPython 3.5 pymalloc macOS 10.5+ x86-64 Details
pypandoc-1.1.2-cp34-none-win_amd64.whl CPython 3.4 none Windows x86-64 Details
pypandoc-1.1.2-cp34-none-win32.whl CPython 3.4 none Windows x86-32 Details
pypandoc-1.1.2-cp34-cp34m-macosx_10_5_x86_64.whl CPython 3.4 CPython 3.4 pymalloc macOS 10.5+ x86-64 Details
pypandoc-1.1.2-cp27-none-win_amd64.whl CPython 2.7 none Windows x86-64 Details
pypandoc-1.1.2-cp27-none-win32.whl CPython 2.7 none Windows x86-32 Details
pypandoc-1.1.2-cp27-none-macosx_10_5_x86_64.whl CPython 2.7 none macOS 10.5+ x86-64 Details

Total release size: 188.3 MB

Release files / pypandoc-1.1.2.zip

Download URL pypandoc-1.1.2.zip
Size 26.8 kB
Tags Source
SHA-256 checksum
How to use checksums
54f0b4d3be57d2f7f7ff7baff9ac9648e0de092f136d647a804fce0734d0b17c
BLAKE2b-256 checksum
How to use checksums
ce2a4f64c1269842b0cf037cb07fc9a018e58328a981907e604a3be1733b8085
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pypandoc-1.1.2-cp35-none-win_amd64.whl

Download URL pypandoc-1.1.2-cp35-none-win_amd64.whl
Size 20.1 MB
Tags CPython 3.5 Windows x86-64
SHA-256 checksum
How to use checksums
72652a2029f164f7ca91429d7aee6a83a94636396164208fcfade98a643b884b
BLAKE2b-256 checksum
How to use checksums
53138db2b76b0f4082e69cfeb73c4920c10b48a19529fa2634ed31ebddb9051f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pypandoc-1.1.2-cp35-cp35m-macosx_10_5_x86_64.whl

Download URL pypandoc-1.1.2-cp35-cp35m-macosx_10_5_x86_64.whl
Size 29.2 MB
Tags CPython 3.5 CPython 3.5 pymalloc macOS 10.5+ x86-64
SHA-256 checksum
How to use checksums
882a4f3b81ba4a1508000c39764ee2c44432afc888235d77d54cbbd1ce253f70
BLAKE2b-256 checksum
How to use checksums
d5e0df107971bed75d61b23c07db8ddfc284ecd42f7d6efbdb453c8c726863c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pypandoc-1.1.2-cp34-none-win_amd64.whl

Download URL pypandoc-1.1.2-cp34-none-win_amd64.whl
Size 20.1 MB
Tags CPython 3.4 Windows x86-64
SHA-256 checksum
How to use checksums
86a22a0205e66435553f9d1d0fb493ec699ff918e53067b483fa49ce053ea0a4
BLAKE2b-256 checksum
How to use checksums
7bc08dbfc10c7224d544e3ce3d1815d872604675d069dbb10fb9c70cf7b0b2b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pypandoc-1.1.2-cp34-none-win32.whl

Download URL pypandoc-1.1.2-cp34-none-win32.whl
Size 20.1 MB
Tags CPython 3.4 Windows x86-32
SHA-256 checksum
How to use checksums
fc8b488312d63e10d906fa222b0d84feaf70cab1b687f1509b90a6f1671ce5f0
BLAKE2b-256 checksum
How to use checksums
accfa9e8632baf2f9e79f8bf224fc540756916a0190224067ddb35f7cb6d9ff7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pypandoc-1.1.2-cp34-cp34m-macosx_10_5_x86_64.whl

Download URL pypandoc-1.1.2-cp34-cp34m-macosx_10_5_x86_64.whl
Size 29.2 MB
Tags CPython 3.4 CPython 3.4 pymalloc macOS 10.5+ x86-64
SHA-256 checksum
How to use checksums
4552b322dc0defec897b3f3a10dc6877ce0ae095cde9908458e0390f488872c1
BLAKE2b-256 checksum
How to use checksums
74a92fd38285ead2925f3a437b3067c0ffe858d0e49cbfef1a80e9c7fa6655b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pypandoc-1.1.2-cp27-none-win_amd64.whl

Download URL pypandoc-1.1.2-cp27-none-win_amd64.whl
Size 20.1 MB
Tags CPython 2.7 Windows x86-64
SHA-256 checksum
How to use checksums
dc87e1000b4ae00ef3a6418ee2fb2e742976963bf9016eb9566d0f792930f551
BLAKE2b-256 checksum
How to use checksums
e644c463198cfc2c2f502357aebb3a7921e65eaf4b54bc86a6033d1d1d99f7cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pypandoc-1.1.2-cp27-none-win32.whl

Download URL pypandoc-1.1.2-cp27-none-win32.whl
Size 20.1 MB
Tags CPython 2.7 Windows x86-32
SHA-256 checksum
How to use checksums
cce2e77be1a67b4f4be674cc14256f2bb59b3b4ea4bd63f0c5fdda64555b2d62
BLAKE2b-256 checksum
How to use checksums
5c6bcdbba7df6dd4d117054db6fc039c38464d08144d467fe0f92f02e20bd575
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pypandoc-1.1.2-cp27-none-macosx_10_5_x86_64.whl

Download URL pypandoc-1.1.2-cp27-none-macosx_10_5_x86_64.whl
Size 29.2 MB
Tags CPython 2.7 macOS 10.5+ x86-64
SHA-256 checksum
How to use checksums
e403f16cac74dfa8dc2adc5d776041f65cbeec0f37edb75953439205c5157c92
BLAKE2b-256 checksum
How to use checksums
813c2879a41945194f1eac700bd03e467c7ea46b04d9d2e899ef820700b62f8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.17

2 release files

1.16.2

2 release files

1.16

1 release file

1.15

2 release files

1.14

2 release files

1.13

2 release files

1.12

2 release files

1.11

2 release files

1.10

2 release files

1.9

2 release files

1.8.1

2 release files

1.8

1 release file

1.7.5

1 release file

1.7.4

1 release file

1.7.3

1 release file

1.7.2

2 release files

1.7.1

2 release files

1.7.0

1 release file

1.6.4

2 release files

1.6.3

2 release files

1.6.2

1 release file

1.6.1

1 release file

1.5

2 release files

1.4

1 release file

1.3.3

3 release files

1.3.1

1 release file

1.3.0

3 release files

1.2.0

1 release file

1.1.3

7 release files

This release

1.1.2 This release

9 release files

1.1.1

8 release files

1.1.0

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.9.9

1 release file

0.9.8

1 release file

0.9.7

1 release file

0.9.6

1 release file

0.9.5

1 release file

0.9.4

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9.0

1 release file

0.8.6

1 release file

0.8.5

1 release file

0.8.4

1 release file

0.8.3

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8.0

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.0

1 release file

0.5.3

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.5.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page