-
Notifications
You must be signed in to change notification settings - Fork 67
feat(docs): migrate documentation to MkDocs with auto-generated API reference #1046
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Add MkDocs Material framework as foundation for documentation: - Add 'docs' dependency group to pyproject.toml with mkdocs-material, mkdocstrings, and supporting plugins - Create minimal mkdocs.yml configuration with Material theme - Add Makefile targets for building and serving docs locally This establishes the infrastructure for migrating from Jekyll to MkDocs. Content migration and API reference generation will follow. Signed-off-by: Major Hayden <major@redhat.com>
- Remove Jekyll frontmatter from docs/index.md - Convert absolute URLs to relative markdown links - Add full navigation structure to mkdocs.yml - Delete Jekyll configuration files (_config.yml, Gemfile, README.md) Signed-off-by: Major Hayden <major@redhat.com>
- Add mkdocstrings plugin configuration for auto-generated API docs - Create scripts/gen_api_ref.py to generate API reference from docstrings - Add gen-files, literate-nav, and section-index plugins - Create .github/workflows/docs.yaml for GitHub Pages deployment - API Reference section added to navigation The workflow builds docs on PRs for validation and deploys to GitHub Pages on pushes to main branch. Signed-off-by: Major Hayden <major@redhat.com>
- Remove duplicate 'generate-documentation' target - Rename 'doc' to 'docs-readmes' for clarity (generates README.md files) - Add 'uv run' prefix to docs-readmes for consistency - Keep 'docs-build' and 'docs-serve' for MkDocs operations Signed-off-by: Major Hayden <major@redhat.com>
WalkthroughAdds MkDocs-based documentation (configuration, build/serve targets, API reference generator), removes legacy Jekyll site files, and adds a GitHub Actions workflow to build and deploy the MkDocs site to GitHub Pages. Changes
Sequence Diagram(s)mermaid Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@CodeRabbit I'll send you a big bag of carrots in exchange for a helpful review of my draft PR. |
|
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In @.github/workflows/docs.yaml:
- Around line 13-21: The pull_request trigger's paths list is missing the
workflow file entry, so update the workflow YAML by adding the same workflow
file path currently included under the push trigger into the pull_request.paths
array; specifically edit the pull_request -> paths block to include the workflow
filename string (matching the entry under push) so PRs that modify the workflow
file will also trigger the docs workflow.
🧹 Nitpick comments (1)
scripts/gen_api_ref.py (1)
30-34: Consider adding options directive for consistency.The generated markdown only contains the basic
::: moduledirective. Consider adding default options to ensure consistent rendering across all modules, especially if some modules have different characteristics.Optional enhancement
with mkdocs_gen_files.open(full_doc_path, "w") as fd: ident = ".".join(parts) - fd.write(f"::: {ident}\n") + fd.write(f"::: {ident}\n") + fd.write(" options:\n") + fd.write(" show_submodules: true\n")This is optional since mkdocstrings inherits default options from
mkdocs.yml.
- Include docs.yaml in pull_request paths to trigger validation builds when the workflow itself is modified Signed-off-by: Major Hayden <major@redhat.com>
Summary
Changes
Infrastructure
docsdependency group topyproject.tomlwith mkdocs-material, mkdocstrings, and pluginsmkdocs.ymlconfiguration with Material theme, navigation structure, and mkdocstrings setupContent Migration
_config.yml,Gemfile,README.md)docs/index.mdwith relative links (removed Jekyll frontmatter and absolute URLs)mkdocs.ymlAPI Reference Generation
scripts/gen_api_ref.pyto auto-generate API docs from Python docstringsCI/CD
.github/workflows/docs.yamlfor GitHub Pages deploymentMakefile Cleanup
generate-documentationtargetdoctodocs-readmesfor claritydocs-buildanddocs-servefor MkDocs operationsUsage
Known Pre-existing Issues
These are not introduced by this PR but surfaced during migration:
rag_guide.mdto non-existent example filesdeployment_guide.mdThese can be addressed in follow-up PRs.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.