MkDocs Labs Documentation¶
- A comprehensive collection of hands-on labs for learning and mastering MkDocs documentation skills.
- These labs provide practical exercises covering MkDocs fundamentals, advanced concepts, and real-world scenarios.
Overview¶
- This documentation site contains a series of progressive labs designed to take you from MkDocs basics to advanced documentation techniques.
- Each lab builds upon the previous one, ensuring a structured learning path.
🚀 Lab Series [Example]¶
| Lab | Title | Description |
|---|---|---|
| 000 | Setup | Environment setup and prerequisites |
| 001 | Basic MkDocs Site | Creating your first MkDocs site |
| 002 | MkDocs Configuration | Understanding configuration files |
| 003 | MkDocs Theme | Customizing themes and appearance |
| 004 | MkDocs Extra Features | Adding extra features and social links |
| 005 | MkDocs Plugins | Extending functionality with plugins |
| 006 | MkDocs Extensions | Markdown extensions and enhancements |
| 007 | MkDocs Navigation | Building navigation structures |
| 008 | MkDocs Deployment | Deploying to GitHub Pages and other platforms |
| 009 | Advanced Customization | Theme overrides and custom CSS/JS |
| 010 | MkDocs Best Practices | Optimization and maintenance |
| 011 | Real-World Projects | Building complete documentation sites |
📁 Project Structure¶
📂 mkdocs # Root project directory
┣ 📄 README.md # Project documentation
┣ 📄 vercel.json # Vercel deployment configuration
┣ 📦 requirements.txt # Python dependencies (in mkdocs/)
┣ 📝 mkdocs.yml # Main MkDocs configuration
┣ 📂 Labs # Documentation content directory
┃ ┣ 📄 index.md # This file - labs overview
┃ ┗ 📄 welcome.md # Welcome page
┣ 📂 mkdocs # Modular configuration files
┃ ┣ 📝 01-mkdocs-site.yml # Basic site configuration
┃ ┣ 🎨 02-mkdocs-theme.yml # Material theme settings
┃ ┣ ➕ 03-mkdocs-extra.yml # Extra features and social links
┃ ┣ 🔌 04-mkdocs-plugins.yml # Plugin configurations
┃ ┣ 🧩 05-mkdocs-extensions.yml # Markdown extensions
┃ ┣ 📑 06-mkdocs-nav.yml # Navigation structure
┃ ┣ 📋 mkdocs.yml.schema.json # Configuration schema
┃ ┣ 📂 overrides # Theme customizations
┃ ┃ ┣ 🧩 home.html # Custom homepage
┃ ┃ ┣ 📂 assets # Custom assets
┃ ┃ ┣ 📂 partials # Custom partial templates
┃ ┃ ┗ 📂 stylesheets # Custom styles
┃ ┗ 📂 scripts # Utility scripts
┃ ┣ 🛠️ build_nav.sh # Navigation builder
┃ ┣ 🛠️ build-multiarch.sh # Multi-architecture build
┃ ┣ 🛠️ init_site.sh # Site initialization
┃ ┗ 🛠️ init_vercel.sh # Vercel setup
┗ 📂 mkdocs-site # Built site (generated)
┣ 📄 index.html # Main page
┣ 📄 404.html # Error page
┣ 📄 sitemap.xml # Site map
┣ 📂 assets # Site assets
┣ 📂 css # Custom CSS
┣ 📂 js # Custom JavaScript
┣ 📂 print_page # Print-friendly pages
┗ 📂 search # Search index
🛠️ Getting Started with MkDocs Labs¶
Prerequisites¶
Before starting these labs, ensure you have:
- A Python 3.8+ environment
- MkDocs installed (
uv pip install mkdocs) - Basic knowledge of Markdown
- Git for version control
- A text editor or IDE
How to Use These Labs¶
- Start with Lab 000: Set up your environment
- Follow the sequence: Each lab builds on the previous one
- Read the instructions: Each lab folder contains a README.md with detailed steps
- Practice hands-on: Don’t just read - build the sites and experiment
- Experiment: Modify the configurations to understand how they work
Running the Labs¶
Most labs can be run locally:
- Use
mkdocs serveto preview your site - Use
mkdocs buildto generate static files - Deploy to GitHub Pages with
mkdocs gh-deploy - Or use any static hosting service
📚 Learning Objectives¶
By completing these labs, you will learn:
- MkDocs installation and configuration
- Theme customization and styling
- Plugin integration and usage
- Markdown extensions and advanced features
- Navigation and site structure
- Deployment strategies and automation
- Best practices for documentation sites
🤝 Contributing to Labs¶
Found an issue or want to improve a lab?
- Fork the mkdocs repository
- Create your feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
📞 Support¶
Need help with the labs?
- Check the MkDocs documentation
- Join our Discord community
- Open an issue in the GitHub repository
**Happy documenting with MkDocs!*