# MkDocs Material Modern documentation site generator with live preview. ## Overview MkDocs Material is a powerful documentation framework built on top of MkDocs, providing a beautiful Material Design theme and advanced features for creating professional documentation sites. ## Features - Material Design theme - Live preview during development - Search functionality - Navigation and organization - Code syntax highlighting - Mathematical expressions support - Responsive design - Customizable themes and colors ## Access - **Development Port**: 4000 - **Development URL**: `http://localhost:4000` - **Live Reload**: Automatically refreshes on file changes ## Configuration ### Main Configuration Configuration is managed through `mkdocs.yml` in the project root. ### Volumes - `./mkdocs`: Documentation source files - `./assets/images`: Shared images directory ### Environment Variables - `SITE_URL`: Base domain for the site - `USER_ID`: User ID for file permissions - `GROUP_ID`: Group ID for file permissions ## Directory Structure ``` mkdocs/ ├── mkdocs.yml # Configuration file ├── docs/ # Documentation source │ ├── index.md # Homepage │ ├── services/ # Service documentation │ ├── blog/ # Blog posts │ └── overrides/ # Template overrides └── site/ # Built static site ``` ## Writing Documentation ### Markdown Basics - Use standard Markdown syntax - Support for tables, code blocks, and links - Mathematical expressions with MathJax - Admonitions for notes and warnings ### Example Page ```markdown # Page Title This is a sample documentation page. ## Section Content goes here with **bold** and *italic* text. ### Code Example ```python def hello_world(): print("Hello, World!") ``` !!! note This is an informational note. ``` ## Building and Deployment ### Development The development server runs automatically with live reload. ### Building Static Site ```bash docker exec mkdocs-changemaker mkdocs build ``` The built site will be available in the `mkdocs/site/` directory. ## Customization ### Themes and Colors Customize appearance in `mkdocs.yml`: ```yaml theme: name: material palette: primary: blue accent: indigo ``` ### Custom CSS Add custom styles in `docs/stylesheets/extra.css`. ## Official Documentation For comprehensive MkDocs Material documentation: - [MkDocs Material](https://squidfunk.github.io/mkdocs-material/) - [MkDocs Documentation](https://www.mkdocs.org/) - [Markdown Guide](https://www.markdownguide.org/)