73 lines
2.5 KiB
Bash
Executable File
73 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
YELLOW='\033[1;33m'
|
|
GREEN='\033[0;32m'
|
|
NC='\033[0m'
|
|
|
|
echo "Generating FlexLöve documentation..."
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
PROJECT_ROOT="$( cd "$SCRIPT_DIR/.." && pwd )"
|
|
cd "$PROJECT_ROOT"
|
|
|
|
if [ -f "docs/api.html" ]; then
|
|
echo -e "${YELLOW}Checking for previous documentation version...${NC}"
|
|
OLD_VERSION=$(grep -o 'FlexLöve v[0-9.]*' docs/api.html | head -1 | sed 's/FlexLöve v//')
|
|
CURRENT_VERSION=$(grep -m 1 "_VERSION" FlexLove.lua | sed -E 's/.*"([^"]+)".*/\1/')
|
|
|
|
if [ -n "$OLD_VERSION" ] && [ "$OLD_VERSION" != "$CURRENT_VERSION" ]; then
|
|
echo -e "${YELLOW}Found previous version v${OLD_VERSION}, archiving before generating new docs...${NC}"
|
|
mkdir -p "docs/versions/v${OLD_VERSION}"
|
|
cp docs/api.html "docs/versions/v${OLD_VERSION}/api.html"
|
|
echo -e "${GREEN}✓ Archived previous documentation to docs/versions/v${OLD_VERSION}/${NC}"
|
|
elif [ -n "$OLD_VERSION" ] && [ "$OLD_VERSION" = "$CURRENT_VERSION" ]; then
|
|
echo -e "${YELLOW}Same version (v${OLD_VERSION}), will overwrite current documentation${NC}"
|
|
fi
|
|
fi
|
|
|
|
if ! command -v lua-language-server &> /dev/null; then
|
|
echo "Error: lua-language-server not found. Please install it first."
|
|
echo " macOS: brew install lua-language-server"
|
|
echo " Linux: See https://github.com/LuaLS/lua-language-server"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p docs
|
|
|
|
echo "Running lua-language-server documentation export..."
|
|
lua-language-server \
|
|
--doc="$PROJECT_ROOT" \
|
|
--doc_out_path="$PROJECT_ROOT/docs"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✓ Markdown documentation generated"
|
|
|
|
echo "Building beautiful HTML documentation..."
|
|
cd "$PROJECT_ROOT/docs"
|
|
|
|
if [ ! -d "node_modules" ]; then
|
|
echo "Installing Node.js dependencies..."
|
|
npm install --silent
|
|
fi
|
|
|
|
npm run build --silent
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✓ HTML documentation built successfully!${NC}"
|
|
echo ""
|
|
echo "Generated files:"
|
|
echo " - docs/api.html (Beautiful, searchable API reference)"
|
|
echo " - docs/index.html (Landing page)"
|
|
echo " - docs/doc.md (Raw markdown)"
|
|
if [ -n "$OLD_VERSION" ] && [ "$OLD_VERSION" != "$CURRENT_VERSION" ]; then
|
|
echo " - docs/versions/v${OLD_VERSION}/api.html (Previous version archived)"
|
|
fi
|
|
else
|
|
echo "✗ HTML build failed, but markdown docs are available"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "✗ Documentation generation failed"
|
|
exit 1
|
|
fi
|