Configure MkDocs infrastructure with Material theme and i18n support#259
Merged
shorodilov merged 4 commits intomainfrom Feb 2, 2026
Merged
Configure MkDocs infrastructure with Material theme and i18n support#259shorodilov merged 4 commits intomainfrom
shorodilov merged 4 commits intomainfrom
Conversation
Part of #243 (ADR-002 SSG Migration) - Sub-package B Set up MkDocs infrastructure with Material theme, multilingual support, and automated deployment. Site builds successfully while preserving src/ as fallback. Configuration details: - MkDocs with Material theme (dark mode, search, navigation) - mkdocs-static-i18n for en/uk localization - Dependencies managed via uv (pyproject.toml + uv.lock) - Ukrainian content structure created (stub for future translation) - GitHub Actions workflow for automated deployment - Local development: uv run mkdocs serve Build verified locally: - mkdocs build --strict: success - mkdocs serve: working - Navigation, search, theme: functional Changes: - Add mkdocs.yml configuration - Add MkDocs dependencies via uv (mkdocs, mkdocs-material, mkdocs-static-i18n, pymdown-extensions) - Create content/en/ structure with stub index (WP-243A prerequisite) - Create content/uk/ structure with stub for future translation - Add .github/workflows/deploy-docs.yml - Update README.rst with MkDocs build instructions - Update .gitignore to exclude site/ directory Original Sphinx infrastructure preserved for rollback. Refs: #243, ADR-002 Depends-on: WP-243A Relates-to: WP-243C Co-authored-by: shorodilov <22391544+shorodilov@users.noreply.github.com>
Co-authored-by: shorodilov <22391544+shorodilov@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Configure MkDocs with Material theme and deployment
Configure MkDocs infrastructure with Material theme and i18n support
Jan 28, 2026
24 tasks
There was a problem hiding this comment.
Pull request overview
Configures MkDocs with the Material theme and i18n support, wires it into the existing Python project via uv, and sets up GitHub Pages deployment for the new documentation site.
Changes:
- Adds MkDocs/MkDocs-Material/mkdocs-static-i18n/pymdown-extensions as project dependencies and locks their concrete versions in
uv.lock. - Introduces
mkdocs.ymlplus stub English and Ukrainian content, including a translation status document for the Ukrainian locale. - Adds a GitHub Actions workflow to build and deploy the MkDocs site to GitHub Pages, updates
.gitignorefor the build output, and documents MkDocs usage inREADME.rst.
Reviewed changes
Copilot reviewed 7 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
uv.lock |
Locks in the new MkDocs-related dependency graph (mkdocs, mkdocs-material, mkdocs-static-i18n, pymdown-extensions and their transitive deps) for reproducible builds. |
pyproject.toml |
Declares MkDocs and related plugins as first-class project dependencies to be managed via uv. |
mkdocs.yml |
Defines the MkDocs configuration: Material theme, English/Ukrainian i18n via mkdocs-static-i18n, search, palettes, and Markdown extension stack. |
content/en/index.md |
Creates an English landing page stub describing the course and noting that full content will arrive after the Sphinx→Markdown migration. |
content/uk/index.md |
Adds a Ukrainian landing stub that indicates translation is in progress and links back to the English version. |
content/uk/.translation-status.md |
Documents the status, contribution process, and guidelines for Ukrainian translations in the content/uk/ subtree. |
README.rst |
Adds a new section explaining how to build and serve the MkDocs documentation with uv, and documents the new content//mkdocs.yml-based structure. |
.gitignore |
Ignores the MkDocs build output directory site/ to keep generated artifacts out of version control. |
.github/workflows/deploy-docs.yml |
Adds a Pages-oriented workflow to build the MkDocs site with uv on CI and deploy it to GitHub Pages on pushes to main. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
shorodilov
approved these changes
Feb 2, 2026
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.
Implements WP-243B: establishes MkDocs build infrastructure as part of Sphinx→MkDocs migration (ADR-002). Sphinx sources in
src/preserved for rollback.Configuration
content/en/,content/uk/)Content Structure
Created stub directories for migration pipeline:
content/en/index.md- placeholder for WP-243A content conversioncontent/uk/index.md- stub for future Ukrainian translationcontent/uk/.translation-status.mdAutomation
GitHub Actions workflow (
.github/workflows/deploy-docs.yml):Deploys to GitHub Pages on main branch push.
Documentation
Updated
README.rstwith MkDocs build commands:Screenshots
English (light mode)

Ukrainian (light mode)

Dark mode

Dependencies: Requires WP-243A (content conversion) for full functionality
Related: ADR-002, WP-243C (cleanup)
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
astral.sh/usr/bin/curl curl -LsSf REDACTED(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
This section details on the original issue you should resolve
<issue_title>[WP] MkDocs Setup and Configuration</issue_title>
<issue_description>[//]: # (WP-243B-mkdocs-setup.md)
Work Package 243B: MkDocs Setup and Configuration
Assignment Date: 2026-01-28
Assigned To:
project-administrator(Claude Code)Assigned By:
project-manager(Claude Chat)Priority: High
Estimated Complexity: Medium
Parent Issue: #243 (Static Site Generator Migration to MkDocs - ADR-002)
Objective
Configure MkDocs with Material theme, set up multilingual support for English/Ukrainian, add project dependencies using uv, and establish automated deployment workflow.
Backstory
With content converted to Markdown (WP-243A), this sub-package establishes the MkDocs infrastructure. This includes configuration, theme setup, localization support, dependency management via uv, and GitHub Actions deployment. The goal is to have a fully functional MkDocs site that can build and deploy while
src/remains as fallback.Branch Instructions
Work on feature branch:
All work happens on
feature/wp-mkdocs-migrationbranch. Do NOT merge to main until parent #243 is complete.Definition of Done
mkdocs.ymlconfiguration file created at repository rootpyproject.tomlusing uvmkdocs-static-i18nplugin configured for English/Ukrainiancontent/uk/) created (full or stub as appropriate)uv run mkdocs builduv run mkdocs serveContext
Reference Documents:
docs/ADR-002-ssg-replacement.md)uvfor dependency management (not pip)Key Context:
content/en/as.mdfilessrc/directory still exists as fallbackuvfor all Python dependency managementWhat This Covers:
What This Doesn't Cover:
src/or Sphinx (that's WP-243C)Deliverables
1. MkDocs Configuration
Create
mkdocs.ymlat repository root: