{"library":"sphinx-notfound-page","title":"Sphinx Not Found Page","type":"library","description":"Sphinx-notfound-page is a Sphinx extension that automates the creation of custom 404 Not Found pages for Sphinx documentation. It correctly handles absolute URLs for assets such as JavaScript, CSS, and images, which is a common issue with manually created 404 pages. Developed and maintained by Read the Docs, it aims for compatibility across various hosting environments. The current version is 1.1.0, with releases typically addressing bug fixes and Sphinx compatibility updates.","language":"python","status":"active","last_verified":"Fri May 22","install":{"commands":["pip install sphinx-notfound-page"],"cli":null},"imports":["extensions = ['notfound.extension']"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":null,"github":"https://github.com/readthedocs/sphinx-notfound-page","docs":"https://sphinx-notfound-page.readthedocs.io/","changelog":null,"pypi":"https://pypi.org/project/sphinx-notfound-page/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"# conf.py\n\n# Existing extensions list\nextensions = [\n    # ... other extensions\n    'notfound.extension',\n]\n\n# Optional: Customize 404 page content directly in conf.py\nnotfound_context = {\n    'title': 'Page Not Found',\n    'body': '<h1>Oops! This page does not exist.</h1>\\n\\n<p>Please check the URL or navigate from the <a href=\"/\">homepage</a>.</p>',\n}\n\n# Optional: Use a custom 404.rst file for content\n# notfound_template = '404.rst'\n\n# If using a custom 404.rst, ensure it has the :orphan: metadata\n# Example 404.rst content (place next to conf.py):\n# :orphan:\n#\n# Error 404: Page Not Found\n# =========================\n#\n# The page you are looking for does not exist. Please check the URL.","lang":"python","description":"To quickly enable `sphinx-notfound-page`, install it via pip and then add `'notfound.extension'` to the `extensions` list in your Sphinx `conf.py` file. For custom content, you can define `notfound_context` directly in `conf.py` or create a `404.rst` file and set `notfound_template = '404.rst'`. Remember to add `:orphan:` to the top of any custom `404.rst` file to prevent Sphinx warnings.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-22","installed_version":"1.1.0","pypi_latest":"1.1.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":5.2,"avg_import_s":0,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"sphinx-notfound-page","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"92.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"sphinx-notfound-page","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5,"import_time_s":0,"mem_mb":0,"disk_size":"93M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"sphinx-notfound-page","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"101.4M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"sphinx-notfound-page","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.2,"import_time_s":0,"mem_mb":0,"disk_size":"102M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"sphinx-notfound-page","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"92.3M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"sphinx-notfound-page","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.9,"import_time_s":0,"mem_mb":0,"disk_size":"93M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"sphinx-notfound-page","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"92.2M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"sphinx-notfound-page","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.9,"import_time_s":0,"mem_mb":0,"disk_size":"93M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"sphinx-notfound-page","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"91.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"sphinx-notfound-page","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6,"import_time_s":0,"mem_mb":0,"disk_size":"92M"}]}}