-
-
Notifications
You must be signed in to change notification settings - Fork 2
Closed
Labels
build-systemdocumentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestgithub-actionsmkdocs
Description
🎯 Overview
Implement MkDocs with the Material theme to generate HTML documentation from our existing docs/ folder, integrate it with GitHub Actions, and ensure proper build artifacts management.
📋 Requirements
Core Setup
- Install and configure MkDocs with mkdocs-material theme
- Configure MkDocs to build from
./docs/source directory - Set output directory to
./site/docs/(currently non-existent) - Create
mkdocs.ymlconfiguration file in project root
GitHub Actions Integration
- Modify
.github/workflows/deploy-pages.ymlto:- Add MkDocs build step before deployment
- Install Python dependencies (MkDocs + Material theme)
- Run
mkdocs buildcommand to generate static HTML - Update workflow triggers to include
docs/**path changes - Ensure built documentation is deployed to GitHub Pages
Repository Management
- Update
.gitignoreto exclude./site/docs/directory - Ensure
./site/docs/is treated as build artifact (not committed) - Maintain existing
./site/structure for other static assets
🔧 Technical Considerations
MkDocs Configuration (mkdocs.yml)
site_name: STRUCT Documentation
site_description: Automated Project Structure Generator
site_url: https://httpdss.github.io/struct/
repo_url: https://github.com/httpdss/struct
repo_name: httpdss/struct
theme:
name: material
# Additional Material theme configuration
docs_dir: docs
site_dir: site/docs
# Navigation structure based on existing docs
nav:
- Home: index.md
- Getting Started:
- Installation: installation.md
- Quick Start: quickstart.md
- Usage: usage.md
- Configuration:
- YAML Configuration: configuration.md
- Template Variables: template-variables.md
- File Handling: file-handling.md
# ... additional navigation structureGitHub Actions Workflow Updates
- Add Python setup step
- Install MkDocs and Material theme via pip
- Run
mkdocs buildto generate./site/docs/ - Ensure the existing deployment process remains intact
- Consider caching Python dependencies for faster builds
Directory Structure After Implementation
.
├── docs/ # Source documentation (existing)
├── site/
│ ├── docs/ # Generated MkDocs HTML (new, gitignored)
│ ├── css/ # Existing static assets
│ ├── js/ # Existing static assets
│ ├── index.html # Existing homepage
│ └── ... # Other existing assets
└── mkdocs.yml # MkDocs configuration (new)
🚀 Expected Outcomes
- Local Development: Developers can run
mkdocs servefor live documentation preview - Build Process:
mkdocs buildgenerates static HTML in./site/docs/ - CI/CD Integration: GitHub Actions automatically builds and deploys documentation
- SEO & UX: Material theme provides better navigation, search, and mobile experience
- Maintenance: Documentation updates trigger automatic rebuilds and deployments
🔗 Dependencies
mkdocs(latest stable)mkdocs-materialtheme- Python 3.x in GitHub Actions environment
- Existing GitHub Pages setup (already configured)
🏷️ Labels
documentation, enhancement, mkdocs, github-actions, build-system
💡 Additional Considerations
- Theme Customization: Material theme supports extensive customization for branding
- Search Integration: Built-in search functionality with Material theme
- Mobile Responsiveness: Improved mobile documentation experience
- Plugin Ecosystem: MkDocs supports various plugins for enhanced functionality
- Version Control: Only source files in
docs/are version controlled, not generated HTML - Performance: Static HTML generation provides fast page loads
Acceptance Criteria: Documentation can be built locally with mkdocs build, GitHub Actions successfully generates and deploys the documentation, and ./site/docs/ is properly excluded from version control.
Metadata
Metadata
Assignees
Labels
build-systemdocumentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestgithub-actionsmkdocs