docs: migrate to MkDocs Material, apply Redis branding, restore Diataxis README#28
Conversation
- Replace Sphinx + sphinx-book-theme with MkDocs + Material theme
- Use mkdocstrings to auto-generate API reference from Google-style docstrings
- Auto-generate llms.txt and llms-full.txt via mkdocs-llmstxt plugin
- Convert MyST admonitions and {doc} cross-refs to Material syntax and relative links
- Convert sphinx-design grid cards to Material grid cards on landing pages
- Move Redis AI Hub header CSS/JS to docs/stylesheets and docs/javascripts
- Update pyproject.toml docs group, Makefile targets, and .readthedocs.yaml
- Remove docs/conf.py, docs/Makefile, docs/llms.txt (now auto-generated), docs/SPEC.md
- Add site/ to .gitignore
Branding: - Switch Material primary/accent to the official Redis red (#FF4438) via `docs/stylesheets/redis-brand.css` overriding `--md-primary-fg-color` and `--md-accent-fg-color`. - Adopt the Redis font pair: Space Grotesk (body) and Space Mono (code), matching `redis-docs/tailwind.config.js`. - Replace the default Material book icon with the cursive `redis` script wordmark (white) in the header (`docs/assets/redis-logo-script.svg`). - Use `Redis_Favicon_32x32_Red.png` from redis-vl-python as the browser favicon (`docs/assets/favicon.png`). - Bold every top-level entry in the left sidebar so single-page items (Home) match the section-header weight given by `navigation.sections`. Independent site: - Remove the Redis AI Hub header injection (`docs/javascripts/redis-ai-hub-header.js` and the matching CSS). This site stands on its own; it is no longer embedded under the hub chrome. - Drop the now-empty `docs/javascripts/` directory. - Slim the stylesheet from 217 lines to 39 and rename it to `redis-brand.css` to reflect what it now contains. README: - Restore the comprehensive content (TEXT search modes, IS NULL / ismissing, exists(), DATE/DATETIME handling, date functions, full GEO feature catalog, design rationale, architecture diagram). - Reorganize along Diataxis tiers: Tutorial then Reference then How-to then Explanation then practical sections. - Note that docs.redisvl.com/projects/sql-redis/ is not yet live and point readers to `make docs-serve` for local previews. - Keep the recent improvements (`pip install`, `create_executor()` factory, `make install/test/lint`, AI Hub status note). For-AI-agents audit: - Replace stale Sphinx references (`autoclass`, `sphinx-build -W`) with their MkDocs equivalents (`mkdocstrings`, `mkdocs build --strict`) in `AGENTS.md`, `docs/for-ais-only/index.md`, and `docs/for-ais-only/BUILD_AND_TEST.md`. `mkdocs build --strict` passes.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9cd5290294
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| mkdocs: | ||
| configuration: mkdocs.yml |
There was a problem hiding this comment.
Remove unsupported RTD formats for MkDocs builds
Switching this project from sphinx to mkdocs while leaving formats: [pdf, epub] enabled makes the Read the Docs config inconsistent with RTD’s MkDocs support: RTD’s config reference explicitly warns that additional formats (pdf, epub, htmlzip) are not supported for MkDocs projects. This can cause post-merge RTD builds to fail or remain in an error state even if local mkdocs build passes, blocking docs publication.
Useful? React with 👍 / 👎.
Summary
Migrates the documentation from Sphinx to MkDocs Material, applies the
official Redis brand (palette, typography, logo, favicon), restores the
comprehensive README content reorganized along the Diataxis tiers, and
wires up automated publishing to GitHub Pages.
After merge, the docs publish automatically to
https://redis-developer.github.io/sql-redis/ on every push to
main.What changed
Build pipeline
mkdocs.ymlis the new source of truth (replacesdocs/conf.py,docs/Makefile, and the_static//_templates/Sphinx scaffolding).pyproject.tomldefines adocsdependency group onmkdocs-material,mkdocstrings[python],mkdocs-llmstxt,mkdocs-section-index,mkdocs-autorefs, andmkdocs-git-revision-date-localized-plugin.Makefileexposesmake docs-buildandmake docs-serve..readthedocs.yamlswitched to themkdocs:block;uvinstalls thedocsgroup on RTD (kept as a backup host; primary is GitHub Pages).Hosting (GitHub Pages)
.github/workflows/docs.ymlbuilds the site in--strictmode and deploys via
actions/deploy-pages@v4. Nogh-pagesbranch.build_type=workflow. HTTPS enforced.mkdocs.ymlsite_urlset tohttps://redis-developer.github.io/sql-redis/so canonical links and
llms.txtpoint at the live host.concurrency: pageswithcancel-in-progress: falseso concurrentpushes do not interrupt an in-flight deploy.
fetch-depth: 0somkdocs-git-revision-date-localized-plugincanwalk full history when computing per-page modification dates.
Content (Diataxis)
docs/concepts/(Explanation): why-SQL, why-sqlglot, schema-awaretranslation, search-vs-aggregate, async invariants, parameter and
vector substitution, result shape, testing philosophy, architecture.
docs/user_guide/(Tutorial + How-to): getting started plustask-oriented recipes for vector search, GEO, dates, async, parameters,
text search.
docs/api/(Reference): one page per public symbol generated fromGoogle-style docstrings via
mkdocstrings.docs/examples/: end-to-end notebooks-as-prose (analytics onembeddings, CLI REPL).
docs/for-ais-only/: internal repo map, build and test guide,intentional failure modes.
llms.txtandllms-full.txtare emitted at build time bymkdocs-llmstxt(artifacts undersite/, not committed).Branding
#FF4438viadocs/stylesheets/redis-brand.css(overrides--md-primary-fg-colorand
--md-accent-fg-color).redis-docs/tailwind.config.js.redisscript wordmark(
docs/assets/redis-logo-script.svg, white).redis-vl-python docs (
docs/assets/favicon.png).section-header weight produced by
navigation.sections.Independent site
(
docs/javascripts/redis-ai-hub-header.jsplus the.rah-*CSS).The site stands alone; it is no longer wrapped in the hub chrome.
README
search modes, IS NULL /
ismissing,exists(), DATE/DATETIMEhandling, date functions, full GEO catalog, design rationale,
architecture diagram).
Explanation, then practical sections).
pip install,create_executor()factory,
make install/test/lint, AI Hub status note).Files of note
mkdocs.yml,docs/stylesheets/redis-brand.css,docs/assets/{favicon.png,redis-logo-script.svg}: site config andbrand assets.
.github/workflows/docs.yml: build + deploy on push tomain.README.md: full Diataxis-aligned restoration; GitHub Pages URL.AGENTS.md,docs/for-ais-only/{index.md,BUILD_AND_TEST.md}:Sphinx-specific text replaced with MkDocs equivalents; URL updates.
Verification
Local preview:
The first publish runs as soon as this PR merges to
main; the deployURL will appear in the Actions run summary and at
https://redis-developer.github.io/sql-redis/.
Follow-ups (out of scope, optional)
sql-redis.redis.io) is a one-lineCNAMEchange once DNS is set up. Not required.docs.redisvl.com/projects/sql-redis/subproject route on RTDis no longer needed;
.readthedocs.yamlcan be deleted in a latercleanup PR if we standardize on Pages.