{"library":"pandoc","title":"Pandoc Documents for Python","description":"Pandoc is a powerful, open-source command-line tool for converting documents between various formats (e.g., Markdown, HTML, LaTeX, PDF, Word). The `pandoc` Python library (version 2.4, released August 7, 2024) provides Python bindings to interact with Pandoc's document model, allowing for in-Python analysis, creation, and transformation of documents. It leverages the underlying Haskell-based Pandoc executable, which must be installed separately. The library generally follows an active release cadence, with updates to support recent Pandoc executable versions.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install --upgrade pandoc"],"cli":{"name":"pandoc","version":"sh: 1: pandoc: not found"}},"imports":["import pandoc","from pandoc.types import Str, Space, Para, Meta"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import pandoc\nfrom pandoc.types import Str, Space, Para, Meta\n\n# Read a simple markdown string into a Pandoc document object\ntext = \"Hello world!\"\ndoc = pandoc.read(text)\nprint(f\"Initial document: {doc}\")\n\n# Access and modify an element in the document's Abstract Syntax Tree (AST)\n# For \"Hello world!\", doc is Pandoc(Meta({}), [Para([Str('Hello'), Space(), Str('world!')])])\n# The paragraph is at doc[1][0]\n# The 'world!' string is at doc[1][0][2][0]\nparagraph = doc[1][0]\n\n# Modify the 'world!' string to 'Python!'\n# The Str object is at paragraph[2] (0: Str('Hello'), 1: Space(), 2: Str('world!'))\n# The actual string value is the first element of the Str tuple: Str('world!')[0]\nparagraph[2][0] = 'Python!'\n\n# Write the modified document back to a markdown string\nmodified_text = pandoc.write(doc)\nprint(f\"Modified document text: {modified_text.strip()}\")\n\n# Example of converting to a different format (requires actual pandoc executable)\n# doc_to_convert = pandoc.read(\"# My Title\\n\\nHello from Pandoc!\", format='markdown')\n# html_output = pandoc.write(doc_to_convert, format='html')\n# print(f\"HTML output:\\n{html_output}\")","lang":"python","description":"This quickstart demonstrates how to read a Markdown string into a Pandoc document object, access and modify its Abstract Syntax Tree (AST) using `pandoc.types`, and then write the modified document back to a Markdown string. This showcases the core functionality for programmatic document manipulation.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"2.4","pypi_latest":"2.4","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.6,"avg_import_s":0.22,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"--upgrade","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.18,"mem_mb":8,"disk_size":"20.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"--upgrade","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0.13,"mem_mb":8,"disk_size":"21M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"--upgrade","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":0.31,"mem_mb":8.8,"disk_size":"23.6M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"--upgrade","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":2.2,"import_time_s":0.26,"mem_mb":8.8,"disk_size":"24M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"--upgrade","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.24,"mem_mb":8.6,"disk_size":"13.5M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"--upgrade","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3.2,"import_time_s":0.26,"mem_mb":8.6,"disk_size":"14M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"--upgrade","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.23,"mem_mb":8.9,"disk_size":"13.2M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"--upgrade","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.9,"import_time_s":0.24,"mem_mb":8.8,"disk_size":"14M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"--upgrade","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.17,"mem_mb":7.6,"disk_size":"20.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"--upgrade","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.5,"import_time_s":0.15,"mem_mb":7.6,"disk_size":"21M"}]}}