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