DOC Upgrade to jupyterbook v2 and add proper landing page#1458
Open
romanlutz wants to merge 22 commits intoAzure:mainfrom
Open
DOC Upgrade to jupyterbook v2 and add proper landing page#1458romanlutz wants to merge 22 commits intoAzure:mainfrom
romanlutz wants to merge 22 commits intoAzure:mainfrom
Conversation
- Upgrade jupyter-book from 1.0.4 (Sphinx-based) to 2.1.2 (MyST engine) - Replace Sphinx autodoc/autosummary/napoleon with griffe-based API doc generation - Add scripts/pydoc2json.py and scripts/gen_api_md.py for API doc generation - Add doc/api/ with generated API reference pages for all pyrit submodules - Add doc/myst.yml unified config replacing _config.yml and _toc.yml - Custom landing page with hero banner, key capabilities, installation cards - Top-level navigation bar - Update Makefile, GitHub Actions, ReadTheDocs, pre-commit hooks - Remove old Sphinx-dependent build scripts and config files - Add griffe to dev dependencies, remove sphinxcontrib-mermaid Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…down) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
These pre-commit hooks are still needed for .ipynb files (strip kernelspec metadata and sanitize user-specific paths). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ok.py) build_scripts/validate_docs.py checks myst.yml TOC references exist and detects orphaned doc files. Runs in <1s vs full build taking 18s+. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…s to hyphens JB2 URL slugging: 0_dataset → dataset, 1a_install_uv → a-install-uv, 0_prompt_targets → prompt-targets. Updated all site.nav URLs to match. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…xists) API docs are now auto-generated from source by griffe, which reads __all__ directly. The generation script itself ensures completeness. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
jbolor21
reviewed
Mar 12, 2026
jbolor21
reviewed
Mar 12, 2026
jbolor21
reviewed
Mar 12, 2026
- Replace backslash path separators with forward slashes in doc/myst.yml for cross-platform compatibility (Windows + WSL/Linux) - Replace snake emojis with sun emojis on landing page cards (conda -> uv) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- pydoc2json.py: pass include_submodules=True recursively so nested submodules (e.g. pyrit.executor.attack) are included in pyrit_all.json - gen_api_md.py: split aggregate JSON into per-module files before generating markdown, so all API pages referenced by myst.yml exist - generate_rss.py: update path from _build/html to _build/site for JB2 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
JB2 no longer produces standalone HTML blog pages. Rewrite generate_rss.py to parse blog source markdown files directly from doc/blog/ and output RSS to doc/_build/site/blog/rss.xml. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related to #362
Summary
This PR upgrades our documentation framework from Jupyter Book 1.0.4 (Sphinx-based, maintenance-only) to Jupyter Book 2.1.2 (MyST engine, actively developed) and introduces a custom landing page with a
hero banner and key capabilities overview.
Why
1.x is in maintenance mode — no new features, only critical fixes
2.x offers faster builds (~18s vs ~60-100s), modern web features, native mermaid support, and a unified myst.yml config
What Changed
Documentation Framework
API Reference
Landing Page
Build Pipeline
Dependencies
How to Test
Build the docs
make docs-build
Or serve locally
cd doc && jupyter-book start --port 8888
Screenshots