{"library":"markdown-include","title":"Markdown Include","description":"Markdown-Include is a Python-Markdown extension that enables the inclusion of content from other Markdown files within a main document. It facilitates modular documentation by replacing a special syntax, `{!filename!}`, with the contents of the specified file. The library is currently at version 0.8.1 and is actively maintained, with its last release in February 2023.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install markdown-include markdown"],"cli":null},"imports":["from markdown_include.include import MarkdownInclude","import markdown"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import markdown\nfrom markdown_include.include import MarkdownInclude\nimport os\n\n# Create a dummy base directory and included file\nif not os.path.exists('docs'):\n    os.makedirs('docs')\nwith open('docs/main.md', 'w') as f:\n    f.write('# Main Document\\n\\nThis is the main content.\\n\\n{!partial.md!}\\n\\nEnd of document.')\nwith open('docs/partial.md', 'w') as f:\n    f.write('## Included Section\\n\\nThis content comes from `partial.md`.')\n\n# Configure the MarkdownInclude extension\n# base_path specifies the directory where included files are sought\nconfigs = {\n    'base_path': 'docs'\n}\n\n# Initialize Markdown with the extension\nmd_instance = markdown.Markdown(extensions=[MarkdownInclude(configs=configs)])\n\n# Read the main Markdown content\nwith open('docs/main.md', 'r') as f:\n    markdown_text = f.read()\n\n# Convert Markdown to HTML\nhtml = md_instance.convert(markdown_text)\n\nprint(html)\n\n# Expected output (simplified):\n# <h1>Main Document</h1>\n# <p>This is the main content.</p>\n# <h2>Included Section</h2>\n# <p>This content comes from <code>partial.md</code>.</p>\n# <p>End of document.</p>","lang":"python","description":"This example demonstrates how to set up `markdown-include` to process a main Markdown file that includes another partial Markdown file. It creates temporary files, initializes the Markdown parser with the `MarkdownInclude` extension, and converts the content to HTML, showing how the `base_path` configuration is used to resolve included file paths.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.8.1","pypi_latest":"0.8.1","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.7,"avg_import_s":0.14,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"markdown-include","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.14,"mem_mb":5.7,"disk_size":"18.6M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"markdown-include","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.12,"mem_mb":5.7,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"markdown-include","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.19,"mem_mb":5.9,"disk_size":"20.6M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"markdown-include","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.16,"mem_mb":5.9,"disk_size":"21M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"markdown-include","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.15,"mem_mb":5.8,"disk_size":"12.4M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"markdown-include","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.15,"mem_mb":5.8,"disk_size":"13M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"markdown-include","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.15,"mem_mb":6.1,"disk_size":"12.1M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"markdown-include","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.14,"mem_mb":5.9,"disk_size":"13M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"markdown-include","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.1,"mem_mb":5.6,"disk_size":"18.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"markdown-include","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0.09,"mem_mb":5.6,"disk_size":"19M"}]}}