Install these tools before working on the project:
| Tool | Purpose | Install |
|---|---|---|
| Node.js (v18+) | Runs HTMLHint and ESLint | brew install node or nodejs.org |
| actionlint | Lints GitHub Actions workflows | brew install actionlint |
| pre-commit | Runs linters on every commit | brew install pre-commit or pip install pre-commit |
npm install # install HTMLHint, ESLint, Playwright, and plugins
npx playwright install chromium # install the browser used by the smoke tests
pre-commit install # activate the pre-commit hooknpm run lint # all linters (HTML + JS + Actions)
npm run lint:html # HTMLHint only
npm run lint:js # ESLint only
npm run lint:actions # actionlint only
npm test # Playwright smoke testsThe pre-commit hook runs the linters automatically on every commit. Lint and tests also run in CI on every push and pull request (.github/workflows/ci.yml).
./release.sh # major release (e.g. v1.2.3 → v2.0.0)
./release.sh minor # minor release (e.g. v1.2.3 → v1.3.0)
./release.sh patch # patch release (e.g. v1.2.3 → v1.2.4)The script verifies a clean state, runs all linters, creates a git tag, and pushes it. GitHub Actions then builds the release and publishes the versioned HTML file.