Docker container for pypandoc and pandoc
977
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('README.md', 'rst'))
pypandoc
========
pypandoc provides a thin wrapper for
`pandoc <http://johnmacfarlane.net/pandoc/>`__, a universal document
converter.
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:
.. code:: python
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'
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 <http://johnmacfarlane.net/pandoc/README.html>`__ for
further details.
See also `pyandoc <http://pypi.python.org/pypi/pyandoc/>`__ for an
alternative implementation.
Django Service Example
----------------------
See ``services.py`` at the project root for implementation. Use it like
this:
.. 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>')
Contributors
------------
- `Valentin Haenel <https://github.com/esc>`__ - String conversion fix
- `Daniel Sanchez <https://github.com/ErunamoJAZZ>`__ - Automatic
parsing of input/output formats
- `Thomas G. <https://github.com/coldfix>`__ - Python 3 support
- `Ben Jao Ming <https://github.com/benjaoming>`__ - Fail gracefully if
``pandoc`` is missing
- `Ross Crawford-d'Heureuse <http://github.com/rosscdh>`__ - Encode
input in UTF-8 and add Django example
- `Michael Chow <https://github.com/machow>`__ - Decode output in UTF-8
- `Janusz Skonieczny <https://github.com/wooyek>`__ - Support Windows
newlines and allow encoding to be specified.
- `gabeos <https://github.com/gabeos>`__ - Fix help parsing
- `Marc Abramowitz <https://github.com/msabramo>`__ - Make ``setup.py``
fail hard if ``pandoc`` is missing
- `Daniel L. <https://github.com/mcktrtl>`__ - Add ``extra_args``
example to README
- `Amy Guy <https://github.com/rhiaro>`__ - Exception handling for
unicode errors
License
-------
``pypandoc`` is available under MIT license. See LICENSE for more
details.
>>>
[marca@marca-mac2 pypandoc]$
Content type
Image
Digest
sha256:a53e114aa…
Size
210.8 MB
Last updated
almost 11 years ago
docker pull msabramo/pypandoc