- Add complete dark mode system with theme context and toggle - Implement dark mode toggle component in navigation menu - Add client-side routing with SSR-safe signal handling - Fix language selector styling for better dark mode compatibility - Add documentation system with mdBook integration - Improve navigation menu with proper external/internal link handling - Add comprehensive project documentation and configuration - Enhance theme system with localStorage persistence - Fix arena panic issues during server-side rendering - Add proper TypeScript configuration and build optimizations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
14 KiB
Rustelo Documentation System
A comprehensive, modern documentation system built with mdBook, featuring automated content generation, multiple deployment options, and seamless integration with your development workflow.
🎯 Overview
The Rustelo documentation system provides:
- 📚 Interactive Documentation: Built with mdBook for beautiful, searchable docs
- 🔄 Automated Content Sync: Automatically incorporates existing docs and info
- 🚀 Multiple Deployment Options: GitHub Pages, Netlify, Vercel, Docker, AWS S3
- 🛠️ Developer-Friendly: Integrated with your development workflow
- 📱 Mobile-First: Responsive design that works everywhere
- 🔍 Full-Text Search: Find anything across all documentation
- 🎨 Customizable: Brand it, style it, make it yours
🚀 Quick Start
1. Setup Documentation System
# Interactive setup (recommended)
./scripts/setup-docs.sh
# Full automated setup
./scripts/setup-docs.sh --full
# Minimal setup
./scripts/setup-docs.sh --minimal
2. Start Development Server
# Start documentation development server
./scripts/docs-dev.sh
# Or using just
just docs-dev
3. Build and Deploy
# Build documentation
./scripts/build-docs.sh
# Deploy to GitHub Pages
./scripts/deploy-docs.sh github-pages
# Or using just commands
just docs-build
just docs-deploy-github
📁 System Architecture
Directory Structure
template/
├── book/ # mdBook source files
│ ├── getting-started/ # Getting started guides
│ ├── features/ # Feature documentation
│ ├── database/ # Database guides
│ ├── development/ # Development workflow
│ ├── deployment/ # Deployment guides
│ ├── api/ # API reference
│ ├── security/ # Security documentation
│ ├── troubleshooting/ # Common issues
│ ├── theme/ # Custom styling
│ ├── SUMMARY.md # Navigation structure
│ └── introduction.md # Main introduction
├── book-output/ # Built documentation
├── docs/ # Technical documentation
├── info/ # Implementation notes
├── scripts/ # Documentation scripts
│ ├── setup-docs.sh # Setup documentation
│ ├── build-docs.sh # Build documentation
│ ├── deploy-docs.sh # Deploy documentation
│ └── docs-dev.sh # Development server
├── book.toml # mdBook configuration
└── DOCUMENTATION.md # Documentation index
Content Sources
The system automatically syncs content from:
docs/- Technical documentationinfo/- Implementation detailsREADME.md- Project overviewFEATURES.md- Feature documentation- Code comments - API documentation
🔧 Available Scripts
Core Scripts
| Script | Description | Usage |
|---|---|---|
setup-docs.sh |
Setup documentation system | ./scripts/setup-docs.sh --full |
docs-dev.sh |
Start development server | ./scripts/docs-dev.sh |
build-docs.sh |
Build documentation | ./scripts/build-docs.sh |
deploy-docs.sh |
Deploy documentation | ./scripts/deploy-docs.sh github-pages |
generate-content.sh |
Generate dynamic content | ./scripts/generate-content.sh |
Script Options
Setup Script (setup-docs.sh)
./scripts/setup-docs.sh [OPTIONS]
Options:
--full Complete setup with all features
--minimal Minimal setup (just mdBook)
--sync Sync existing documentation
--interactive Interactive setup (default)
--ci Setup CI/CD integration
--no-install Skip package installation
Build Script (build-docs.sh)
./scripts/build-docs.sh [OPTIONS]
Options:
--sync Sync existing content
--serve Start development server
--watch Watch for changes
Deploy Script (deploy-docs.sh)
./scripts/deploy-docs.sh [PLATFORM] [OPTIONS]
Platforms:
github-pages Deploy to GitHub Pages
netlify Deploy to Netlify
vercel Deploy to Vercel
aws-s3 Deploy to AWS S3
docker Build Docker image
local Serve locally
Options:
--dry-run Show what would be deployed
--force Force deployment
--branch NAME Deploy from specific branch
🔄 Just Commands
Integrated with the project's justfile for easy access:
# Documentation commands
just docs-setup # Setup documentation system
just docs-dev # Start development server
just docs-build # Build documentation
just docs-build-sync # Build with content sync
just docs-watch # Watch for changes
just docs-deploy-github # Deploy to GitHub Pages
just docs-deploy-netlify # Deploy to Netlify
just docs-deploy-vercel # Deploy to Vercel
just docs-docker # Build Docker image
just docs-generate # Generate dynamic content
just docs-check-links # Check for broken links
just docs-clean # Clean build files
just docs-workflow # Complete workflow
just help-docs # Show documentation help
🌐 Deployment Options
GitHub Pages
Automatic deployment via GitHub Actions:
# Setup CI/CD for GitHub Pages
./scripts/setup-docs.sh --ci
# Manual deployment
./scripts/deploy-docs.sh github-pages
Features:
- Automatic builds on push
- Custom domain support
- SSL/TLS included
- CDN distribution
Netlify
Deploy to Netlify with optimizations:
# Deploy to Netlify
./scripts/deploy-docs.sh netlify
Features:
- Automatic builds from Git
- Preview deployments
- Custom redirects
- Performance optimizations
Vercel
Deploy to Vercel with edge optimization:
# Deploy to Vercel
./scripts/deploy-docs.sh vercel
Features:
- Edge network deployment
- Automatic HTTPS
- Performance monitoring
- Preview deployments
Docker
Containerized documentation:
# Build Docker image
./scripts/deploy-docs.sh docker
# Run container
docker run -p 8080:80 rustelo-docs:latest
Features:
- Nginx-based serving
- Health checks
- Security headers
- Gzip compression
AWS S3
Static site hosting on AWS:
# Deploy to S3
export AWS_S3_BUCKET=your-bucket-name
./scripts/deploy-docs.sh aws-s3
Features:
- CloudFront integration
- Cost-effective hosting
- Global CDN
- Automatic invalidation
🎨 Customization
Styling
Custom CSS and JavaScript for branding:
/* book/theme/custom.css */
:root {
--rustelo-primary: #e53e3e;
--rustelo-secondary: #3182ce;
--rustelo-accent: #38a169;
}
.menu-title {
color: var(--rustelo-primary);
font-weight: bold;
}
Content Templates
Structured content generation:
<!-- Feature documentation template -->
# Feature Name
## Overview
Brief description of the feature.
## Configuration
How to configure the feature.
## Examples
Code examples and use cases.
## Troubleshooting
Common issues and solutions.
Dynamic Content
Auto-generated sections:
- Feature Matrix: Automatically generated feature comparison
- Environment Variables: Auto-extracted from code
- API Documentation: Generated from code comments
- CLI Commands: Extracted from help text
📊 Quality Assurance
Automated Checks
- Link Validation: Broken link detection
- Content Validation: Ensure all sections exist
- Style Consistency: Formatting checks
- Accessibility: WCAG compliance testing
Performance Monitoring
- Build Times: Track documentation build performance
- Bundle Size: Monitor documentation size
- Loading Speed: Page performance metrics
- Search Performance: Search functionality speed
🔍 Search and Navigation
Full-Text Search
- Instant Search: Real-time search results
- Keyboard Shortcuts:
Ctrl+KorCmd+K - Search Highlighting: Highlighted search terms
- Search Suggestions: Auto-complete functionality
Navigation Features
- Hierarchical Structure: Logical content organization
- Breadcrumbs: Navigation context
- Previous/Next: Sequential navigation
- Table of Contents: Section overview
- Mobile Navigation: Touch-friendly mobile nav
🤖 CI/CD Integration
GitHub Actions Workflow
Automatic documentation builds and deployments:
# .github/workflows/docs.yml
name: Build and Deploy Documentation
on:
push:
branches: [ main ]
paths:
- 'book/**'
- 'docs/**'
- 'info/**'
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Rust
uses: actions-rs/toolchain@v1
- name: Build Documentation
run: ./scripts/build-docs.sh
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
Features
- Automated Builds: Build on every push
- Link Checking: Validate all links
- Multi-format Output: HTML, PDF, EPUB
- Deployment: Automatic deployment to hosting
- Notifications: Build status notifications
📱 Mobile Experience
Responsive Design
- Mobile-First: Optimized for mobile devices
- Touch Navigation: Swipe gestures and touch controls
- Fast Loading: Optimized for mobile connections
- Offline Support: Progressive web app features
Performance
- Lazy Loading: Load content as needed
- Image Optimization: Optimized images for mobile
- Caching Strategy: Smart caching for offline use
- Compression: Gzip compression for faster loading
🔐 Security
Security Headers
- Content Security Policy: XSS protection
- X-Frame-Options: Clickjacking protection
- X-Content-Type-Options: MIME type sniffing protection
- Referrer Policy: Control referrer information
Access Control
- Authentication: Optional authentication for private docs
- Authorization: Role-based access control
- IP Restrictions: Restrict access by IP
- Rate Limiting: Prevent abuse
📈 Analytics
Usage Analytics
- Page Views: Track popular documentation sections
- Search Analytics: Most searched terms
- User Journey: How users navigate documentation
- Performance Metrics: Page load times and optimization
Build Analytics
- Build Times: Monitor documentation build performance
- Content Growth: Track documentation growth over time
- Link Health: Monitor broken links
- Quality Metrics: Content quality indicators
🛠️ Development Workflow
Local Development
# Start development server
just docs-dev
# Make changes to book/ directory
# Changes auto-reload in browser
# Build for production
just docs-build
Content Creation
- Write Content: Create/edit markdown files in
book/ - Preview Changes: Use development server
- Build Documentation: Generate static files
- Deploy: Push to hosting platform
Collaboration
- Git Integration: Version control for documentation
- Pull Requests: Review documentation changes
- Issue Tracking: Track documentation improvements
- Contributor Guidelines: Clear contribution process
🔄 Content Management
Content Sources
- Existing Documentation: Sync from
docs/andinfo/ - Code Comments: Extract API documentation
- Configuration Files: Document configuration options
- Examples: Include code examples
Content Generation
- Dynamic Content: Auto-generated sections
- Cross-References: Automatic link generation
- Content Templates: Consistent formatting
- Validation: Ensure content completeness
🚀 Performance
Build Performance
- Incremental Builds: Only rebuild changed content
- Parallel Processing: Multi-threaded builds
- Caching: Cache build artifacts
- Optimization: Minimize build times
Runtime Performance
- Fast Loading: Optimized for speed
- Search Performance: Instant search results
- Mobile Performance: Optimized for mobile
- CDN Integration: Global content delivery
🎯 Best Practices
Content Writing
- Clear Writing: Use simple, clear language
- Code Examples: Include working examples
- Visual Aids: Screenshots and diagrams
- Cross-References: Link related content
Organization
- Logical Structure: Organize content logically
- Consistent Formatting: Use consistent styles
- Navigation: Make content easy to find
- Maintenance: Keep content up-to-date
Performance
- Optimize Images: Compress images for web
- Minimize JavaScript: Keep JavaScript minimal
- Efficient CSS: Use efficient CSS selectors
- Caching: Implement proper caching
🆘 Troubleshooting
Common Issues
mdBook not found:
# Install mdBook
cargo install mdbook
Build fails:
# Clean and rebuild
just docs-clean
just docs-build
Links not working:
# Check for broken links
just docs-check-links
Deployment fails:
# Check deployment logs
./scripts/deploy-docs.sh github-pages --dry-run
Getting Help
- Documentation: Check this documentation
- Issues: Report issues on GitHub
- Discussions: Join community discussions
- Support: Get help from maintainers
🎉 Conclusion
The Rustelo documentation system provides a comprehensive, modern solution for project documentation. With automated content generation, multiple deployment options, and seamless integration with your development workflow, it makes maintaining high-quality documentation effortless.
Key Benefits
- Comprehensive: Covers all aspects of documentation
- Automated: Minimal manual maintenance required
- Flexible: Adapts to your project needs
- Modern: Built with current best practices
- Scalable: Grows with your project
Getting Started
- Run
./scripts/setup-docs.sh --full - Start developing with
./scripts/docs-dev.sh - Deploy with
./scripts/deploy-docs.sh github-pages
Happy documenting! 📚✨
For the latest documentation, visit: https://yourusername.github.io/rustelo