Documentation for the cross-language-cpp fork of djinni.
➡️ Available at: djinni.xlcpp.dev
This documentation covers of the following topics:
- General Documentation: a fancy landing page and some general information about the project.
- Generator: documentation of the djinni-generator
- Support-Lib: documentation of the djinni-support-lib
- IntelliJ Plugin: documentation of the djinni-intellij-plugin
- VS Code Extension: documentation of the vscode-djinni extension
- python3
- bash
Install python dependencies:
pip3 install -r requirements.txt- Before making local changes, make sure to update all submodules:
git submodule foreach git pull
- Configure the mkdocs.yml file:
./configure.sh
- Start a dev server:
mkdocs serve
- A live preview of the page is now available at http://localhost:8000/.
The page is automatically deployed on each merge into main.
The submodules follow the main branch of each repository. On each publish action the submodules will be automatically updated to the latest release tag, rendered and pushed to the gh-pages branch.
Important: The pipeline has to always pull the latest changes of all submodules because submodules point to a specific commit in the linked repository.
That way the rendered documentation in gh-pages will always stay up-to-date, while the submodules in the repository will point to an older commit if not updated manually.
The documentation is built using Markdown files, the mkdocs generator and the mkdocs-material theme.
To consolidate multiple repositories into one documentation, the mkdocs-monorepo-plugin is used.
A few non-standard CSS-customizations have been made to the theme:
- a custom color theme has been created
- the version of each submodule is injected into
mkdocs.ymlwith./configure.sh. The version is displayed as a small tag in the sidebar navigation.
Page analytics data is public: plausible.io/djinni.xlcpp.dev