Documentation architecture
The documentation relies on Sphinx and many Sphinx extensions.
The documentation code is in two main directories:
Our documentation supports both rst & markdown syntaxes.
Configuration
The main configuration file is:
https://searchfox.org/mozilla-central/source/docs/config.yml
It contains the categories, the redirects, the warnings and others configuration aspects.
The dependencies are listed in:
https://searchfox.org/mozilla-central/source/tools/moztreedocs/requirements.in
Be aware that Python libraries stored in third_party/python are used in priority (not always for good reasons). See Vendor the source of the Python package in-tree for more details.
Architecture
mach_commands contains:
- mach doc arguments managements 
- Detection/configuration of the environment (nodejs for jsdoc, pip for dependencies, etc) 
- Symlink the doc sources (.rst & .md) from the source tree into the staging directory 
- Fails the build if any critical warnings have been identified 
- Starts the sphinx build (and serve it if the option is set) 
- Manages telemetry 
docs/conf.py defines:
- The list of extensions 
- JS source paths 
- Various sphinx configuration 
At the end of the build documentation process, files will be uploaded to a CDN:
https://searchfox.org/mozilla-central/source/tools/moztreedocs/upload.py