Cards: optional repo link, block-level descriptions, schema + CI validation

- Project card: optional `repo` field renders a git icon corner link
  (github.com / bitbucket.org / Gitea URLs supported).
- All cards: `.card__title` and `.card__desc` are now display:block, so
  the description always starts on its own line.
- Added data/links.schema.json (JSON Schema 2020-12) describing the
  full content model. Both data files reference it via `$schema` for
  github.dev / VS Code autocomplete.
- New GitHub Action validates data/links.json on every push/PR:
  jq syntax check + ajv-cli schema validation.
This commit is contained in:
Joel Brock
2026-05-26 20:21:10 -07:00
parent 89d7e8d8ca
commit 13d646b673
6 changed files with 312 additions and 6 deletions
+39
View File
@@ -0,0 +1,39 @@
name: Validate links data
on:
push:
branches: [main]
paths:
- "data/links.json"
- "data/links.example.json"
- "data/links.schema.json"
- ".github/workflows/validate-data.yml"
pull_request:
paths:
- "data/links.json"
- "data/links.example.json"
- "data/links.schema.json"
- ".github/workflows/validate-data.yml"
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: JSON syntax (jq)
run: |
set -e
for f in data/links.json data/links.example.json data/links.schema.json; do
echo "Checking $f"
jq empty "$f"
done
- name: Schema validation (ajv)
run: |
npx --yes ajv-cli@5 validate \
--spec=draft2020 \
--strict=false \
-s data/links.schema.json \
-d data/links.json \
-d data/links.example.json