# Mau Documentation

Welcome to the Mau template engine documentation! Mau is a powerful Elixir library that implements the Prana template language, providing Liquid-like templating with advanced features for data transformation.

## Getting Started

New to Mau? Start here to get up and running in minutes.

- [Installation](getting-started/installation.md) - Set up Mau in your project
- [Quick Start](getting-started/quick-start.md) - 5-minute tutorial with basic examples
- [Basic Concepts](getting-started/basic-concepts.md) - Core concepts and terminology
- [Your First Template](getting-started/first-template.md) - Step-by-step walkthrough

## Guides

Practical, task-oriented guides for common use cases.

- [Filters](guides/filters.md) - Using and chaining filters
- [Control Flow](guides/control-flow.md) - Conditionals and loops
- [Variables](guides/variables.md) - Variable access and assignment
- [Whitespace Control](guides/whitespace-control.md) - Managing whitespace in templates
- [Map Directives](guides/map-rendering.md) - Advanced map transformations with directives

## Reference

Complete technical reference documentation.

- [Template Language](reference/template-language.md) - Complete language reference
- [AST Specification](reference/ast-specification.md) - Template AST structure
- [Map Directives](reference/map-directives.md) - Directive system reference
- [Filters List](reference/filters-list.md) - Alphabetical filter reference
- [API Reference](reference/api-reference.md) - Elixir API documentation

## Advanced Topics

For experienced users wanting to extend or optimize Mau.

- [Custom Filters](advanced/custom-filters.md) - Creating custom filters
- [Custom Functions](advanced/custom-functions.md) - Creating custom functions
- [Performance Tuning](advanced/performance-tuning.md) - Optimization techniques
- [Error Handling](advanced/error-handling.md) - Error handling strategies
- [Security](advanced/security.md) - Security best practices
- [Extending Mau](advanced/extending-mau.md) - Architecture and extension points

## Examples

Real-world examples and copy-paste ready code snippets.

- [Email Templates](examples/email-templates.md) - Email generation examples
- [Report Generation](examples/report-generation.md) - Dynamic reports and data outputs
- [Data Transformation](examples/data-transformation.md) - Using map directives for transformations

## Quick Links

- [GitHub Repository](https://github.com/bluzky/mau)
- [ExDoc API Documentation](https://hexdocs.pm/mau)
- [Hex Package](https://hex.pm/packages/mau)

## Documentation Sections Overview

### Getting Started
Beginner-friendly guides designed for new users. These documents focus on the basics and help you get productive quickly.

### Guides
Task-oriented documentation covering specific features and common patterns. Each guide includes practical examples.

### Reference
Comprehensive technical reference for all language features, directives, filters, and functions. Use this when you need detailed information.

### Advanced
In-depth topics for users building custom extensions or optimizing performance. Includes security considerations.

### Examples
Real-world, copy-paste ready examples demonstrating best practices and common use cases.

## Getting Help

- Check the relevant guide or reference section
- Search the documentation
- Review the examples for similar use cases
- Open an issue on GitHub

## Contributing to Documentation

We welcome documentation improvements! If you find errors, unclear sections, or missing examples:

1. Open an issue describing the problem
2. Submit a pull request with improvements
3. Help us keep examples up to date

---

**Last Updated**: 2024-01-15
**Version**: 0.5.0+
