diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 4ac1208..ba80709 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -33,25 +33,54 @@ jobs: - name: Build Documentation run: make docs-generate REPO_NAME=math DOCS_VERSION_PATH=main - - name: Add Root Redirect + - name: Setup Redirects run: | - cat < .build/documentation/index.html + # Function to create a redirect file + create_redirect() { + local FILE_PATH=$1 + local TARGET_URL=$2 + local TITLE=$3 + + mkdir -p "$(dirname "$FILE_PATH")" + + cat < "$FILE_PATH" - Redirecting to Documentation - + $TITLE + - + -

Redirecting to documentation...

+

Redirecting to $TITLE...

EOF + } + + # 1. Root -> latest/documentation/fireblademath/ + create_redirect ".build/documentation/index.html" \ + "latest/documentation/fireblademath/index.html" \ + "Redirecting to Latest Docs" + + # 2. latest/ -> main/documentation/fireblademath/ + create_redirect ".build/documentation/latest/index.html" \ + "../main/documentation/fireblademath/index.html" \ + "Redirecting to Main Docs" + + # 3. latest/documentation/fireblademath/ -> main/documentation/fireblademath/ + create_redirect ".build/documentation/latest/documentation/fireblademath/index.html" \ + "../../../main/documentation/fireblademath/index.html" \ + "Redirecting to Main Docs" + + # 4. documentation/fireblademath/ -> main/documentation/fireblademath/ + create_redirect ".build/documentation/documentation/fireblademath/index.html" \ + "../../main/documentation/fireblademath/index.html" \ + "Redirecting to Main Docs" - name: Check Documentation Quality run: | @@ -86,7 +115,7 @@ jobs: # Wait a few seconds for CDN propagation sleep 10 # Verify the versioned documentation path exists - curl --fail -sL https://fireblade-engine.github.io/math/main/documentation/fireblademath/ | grep -q "FirebladeMath" + curl --fail -sL https://fireblade-engine.github.io/math/main/documentation/fireblademath/ | grep -q "Documentation" echo "Documentation is live at /math/main/" - name: Check Root Redirect @@ -95,5 +124,5 @@ jobs: RESPONSE=$(curl -sI https://fireblade-engine.github.io/math/ | head -n 1) # Note: GitHub Pages might return 200 with the redirect meta tag, or a 301/302 if configured at the DNS level. # Since we use a meta/JS redirect, we check for a 200 OK and then the content. - curl -s https://fireblade-engine.github.io/math/ | grep -q "Redirecting to" - echo "Root redirect is live at /math/" + curl -s https://fireblade-engine.github.io/math/ | grep -q "Redirecting to Latest Docs" + echo "Root redirect is live at /math/ and points to latest docs"