#!/bin/bash # Pre-commit hook: rebuild the static site so committed HTML stays in sync with markdown. # Install: ln -s ../../scripts/precommit.sh .git/hooks/pre-commit && chmod +x scripts/precommit.sh set -euo pipefail cd "$(git rev-parse --show-toplevel)" # Only run if any markdown or mkdocs config changed if git diff --cached --name-only | grep -qE '\.(md|yml)$|mkdocs\.yml'; then if [ ! -d .venv ]; then echo "pre-commit: .venv missing; run 'python3 -m venv .venv && pip install -r requirements.txt'" >&2 exit 1 fi source .venv/bin/activate mkdocs build --strict # Stage the regenerated site/ if it's tracked if git ls-files --error-unmatch site/ >/dev/null 2>&1; then git add site/ fi fi