Static site for publications.clir.org.
Built with:
- Eleventy (11ty)
- Tailwind CSS (via PostCSS)
- MiniSearch
- Zenodo community metadata (
clir) as system of record for reports
- Node.js
>=23 pnpm(project usespnpm@10.30.0)
pnpm installStart Eleventy + CSS watch:
pnpm run devRefresh remote data when needed:
pnpm run fetchOr fetch only Zenodo:
pnpm run fetch:zenodoCore build:
pnpm run buildOther build-related commands:
pnpm run index
pnpm run redirects:map
pnpm run smoke
pnpm run cleanRun automated tests:
pnpm run testWatch mode:
pnpm run test:watchProduction deployment uses this order:
- Fetch Zenodo metadata
- Normalize metadata (inside fetch script)
- Build search index
- Generate Apache redirect map
- Compile Tailwind
- Run Eleventy
- Run smoke tests
See: .github/workflows/build-deploy.yml
- Reports: Zenodo community
clir - Legacy/manual exceptions:
src/_data/outliers.json - Redirect source of truth:
src/_data/redirects.json - Generated redirect map:
dist/assets/redirects.map(do not edit manually)
Required report metadata includes:
- title
- publication date
- description
- creators
- community (
CLIR) - DOI
- attached files
- controlled keywords
Keyword format examples:
type:report
series:annual-report
topic:open-access
GitHub Actions workflow: Build & Deploy
- nightly scheduled rebuild
- manual rebuild via
workflow_dispatch
Missing report:
- verify Zenodo community membership
- verify keyword prefixes
- trigger rebuild
Build failure:
- check Zenodo API availability
- check schema/validation failures
- confirm required metadata fields are present
For full operational guidance, see OPERATIONS.md.