docs: add Sphinx documentation build and deploy workflow
- Add Gitea Actions workflow to build and deploy docs on push to main - Generate Sphinx reference documentation for all apps and modules - Deploy versioned and latest docs via rsync over SSH
This commit is contained in:
42
docs/regenerate_docs.sh
Executable file
42
docs/regenerate_docs.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
# Regenerate Sphinx API reference for every Mnemosyne app, then build HTML.
|
||||
# Drives both local development and the CI pipeline.
|
||||
set -euo pipefail
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
APPS=(themis library llm_manager mcp_server)
|
||||
SOURCE_REF=source/reference/apps
|
||||
PACKAGE_ROOT=../mnemosyne
|
||||
|
||||
make clean
|
||||
|
||||
mkdir -p "$SOURCE_REF"
|
||||
|
||||
# Per-app subdir so each app gets its own modules.rst (sphinx-apidoc
|
||||
# overwrites the file otherwise, leaving only the last app in the index).
|
||||
for app in "${APPS[@]}"; do
|
||||
sphinx-apidoc \
|
||||
--force \
|
||||
--separate \
|
||||
--module-first \
|
||||
--output-dir "$SOURCE_REF/$app" \
|
||||
"$PACKAGE_ROOT/$app" \
|
||||
"$PACKAGE_ROOT/$app/migrations" \
|
||||
"$PACKAGE_ROOT/$app/tests"
|
||||
done
|
||||
|
||||
# Write a top-level apps.rst that toctree's every app's modules.rst.
|
||||
{
|
||||
echo "Applications"
|
||||
echo "============"
|
||||
echo
|
||||
echo ".. toctree::"
|
||||
echo " :maxdepth: 2"
|
||||
echo
|
||||
for app in "${APPS[@]}"; do
|
||||
echo " $app/modules"
|
||||
done
|
||||
} > "$SOURCE_REF/index.rst"
|
||||
|
||||
make html
|
||||
Reference in New Issue
Block a user