# Panflute: Pythonic Pandoc Filters
[![Development Status](https://img.shields.io/pypi/status/panflute.svg)](https://pypi.python.org/pypi/panflute/)
[![Build Status](https://github.com/sergiocorreia/panflute/workflows/CI%20Tests/badge.svg)](https://github.com/sergiocorreia/panflute/actions?query=workflow%3A%22CI+Tests%22)
![License](https://img.shields.io/pypi/l/panflute.svg)
[![DOI](https://zenodo.org/badge/55024750.svg)](https://zenodo.org/badge/latestdoi/55024750)
[![GitHub Releases](https://img.shields.io/github/tag/sergiocorreia/panflute.svg?label=github+release)](https://github.com/sergiocorreia/panflute/releases)
[![PyPI version](https://img.shields.io/pypi/v/panflute.svg)](https://pypi.python.org/pypi/panflute/)
[![Conda Version](https://img.shields.io/conda/vn/conda-forge/panflute.svg)](https://anaconda.org/conda-forge/panflute)
[![Python version](https://img.shields.io/pypi/pyversions/panflute.svg)](https://pypi.python.org/pypi/panflute/)
[![Supported implementations](https://img.shields.io/pypi/implementation/panflute.svg)](https://pypi.org/project/panflute)
[panflute](http://scorreia.com/software/panflute/) is a Python package that makes creating Pandoc filters fun.
For a detailed user guide, documentation, and installation instructions, see
<http://scorreia.com/software/panflute/>.
For examples that you can use as starting points, check the [examples repo](https://github.com/sergiocorreia/panflute-filters/tree/master/filters), the [sample template](https://raw.githubusercontent.com/sergiocorreia/panflute/master/docs/source/_static/template.py), or [this github search](https://github.com/search?q=import+panflute+extension%3Apy&type=Code).
If you want to contribute, head [here](/CONTRIBUTING.md).
You might also find useful [this presentation](https://github.com/BPLIM/Workshops/raw/master/BPLIM2019/D2_S1_Sergio_Correia_Markdown.pdf) on how I use markdown+pandoc+panflute to write research papers (at the Banco de Portugal 2019 Workshop on Reproductible Research).
## Installation
### Pip
To manage panflute using pip, open the command line and run
- `pip install panflute` to install
- `pip install "panflute[extras]"` to include extra dependencies (`yamlloader`)
- `pip install -U panflute` to upgrade
- `pip uninstall panflute` to remove
You need a matching pandoc version for panflute to work flawlessly. See [Supported pandoc versions] for details. Or, use the [Conda] method to install below to have the pandoc version automatically managed for you.
### Conda
To manage panflute with a matching pandoc version, open the command line and run
- `conda install -c conda-forge pandoc 'panflute>=2.0.5'` to install both
`conda install -c conda-forge pandoc 'panflute>=2.0.5' yamlloader` to include extra dependencies
- `conda update pandoc panflute` to upgrade both
- `conda remove pandoc panflute` to remove both
You may also replace `conda` by `mamba`, which is basically a drop-in replacement of the conda package manager. See [mamba-org/mamba: The Fast Cross-Platform Package Manager](https://github.com/mamba-org/mamba) for details.
### Note on versions
#### Supported Python versions
panflute 1.12 or above dropped support of Python 2. When using Python 3, depending on your setup, you may need to use `pip3`/`python3` explicitly. If you need to use panflute in Python 2, install panflute 1.11.x or below.
Currently supported Python versions: [![Python version](https://img.shields.io/pypi/pyversions/panflute.svg)](https://pypi.python.org/pypi/panflute/). Check `setup.py` for details, which further indicates support of pypy on top of CPython.
#### Supported pandoc versions
pandoc versioning semantics is [MAJOR.MAJOR.MINOR.PATCH](https://pvp.haskell.org) and panflute's is MAJOR.MINOR.PATCH. Below we shows matching versions of pandoc that panflute supports, in descending order. Only major version is shown as long as the minor versions doesn't matter.
<!-- For pandoc API verion, check https://hackage.haskell.org/package/pandoc for pandoc-types, which is the same thing. -->
| panflute version | supported pandoc versions | supported pandoc API versions |
| ---------------- | ------------------------- | ----------------------------- |
| 2.3.1 | 2.11.0.4–3.1.x | 1.22–1.23 |
| 2.2.4 | 2.11.0.4–2.17.x | 1.22–1.22.1 |
| 2.1.x | 2.11.0.4—2.14.x | 1.22 |
| 2.0 | 2.11.0.4—2.11.x | 1.22 |
| not supported | 2.10 | 1.21 |
| 1.12 | 2.7-2.9 | 1.17.5–1.20 |
Note: pandoc 2.10 is short lived and 2.11 has minor API changes comparing to that, mainly for fixing its shortcomings. Please avoid using pandoc 2.10.
## Dev Install
After cloning the repo and opening the panflute folder, run
- `python setup.py install` to install the package locally
- `python setup.py develop` to install locally with a symlink so changes are automatically updated
## Contributing
Feel free to submit push requests. For consistency, code should comply with [pep8](https://pypi.python.org/pypi/pep8) (as long as its reasonable), and with the style guides by [@kennethreitz](http://docs.python-guide.org/en/latest/writing/style/) and [google](http://google.github.io/styleguide/pyguide.html). Read more [here](/CONTRIBUTING.md).
## License
BSD3 license (following [`pandocfilters`](https://github.com/jgm/pandocfilters) by @jgm).
## Changelog
- `2.3.0` Update [Pandoc API](https://github.com/jgm/pandoc-types/blob/master/changelog) from 1.22 to 1.23 ([Pandoc 3.0](https://pandoc.org/releases.html#pandoc-3.0-2023-01-18)):
- Add `Figure` block object
- Remove `Null` block object (scheduled for removed)
Raw data
{
"_id": null,
"home_page": "https://github.com/sergiocorreia/panflute",
"name": "panflute",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "pandoc pandocfilters markdown latex",
"author": "Sergio Correia",
"author_email": "sergio.correia@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/b7/91/b659923bea127e51bc1b279c3afb3724cae116893ddba7ae498a97496693/panflute-2.3.1.tar.gz",
"platform": null,
"description": "# Panflute: Pythonic Pandoc Filters\n\n[![Development Status](https://img.shields.io/pypi/status/panflute.svg)](https://pypi.python.org/pypi/panflute/)\n[![Build Status](https://github.com/sergiocorreia/panflute/workflows/CI%20Tests/badge.svg)](https://github.com/sergiocorreia/panflute/actions?query=workflow%3A%22CI+Tests%22)\n![License](https://img.shields.io/pypi/l/panflute.svg)\n[![DOI](https://zenodo.org/badge/55024750.svg)](https://zenodo.org/badge/latestdoi/55024750)\n\n[![GitHub Releases](https://img.shields.io/github/tag/sergiocorreia/panflute.svg?label=github+release)](https://github.com/sergiocorreia/panflute/releases)\n[![PyPI version](https://img.shields.io/pypi/v/panflute.svg)](https://pypi.python.org/pypi/panflute/)\n[![Conda Version](https://img.shields.io/conda/vn/conda-forge/panflute.svg)](https://anaconda.org/conda-forge/panflute)\n[![Python version](https://img.shields.io/pypi/pyversions/panflute.svg)](https://pypi.python.org/pypi/panflute/)\n[![Supported implementations](https://img.shields.io/pypi/implementation/panflute.svg)](https://pypi.org/project/panflute)\n\n[panflute](http://scorreia.com/software/panflute/) is a Python package that makes creating Pandoc filters fun.\n\nFor a detailed user guide, documentation, and installation instructions, see\n<http://scorreia.com/software/panflute/>.\nFor examples that you can use as starting points, check the [examples repo](https://github.com/sergiocorreia/panflute-filters/tree/master/filters), the [sample template](https://raw.githubusercontent.com/sergiocorreia/panflute/master/docs/source/_static/template.py), or [this github search](https://github.com/search?q=import+panflute+extension%3Apy&type=Code).\nIf you want to contribute, head [here](/CONTRIBUTING.md).\n\nYou might also find useful [this presentation](https://github.com/BPLIM/Workshops/raw/master/BPLIM2019/D2_S1_Sergio_Correia_Markdown.pdf) on how I use markdown+pandoc+panflute to write research papers (at the Banco de Portugal 2019 Workshop on Reproductible Research).\n\n\n## Installation\n\n### Pip\n\nTo manage panflute using pip, open the command line and run\n\n- `pip install panflute` to install\n - `pip install \"panflute[extras]\"` to include extra dependencies (`yamlloader`)\n- `pip install -U panflute` to upgrade\n- `pip uninstall panflute` to remove\n\nYou need a matching pandoc version for panflute to work flawlessly. See [Supported pandoc versions] for details. Or, use the [Conda] method to install below to have the pandoc version automatically managed for you.\n\n### Conda\n\nTo manage panflute with a matching pandoc version, open the command line and run\n\n- `conda install -c conda-forge pandoc 'panflute>=2.0.5'` to install both\n `conda install -c conda-forge pandoc 'panflute>=2.0.5' yamlloader` to include extra dependencies\n- `conda update pandoc panflute` to upgrade both\n- `conda remove pandoc panflute` to remove both\n\nYou may also replace `conda` by `mamba`, which is basically a drop-in replacement of the conda package manager. See [mamba-org/mamba: The Fast Cross-Platform Package Manager](https://github.com/mamba-org/mamba) for details.\n\n### Note on versions\n\n#### Supported Python versions\n\npanflute 1.12 or above dropped support of Python 2. When using Python 3, depending on your setup, you may need to use `pip3`/`python3` explicitly. If you need to use panflute in Python 2, install panflute 1.11.x or below.\n\nCurrently supported Python versions: [![Python version](https://img.shields.io/pypi/pyversions/panflute.svg)](https://pypi.python.org/pypi/panflute/). Check `setup.py` for details, which further indicates support of pypy on top of CPython.\n\n#### Supported pandoc versions\n\npandoc versioning semantics is [MAJOR.MAJOR.MINOR.PATCH](https://pvp.haskell.org) and panflute's is MAJOR.MINOR.PATCH. Below we shows matching versions of pandoc that panflute supports, in descending order. Only major version is shown as long as the minor versions doesn't matter.\n\n<!-- For pandoc API verion, check https://hackage.haskell.org/package/pandoc for pandoc-types, which is the same thing. -->\n\n| panflute version | supported pandoc versions | supported pandoc API versions |\n| ---------------- | ------------------------- | ----------------------------- |\n| 2.3.1 | 2.11.0.4\u20133.1.x | 1.22\u20131.23 |\n| 2.2.4 | 2.11.0.4\u20132.17.x | 1.22\u20131.22.1 |\n| 2.1.x | 2.11.0.4\u20142.14.x | 1.22 |\n| 2.0 | 2.11.0.4\u20142.11.x | 1.22 |\n| not supported | 2.10 | 1.21 |\n| 1.12 | 2.7-2.9 | 1.17.5\u20131.20 |\n\nNote: pandoc 2.10 is short lived and 2.11 has minor API changes comparing to that, mainly for fixing its shortcomings. Please avoid using pandoc 2.10.\n\n## Dev Install\n\nAfter cloning the repo and opening the panflute folder, run\n\n- `python setup.py install` to install the package locally\n- `python setup.py develop` to install locally with a symlink so changes are automatically updated\n\n## Contributing\n\nFeel free to submit push requests. For consistency, code should comply with [pep8](https://pypi.python.org/pypi/pep8) (as long as its reasonable), and with the style guides by [@kennethreitz](http://docs.python-guide.org/en/latest/writing/style/) and [google](http://google.github.io/styleguide/pyguide.html). Read more [here](/CONTRIBUTING.md).\n\n## License\n\nBSD3 license (following [`pandocfilters`](https://github.com/jgm/pandocfilters) by @jgm).\n\n\n## Changelog\n\n- `2.3.0` Update [Pandoc API](https://github.com/jgm/pandoc-types/blob/master/changelog) from 1.22 to 1.23 ([Pandoc 3.0](https://pandoc.org/releases.html#pandoc-3.0-2023-01-18)):\n - Add `Figure` block object\n - Remove `Null` block object (scheduled for removed)\n",
"bugtrack_url": null,
"license": "BSD3",
"summary": "Pythonic Pandoc filters",
"version": "2.3.1",
"project_urls": {
"Documentation": "http://scorreia.com/software/panflute/",
"Homepage": "https://github.com/sergiocorreia/panflute",
"Source": "https://github.com/sergiocorreia/panflute",
"Tracker": "https://github.com/sergiocorreia/panflute/issues"
},
"split_keywords": [
"pandoc",
"pandocfilters",
"markdown",
"latex"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bfdd49f5d0aa985c14218da8759ec4a93390b683c92fd9081d5b96383d48db6e",
"md5": "e677f8bbf4248f4f7a7e236eb0f6ec40",
"sha256": "e44afd875b7b17ffebbbe58282849df06d9f1b20a45a2f933cd51bdcf4e89130"
},
"downloads": -1,
"filename": "panflute-2.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e677f8bbf4248f4f7a7e236eb0f6ec40",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 36714,
"upload_time": "2024-03-20T05:47:38",
"upload_time_iso_8601": "2024-03-20T05:47:38.375888Z",
"url": "https://files.pythonhosted.org/packages/bf/dd/49f5d0aa985c14218da8759ec4a93390b683c92fd9081d5b96383d48db6e/panflute-2.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b791b659923bea127e51bc1b279c3afb3724cae116893ddba7ae498a97496693",
"md5": "3294296aef6f50bfce9ecb2aaaa5d81d",
"sha256": "5f1bd02a34ef3982ee025ec5b58fb3a6eedfc31d994b8ae39d8dc9915a2d8f1f"
},
"downloads": -1,
"filename": "panflute-2.3.1.tar.gz",
"has_sig": false,
"md5_digest": "3294296aef6f50bfce9ecb2aaaa5d81d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 44829,
"upload_time": "2024-03-20T05:47:41",
"upload_time_iso_8601": "2024-03-20T05:47:41.374970Z",
"url": "https://files.pythonhosted.org/packages/b7/91/b659923bea127e51bc1b279c3afb3724cae116893ddba7ae498a97496693/panflute-2.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-20 05:47:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "sergiocorreia",
"github_project": "panflute",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "panflute"
}