FlaxDocs
FlaxDocs copied to clipboard
Flax Engine Documentation
Flax Engine Documentation

Welcome to the Flax documentation repository. This repository contains all the source files for the Flax documentation (https://docs.flaxengine.com/). Anyone is welcome to contribute!
Editing
We use DocFX tool for building and hosting documentation online. It supports markdown style files (.md) as it's a very standardized and popular format. Writing technical documentation using markdown style is easy and efficient.
To edit docs we recommend you to use tools such as Zettlr or Typora or Visual Studio Code.
Building and Testing
Documentation can be built and hosted on both Linux and Windows. DocFx can run on .Net or Mono. By default the site is hosted on localhost:8080 but this can be easily configured.
Windows
- Download repository (or clone with
git clone https://github.com/FlaxEngine/FlaxDocs.git) - Call
build_manual.batto build the Manual orbuild_all.batto build whole documentation (with API) but it will take more time to finish - Call
run_local_website.batto preview the site
Linux
- Install Mono
- Clone repository (
git clone https://github.com/FlaxEngine/FlaxDocs.git) - Call
chmod +x docs.sh. It will modify permissions for the scriptdocs.shto allow to execute it - Call
./docs.sh rebuild
Technical Notes
C# and C++ API reference pages are generated by downloading and building engine at a given revision specified in file commit.txt. C# API is extracted via docfx metadata into api folder. C++ API is extracted via our custom fork of code2yaml which parses engine header files with doxygen to generate metadata into api-cpp folder.
Key configuration files:
docfx.json- config for docfx documentation building.code2yaml.json- config for code2yaml used to extract api docs for C++.doxyfile- config for doxygen to output xml files with engine api to be processed by code2yaml.commit.txt- contains commit hash of the FlaxEngine revision to use for the API building..github\workflows\docs-publish.yml- Github Actions workflow triggered on git tagupdate-<version>that builds whole docs with api and publishes them to FlaxDocsHost for static hosting on Github Pages..github\workflows\docs-build.yml- Github Actions workflow triggered on push/pr that builds manual without api to verify the integrity of the modified docs (eg. warns about invalid links or missing files).