ci: add docs workflow with PR metadata generation

Add conditional metadata generation for PRs that modify both docs and
source files. This fixes broken link checker reports when a PR adds a
new module and documents it simultaneously - previously the link checker
would fail because metadata files are only generated on push to main.

Changes:
- Add docs-orchestrator.yml workflow with:
  - detect-changes job to check if PR touches source paths
  - pr-metadata-regen job that generates metadata and uploads as artifact
  - link-check job that downloads metadata artifact when available
  - build-site job for VitePress site generation
  - deploy-aws and crowdin-upload jobs for push events
  - Prettier formatting step before auto-commit on push

- Add Prettier for markdown formatting:
  - Add prettier ^3.2.0 as devDependency in docs/package.json
  - Add docs/.prettierrc with prose-preserving config

- Remove normalize_whitespace from metadata_sync.sh (Prettier handles
  whitespace normalization now)

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
This commit is contained in:
Ramon Roche
2026-02-04 15:48:15 +01:00
parent 380ae3047d
commit 85aa863c56
4 changed files with 373 additions and 16 deletions

View File

@@ -114,18 +114,6 @@ ensure_emscripten() {
log_verbose "Emscripten ready: $(emcc --version | head -1)"
}
# ═══════════════════════════════════════════════════════════════════════════════
# Whitespace Normalization
# ═══════════════════════════════════════════════════════════════════════════════
normalize_whitespace() {
local file="$1"
if [[ -f "$file" ]]; then
# Remove trailing whitespace from each line
sed -i 's/[[:space:]]*$//' "$file"
fi
}
# ═══════════════════════════════════════════════════════════════════════════════
# Generation Functions
# ═══════════════════════════════════════════════════════════════════════════════
@@ -199,7 +187,6 @@ sync_parameters() {
die "Source file not found: $src (did you run --generate?)"
fi
normalize_whitespace "$src"
mkdir -p "$(dirname "$dest")"
cp "$src" "$dest"
log_verbose " $src -> $dest"
@@ -215,7 +202,6 @@ sync_airframes() {
die "Source file not found: $src (did you run --generate?)"
fi
normalize_whitespace "$src"
mkdir -p "$(dirname "$dest")"
cp "$src" "$dest"
log_verbose " $src -> $dest"
@@ -239,7 +225,6 @@ sync_modules() {
mkdir -p "$dest_dir"
for src in "${src_files[@]}"; do
normalize_whitespace "$src"
local name
name=$(basename "$src")
cp "$src" "$dest_dir/$name"
@@ -267,7 +252,6 @@ sync_msg_docs() {
mkdir -p "$middleware_dir"
for src in "${src_files[@]}"; do
normalize_whitespace "$src"
local name
name=$(basename "$src")