# RusDox Docs
RusDox lets you write documents as YAML and generate real `.docx` and `.pdf` files with a Rust engine underneath.
If you are new, read these pages in order:
1. [Getting Started](getting-started.md)
2. [YAML Guide](yaml-guide.md)
3. [Configuration](configuration.md)
4. [CLI Guide](cli.md)
5. [Gallery](gallery.md)
6. [Rust API](rust-api.md)
7. [Compatibility Matrix](compatibility.md)
8. [Dated Viewer Scorecard](compatibility-scorecard.md)
9. [International and Accessible Output](international-accessibility.md)
10. [Tagged PDF, PDF/UA, and PDF/A Research](pdf-conformance-research.md)
11. [Input Safety and Limits](input-safety.md)
12. [Parity Verification](parity.md)
13. [Reproducible Performance](performance.md)
14. [Word-native Templates](word-templates.md)
15. [Spec Versioning and Authoring Tools](spec-versioning.md)
16. [Stability, Versioning, and Support](stability.md)
17. [Release Checklist](release-checklist.md)
18. [v1.0.0 Release Evidence](releases/v1.0.0.md)
19. [Troubleshooting](troubleshooting.md)
## Pick Your Path
If you want the simplest path:
- Start with [Getting Started](getting-started.md)
- Use YAML files
- Run `rusdox validate mydoc.yaml` before big renders or CI
- Use `rusdox config wizard --level basic`
If you want more control:
- Read [YAML Guide](yaml-guide.md)
- Read [Configuration](configuration.md)
- Use variables, includes, repeaters, bounded conditions, and deterministic filters when static YAML starts getting repetitive
- Generate the versioned schema or install the local [VS Code authoring extension](../editors/vscode/README.md)
- Use local `./rusdox.toml` overrides per project
If you are a developer and want full power:
- Read [Rust API](rust-api.md)
- Use `DocumentSpec` from Rust for programmatic YAML-style documents
- Drop down to `Document`, `Paragraph`, `Run`, and `Table` when needed
## What The Docs Cover
- how to install RusDox
- how to create your first YAML document
- how output folders work
- how DOCX and PDF generation works
- how to style documents with config and named styles
- how to reuse specs with variables, includes, repeaters, conditions, and filters
- how to generate the schema, migrate legacy specs, and get source-located editor diagnostics
- which v1 contracts follow SemVer, the MSRV, deprecation window, and supported release policy
- how to set document metadata and custom properties
- how font fallback, embedding permissions, alt text, and language metadata are enforced
- why current PDF output makes no tagged-PDF, PDF/UA, or PDF/A claim
- how to render one file or a whole folder
- how to validate, watch, and benchmark from the CLI
- how to reproduce performance results and interpret regression evidence
- how to turn designer-authored Word files into verified JSON-driven outputs
- how to use the Rust layer for advanced cases
- exactly which DOCX/PDF features are supported today
- how to diagnose installation, font, asset, table, and viewer problems
## Core Idea
RusDox works best when you keep these roles separate:
- content lives in YAML
- styling lives in config
- speed lives in Rust