Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Dependabot — only watches GitHub Actions versions.
# This repo has no runtime dependencies (no package.json, no requirements.txt).
# The site is static HTML/CSS/JS served from main.
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: monthly
open-pull-requests-limit: 5
commit-message:
prefix: chore
include: scope
70 changes: 70 additions & 0 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Site checks — link validity + HTML sanity on every PR and main push.
# This repo has no build step. Static HTML/CSS/JS is what ships to
# GitHub Pages from `main`. CI here just guards against shipping
# broken links or malformed HTML.
name: site-checks

on:
push:
branches: [main]
pull_request:
branches: [main]

# Cancel in-progress runs for the same branch when a new commit lands.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
links:
name: link checker
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# lychee is a fast link checker — supports HTML, markdown, and
# ignores false positives via a config file when one is added.
- name: Check links
uses: lycheeverse/lychee-action@v2
with:
# Config lives in lychee.toml at repo root: accept-codes,
# excludes for sites with known SSL/UA quirks, root-dir for
# root-relative href resolution.
args: >-
--no-progress
--config lychee.toml
--root-dir ${{ github.workspace }}
./index.html
./data/index.html
./inequality/index.html
./spend/index.html
./README.md
./SECURITY.md
./CONTRIBUTING.md
fail: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

html:
name: html validation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# html-validate is a fast standalone HTML5 validator — no DOM,
# no headless browser. Catches structural issues only.
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install html-validate
run: npm install --no-save html-validate@9
- name: Validate HTML
run: |
npx html-validate \
--formatter codeframe \
index.html \
data/index.html \
inequality/index.html \
spend/index.html
21 changes: 21 additions & 0 deletions .htmlvalidate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"extends": ["html-validate:recommended"],
"rules": {
"void-style": "off",
"no-trailing-whitespace": "off",
"no-inline-style": "off",
"wcag/h32": "off",
"wcag/h67": "off",
"no-redundant-role": "off",
"no-redundant-aria-label": "off",
"long-title": "off",
"attribute-boolean-style": "off",
"no-implicit-button-type": "off",
"valid-id": "off",
"no-raw-characters": "off",
"unrecognized-char-ref": "off",
"prefer-native-element": "off",
"element-permitted-content": "off",
"aria-label-misuse": "off"
}
}
Loading
Loading