Dynamic document generation for Pandoc in Python
Project description
pandoc-purl
pandoc-purl is Pandoc filter for literate programming and dynamic document generation in Python. It is similar in spirit to Knitr or Pweave.
pandoc-purl can be installed through pip
(e.g. python3 -m pip install pandoc-purl
), and used like other Pandoc
filters, e.g. pandoc --filter pandoc-purl document.md -o document.tex
.
Code chunks
pandoc-purl will process code blocks tagged with the python
class or
inline code tagged with the p
or python
classes.
Note This README.md file has been generated from the README.in.md using pandoc-purl.
Code blocks
Code blocks marked with the python
class will behave as if executed in
an interactive Python shell: they execute their content, display the
content and, in a following paragraph, display any printed value as well
as the value of the last expression (see below for options controlling
this behavior).
Input | Rendered |
---|---|
|
|
If the last statement is not an expression, the code is still executed and displayed, but no result is printed
Input | Rendered |
---|---|
|
Inline code
Inline code marked with the p
or python
classes should contain only
a single expression, and will display the value of that expression in
the text.
Input | Rendered |
---|---|
|
The answer is 42 |
Chunk options
Options can be passed to code chunks using the key=value
syntax. The
following options are available:
-
eval
: whether to run the code chunk (true
orfalse
, defaults totrue
)Input Rendered The answer is `6*7`{.p}
The answer is 42 The answer is `6*7`{.p eval=false}
The answer is 6*7
-
echo
: whether to show the code (code blocks only,true
orfalse
, defaults totrue
)Input Rendered ```python print("Hello pandoc-purl") ```
Hello pandoc-purl
```{.python echo=false} print("Hello pandoc-purl") ```
Hello pandoc-purl
-
results
: how to show the result of the last expressionasis
: show the result as a pre-formatted code block or inline (default)markup
: process the result through Pandoc before showing ithide
: hide the result
Input Rendered I'm `"**bold**"`{.p}
I’m **bold** I'm `"**bold**"`{.p results=markup}
I’m bold
Changing the defaults
The default chunk options can also be changed globally by modifying
chunk_defaults
in the pandoc_purl
module:
```{.python echo=false}
import pandoc_purl
pandoc_purl.chunk_defaults["echo"] = False
```
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pandoc_purl-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd96a68d1070bddef79d75d3c51332baf3bc3e48eb5aa540f53ac358c791fa7b |
|
MD5 | ea9236c56f2b1c4a069a44c1a20be63e |
|
BLAKE2b-256 | 305099fec545688eec4cfc23d28e1cd7bb6f8e98923f105b656f7859e0e4e92c |