{"library":"m2r2","title":"m2r2: Markdown and reStructuredText Converter","description":"M2R2 is a Python library designed to convert Markdown files, including embedded reStructuredText (RST) markups, into a valid RST format. It is a actively maintained fork of the original `m2r` library, specifically addressing compatibility issues with Sphinx 3+ and newer Python versions. M2R2 also functions as a Sphinx extension, enabling developers to write documentation in Markdown directly within Sphinx projects. The current version is 0.3.4, with a focused release cadence primarily for maintenance and compatibility updates.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install m2r2"],"cli":null},"imports":["from m2r2 import convert","from m2r2 import parse_from_file"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from m2r2 import convert\nimport os\n\n# Programmatic conversion of a Markdown string\nmarkdown_text = \"\"\"# My Document\\n\\nThis is **Markdown** with `inline code` and also `reST :role:` content.\\n\\n.. admonition:: Note\\n   This is reStructuredText inside Markdown.\\n\"\"\"\nrst_output = convert(markdown_text)\nprint(\"--- Converted RST ---\")\nprint(rst_output)\n\n# Command-line usage (assuming 'my_document.md' exists)\n# You can also run 'm2r2 my_document.md' from your terminal\n# It will create 'my_document.rst'\n\n# For Sphinx integration, add 'm2r2' to extensions in conf.py:\n# extensions = [\n#     'sphinx.ext.autodoc',\n#     'm2r2',\n# ]\n# Then Sphinx will process .md files.","lang":"python","description":"This quickstart demonstrates how to programmatically convert a Markdown string to reStructuredText using the `convert` function. It also highlights the command-line utility and how to integrate `m2r2` as a Sphinx extension by adding 'm2r2' to your `conf.py` extensions list, allowing Sphinx to process `.md` files directly.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.3.4","pypi_latest":"0.3.4","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2,"avg_import_s":0.46,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"m2r2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.6,"mem_mb":16.1,"disk_size":"22.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"m2r2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":2,"import_time_s":0.4,"mem_mb":16.1,"disk_size":"23M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"m2r2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.82,"mem_mb":17.6,"disk_size":"25.8M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"m2r2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":2,"import_time_s":0.74,"mem_mb":17.6,"disk_size":"26M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"m2r2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.26,"mem_mb":7.7,"disk_size":"16.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"m2r2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.9,"import_time_s":0.28,"mem_mb":7.7,"disk_size":"17M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"m2r2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.23,"mem_mb":7.7,"disk_size":"16.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"m2r2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0.24,"mem_mb":7.7,"disk_size":"17M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"m2r2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.54,"mem_mb":15.8,"disk_size":"22.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"m2r2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":2.2,"import_time_s":0.45,"mem_mb":15.8,"disk_size":"23M"}]}}