Skip to content

FlaxEngine/FlaxDocs

Repository files navigation

Flax Engine Documentation

Flax Engine Docs

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.bat to build the Manual or build_all.bat to build whole documentation (with API) but it will take more time to finish
  • Call run_local_website.bat to 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 script docs.sh to 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 tag update-<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).

Licensing

Creative Commons License
FlaxDocs is licensed under a Creative Commons Attribution 4.0 International License.