{"id":13511204,"url":"https://github.com/sergiocorreia/panflute","last_synced_at":"2025-05-14T08:06:15.026Z","repository":{"id":8188817,"uuid":"55024750","full_name":"sergiocorreia/panflute","owner":"sergiocorreia","description":"An Pythonic alternative to John MacFarlane's pandocfilters, with extra helper functions","archived":false,"fork":false,"pushed_at":"2024-12-10T04:55:56.000Z","size":1769,"stargazers_count":520,"open_issues_count":30,"forks_count":61,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-12T04:42:53.394Z","etag":null,"topics":["filter","markdown","pandoc","python"],"latest_commit_sha":null,"homepage":"http://scorreia.com/software/panflute/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sergiocorreia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-03-30T02:07:47.000Z","updated_at":"2025-04-11T09:31:35.000Z","dependencies_parsed_at":"2024-04-30T21:00:54.134Z","dependency_job_id":"afec8461-4098-478b-b1f1-e8faf99f412b","html_url":"https://github.com/sergiocorreia/panflute","commit_stats":{"total_commits":472,"total_committers":30,"mean_commits":"15.733333333333333","dds":0.5084745762711864,"last_synced_commit":"15deed517d6b50a66a542793c1d44c479fe65212"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergiocorreia%2Fpanflute","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergiocorreia%2Fpanflute/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergiocorreia%2Fpanflute/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergiocorreia%2Fpanflute/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sergiocorreia","download_url":"https://codeload.github.com/sergiocorreia/panflute/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254101615,"owners_count":22014909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["filter","markdown","pandoc","python"],"created_at":"2024-08-01T03:00:37.980Z","updated_at":"2025-05-14T08:06:10.011Z","avatar_url":"https://github.com/sergiocorreia.png","language":"Python","funding_links":[],"categories":["Pandoc Filter Development","Python"],"sub_categories":[],"readme":"# 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\u003chttp://scorreia.com/software/panflute/\u003e.\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\u0026type=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\u003e=2.0.5'` to install both\n    `conda install -c conda-forge pandoc 'panflute\u003e=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 `pyproject.toml` 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\u003c!-- For pandoc API verion, check https://hackage.haskell.org/package/pandoc for pandoc-types, which is the same thing. --\u003e\n\n| panflute version | supported pandoc versions | supported pandoc API versions |\n| ---------------- | ------------------------- | ----------------------------- |\n| 2.3.1            | 2.11.0.4–3.1.x            | 1.22–1.23                     |\n| 2.2.4            | 2.11.0.4–2.17.x           | 1.22–1.22.1                   |\n| 2.1.x            | 2.11.0.4—2.14.x           | 1.22                          |\n| 2.0              | 2.11.0.4—2.11.x           | 1.22                          |\n| not supported    | 2.10                      | 1.21                          |\n| 1.12             | 2.7-2.9                   | 1.17.5–1.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 -m pip install .` to install the package locally\n- `python -m pip install -e .` 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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergiocorreia%2Fpanflute","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsergiocorreia%2Fpanflute","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergiocorreia%2Fpanflute/lists"}