JX-Master / LunaSDK

Luna SDK is a C++ software development framework for real-time rendering applications.
Other
123 stars 8 forks source link

Add Doxygen support #49

Closed JX-Master closed 11 months ago

JX-Master commented 11 months ago

This merge adds Doxygen document generation pipeline to LunaSDK. The pipeline runs in the following steps:

  1. Generate XML files from C++ header files by running Tools/doxygen/gen_docs.bat, or execute doxygen Doxyfile manually.
  2. Generate Markdown files from XML files using LunaDoc program: LunaDoc md -i %ROOT_PATH%/Tools/doxygen/xml -o %ROOT_PATH%/Tools/doxygen/markdown
  3. Copy Markdown files to LunaSDK-Docs repository. Placing them into docs/api.
  4. Use mkdocs to generate API documentation pages from markdown files.

The core contribution of this merge is LunaDoc, a command-line tool that translates XML files generated from Doxygen to markdown files accepted by MkDocs. This is required since markdown generation is not supported by Doxygen natively. We tweaked the markdown generation process so that it produces more readable and beautiful docs than most third-party Doxygen markdown generator.