# Documentation ## MkDocs An HTML version of the μD3TN documentation is created via [MkDocs](https://www.mkdocs.org/). All files stored in the MkDocs directory are taken into account. The MkDocs configuration can be changed in the `mkdocs.yaml` file. To add further pages to the navigation, they must be added to the `nav` section. ### Prepare - w/o nix - Install [pandoc](https://pandoc.org/installing.html) - Install [protoc](https://grpc.io/docs/protoc-installation/) - Install [protoc-gen-doc](https://github.com/pseudomuto/protoc-gen-doc) via your package manager, `go install` or another preferred method To install it as an unprivileged user in a subdirectory of the work tree: ```sh GOBIN=$(pwd)/.gobin/ go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@latest # Then, run all protoc commands as follows: PATH=$(pwd)/.gobin/:$PATH protoc ... ``` - Install mkdocs and relevant Python dependencies (preferably use a [virtual environment](https://d3tn.gitlab.io/ud3tn/python-venv/)) ```sh pip install -U mkdocs pip install $(mkdocs get-deps) ``` - w/ nix (see also [the µD3TN documentation on it](https://d3tn.gitlab.io/ud3tn/usage/build-and-run/#nix-based-build-and-development)) ```sh nix develop '.?submodules=1' ``` ### Develop ```sh # create markdown docs from manpage pandoc \ --from man \ --to gfm+definition_lists \ --shift-heading-level-by 1 \ --output doc/references/manpage.md \ doc/ud3tn.1 # Create markdown docs from protobuf protoc \ --doc_out=doc/references/protobuf \ --doc_opt=markdown,index.md \ components/aap2/aap2.proto \ components/agents/storage/storage_agent.proto # Run dev-server for live preview of HTML documents (without protobuf) mkdocs serve ``` ### Build ```sh # w/o nix make doc # w/ nix nix build .#mkdocs-html ``` ### Deploy When changes are made to the master branch, the latest version of the documentation is automatically built and published at https://d3tn.gitlab.io/ud3tn. ## Man Page There exists also a man page for μD3TN, which can be viewed with ```sh man --local-file ud3tn.1 ```