Public Repository

Last pushed: 2 years ago
Short Description
Docker container for pypandoc and pandoc
Full Description

This illustrates how to build a Docker image with pandoc and pypandoc in it.

I've uploaded an image to the Docker registry as msabramo/pypandoc so you can use right away as seen below:

[marca@marca-mac2 pypandoc]$ docker run -v `pwd`:/source -it msabramo/pypandoc
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pypandoc
>>> print(pypandoc.convert('', 'rst'))

pypandoc provides a thin wrapper for
`pandoc <>`__, a universal document


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:

.. code:: python

    import pypandoc

    output = pypandoc.convert('', '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'

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

.. code:: python

    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'

Please refer to ``pandoc -h`` and the `official
documentation <>`__ for
further details.

See also `pyandoc <>`__ for an
alternative implementation.

Django Service Example

See ```` at the project root for implementation. Use it like

.. code:: python

    from .services import PandocDocxService

    service = PandocDocxService()
    doc_file = service.generate(html='<html><body><h1>Heading 1</h1><p>testing testing 123</p></body></html>')


-  `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 ````
   fail hard if ``pandoc`` is missing
-  `Daniel L. <>`__ - Add ``extra_args``
   example to README
-  `Amy Guy <>`__ - Exception handling for
   unicode errors


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

[marca@marca-mac2 pypandoc]$
Docker Pull Command

Comments (0)