{"library":"plantuml-markdown","title":"PlantUML Markdown Extension","description":"plantuml-markdown is a Python-Markdown extension that enables embedding PlantUML diagrams directly into Markdown documents. It supports local PlantUML binary rendering, remote PlantUML servers, and Kroki servers. The current version is 3.11.1, with a regular release cadence addressing bug fixes and new features.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install plantuml-markdown"],"cli":null},"imports":["import markdown\n\nmd = markdown.Markdown(extensions=['plantuml_markdown'], extension_configs={'plantuml_markdown': {'servers': ['http://www.plantuml.com/plantuml']}})"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import markdown\nimport os\n\n# For local rendering, ensure 'plantuml' command is in PATH and Java/Graphviz are installed.\n# For remote rendering, use a server.\n# This example uses a remote server for simplicity.\n# In a real application, consider using os.environ for sensitive URLs or more robust configuration.\nplantuml_server = os.environ.get('PLANTUML_SERVER_URL', 'http://www.plantuml.com/plantuml')\n\nmarkdown_text = \"\"\"\n# My Document with a PlantUML Diagram\n\nHere's a simple sequence diagram:\n\n```plantuml format=\"svg\"\nAlice -> Bob: Authentication Request\nBob --> Alice: Authentication Response\nAlice -> Bob: Another action\n```\n\nAnd another one, using the alternative ::uml:: syntax:\n\n::uml:: format=\"png\"\nGoofy -> MickeyMouse: calls\nGoofy <-- MickeyMouse: responds\n::end-uml::\n\"\"\"\n\nmd = markdown.Markdown(extensions=['plantuml_markdown'], extension_configs={\n    'plantuml_markdown': {\n        'servers': [plantuml_server], # Using the new 'servers' config, introduced in 3.11.0\n        'cachedir': 'plantuml_cache' # Optional: enable caching\n    }\n})\n\nhtml_output = md.convert(markdown_text)\nprint(html_output)\n\n# Example for MkDocs (mkdocs.yml)\n# plugins:\n#   - plantuml_markdown:\n#       servers:\n#         - http://www.plantuml.com/plantuml\n#       cachedir: plantuml_cache","lang":"python","description":"This quickstart demonstrates how to convert Markdown text containing PlantUML diagrams into HTML using `plantuml-markdown`. It shows both the GitHub-style triple-backtick syntax and the `::uml::` block syntax. The example configures a remote PlantUML server via the `servers` option, which is the recommended approach for versions 3.11.0 and later. For MkDocs, the plugin is enabled and configured in `mkdocs.yml`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"3.11.2","pypi_latest":"3.11.2","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.5,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"plantuml-markdown","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"17.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"plantuml-markdown","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.4,"import_time_s":null,"mem_mb":null,"disk_size":"18M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"plantuml-markdown","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"19.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"plantuml-markdown","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.6,"import_time_s":null,"mem_mb":null,"disk_size":"20M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"plantuml-markdown","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"11.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"plantuml-markdown","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.4,"import_time_s":null,"mem_mb":null,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"plantuml-markdown","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"11.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"plantuml-markdown","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.4,"import_time_s":null,"mem_mb":null,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"plantuml-markdown","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"17.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"plantuml-markdown","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.7,"import_time_s":null,"mem_mb":null,"disk_size":"18M"}]}}