# Building OpenMW documentation ## Building in Docker (the recommended way) ### Preparing Docker image Run the following commands from OpenMW source directory to build a new Docker image `openmw_doc`: ```bash cd docs docker build -t openmw_doc . cd .. ``` (or run script `docs/prepare_docker_image.sh`) This step needs to be repeated only if any dependencies were changed. The image is based on `readthedocs/build:latest` that is newer than the image readthedocs uses by default (`readthedocs/build:stable`). So if after some readthedocs update the documentation will stop building, there is a chance to detect it before the online docs will break. ### Generating HTML Run the following command from OpenMW source directory to generate the documentation: ```bash docker run --user "$(id -u)":"$(id -g)" --volume "$PWD":/openmw openmw_doc \ sphinx-build /openmw/docs/source /openmw/docs/build ``` (or run script `docs/build_docs.sh`) To view the generated documentation just open `docs/build/index.html` in a browser. ## Building without Docker (an alternative way) Building documentation without Docker is more complicated as it requires multiple dependencies. ### Installation of required python packages From OpenMW source directory ```bash pip3 install -r docs/requirements.txt ``` ### Installation of openmwluadocumentor: **Debian/Ubuntu** ```bash sudo apt install luarocks git clone https://gitlab.com/ptmikheev/openmw-luadocumentor.git cd openmw-luadocumentor/luarocks luarocks --local pack openmwluadocumentor-0.2.0-1.rockspec luarocks --local install openmwluadocumentor-0.2.0-1.src.rock ``` **Windows** - install LuaRocks (heavily recommended to use the standalone package) https://github.com/luarocks/luarocks/wiki/Installation-instructions-for-Windows - `git clone https://gitlab.com/ptmikheev/openmw-luadocumentor.git` - `cd openmw-luadocumentor/luarocks` - open "Developer Command Prompt for VS <2017/2019>" in this directory and run: ```bash luarocks --local pack openmwluadocumentor-0.2.0-1.rockspec luarocks --local install openmwluadocumentor-0.2.0-1.src.rock ``` ### Generating HTML Run the following command from OpenMW source directory to generate the documentation: ```bash sphinx-build docs/source docs/build ```