diff --git a/docs/source/Dockerfile.luadoc b/docs/source/Dockerfile.luadoc new file mode 100644 index 0000000000..d449b97ab7 --- /dev/null +++ b/docs/source/Dockerfile.luadoc @@ -0,0 +1,26 @@ +FROM ubuntu:22.04 + +RUN apt update && \ + apt install -y make gcc libreadline-dev wget unzip git zip && \ + rm -rf /var/lib/apt/lists/* + +ADD https://www.lua.org/ftp/lua-5.1.5.tar.gz /tmp/lua-5.1.5.tar.gz +RUN tar -zxf /tmp/lua-5.1.5.tar.gz -C /tmp && rm /tmp/lua-5.1.5.tar.gz +RUN cd /tmp/lua-5.1.5 && \ + make linux -j $(nproc) && \ + make install && \ + rm -r /tmp/lua-5.1.5 + +ADD https://luarocks.org/releases/luarocks-2.4.2.tar.gz /tmp/luarocks-2.4.2.tar.gz +RUN tar -zxpf /tmp/luarocks-2.4.2.tar.gz -C /tmp && rm /tmp/luarocks-2.4.2.tar.gz +RUN cd /tmp/luarocks-2.4.2 && \ + ./configure && \ + make build -j $(nproc) && \ + make install && \ + rm -r /tmp/luarocks-2.4.2 + +ADD https://gitlab.com/ptmikheev/openmw-luadocumentor/-/raw/master/luarocks/openmwluadocumentor-0.1.1-1.rockspec /tmp/openmwluadocumentor-0.1.1-1.rockspec +RUN cd /tmp && \ + luarocks pack openmwluadocumentor-0.1.1-1.rockspec && \ + luarocks install openmwluadocumentor-0.1.1-1.src.rock && \ + rm /tmp/openmwluadocumentor-0.1.1-1.rockspec /tmp/openmwluadocumentor-0.1.1-1.src.rock diff --git a/docs/source/README.md b/docs/source/README.md new file mode 100644 index 0000000000..f36a1ad3d0 --- /dev/null +++ b/docs/source/README.md @@ -0,0 +1,18 @@ +# Source files for OpenMW documentation + +## Generating Lua scripting API reference + +### Building Docker image + +Run following command from OpenMW source directory to build a new Docker image `openmw.luadoc`: +```bash +docker build -f docs/source/Dockerfile.luadoc -t openmw.luadoc docs/source +``` + +### Generating HTML + +Run following command from OpenMW source directory to generate HTML pages: +```bash +docker run --rm --tty --interactive --user "$(id -u)":"$(id -g)" \ + --volume "${PWD}":/openmw openmw.luadoc /openmw/docs/source/generate_luadoc_in_docker.sh +``` diff --git a/docs/source/generate_luadoc_in_docker.sh b/docs/source/generate_luadoc_in_docker.sh new file mode 100755 index 0000000000..edd33ecb06 --- /dev/null +++ b/docs/source/generate_luadoc_in_docker.sh @@ -0,0 +1,22 @@ +#!/bin/bash -e + +if ! [[ -f "/.dockerenv" ]]; then + echo "Run this script inside Docker container" >&2 + exit -1 +fi + +FILES_DIR=/openmw/files +OUTPUT_DIR=/openmw/docs/source/reference/lua-scripting/generated_html + +rm -rf "${OUTPUT_DIR}" +mkdir "${OUTPUT_DIR}" + +cd "${FILES_DIR}/lua_api" +openmwluadocumentor -f doc -d "${OUTPUT_DIR}" openmw/*lua + +cd "${FILES_DIR}/data" +openmwluadocumentor -f doc -d "${OUTPUT_DIR}" openmw_aux/*lua +openmwluadocumentor -f doc -d "${OUTPUT_DIR}" scripts/omw/ai.lua +openmwluadocumentor -f doc -d "${OUTPUT_DIR}" scripts/omw/camera/camera.lua +openmwluadocumentor -f doc -d "${OUTPUT_DIR}" scripts/omw/mwui/init.lua +openmwluadocumentor -f doc -d "${OUTPUT_DIR}" scripts/omw/settings/player.lua