Source for next-gen documentation, RDF vocabularies and infrastructure.
# Install dependencies
pnpm install
# Start development server
pnpm dev
# Run tests
pnpm test
pnpm typecheck
pnpm lint# Unit/Integration tests
pnpm test
# Build regression tests
node scripts/test-site-builds.js --site all --env production
# Portal end-to-end tests
./scripts/test-portal-builds.shSee TESTING.md for automated testing overview and developer_notes/build-regression-testing.md for comprehensive testing documentation.
Testing runs automatically with zero configuration required:
- β Pre-commit: TypeScript, ESLint, unit tests, config validation
- β Pre-push: Build regression tests (branch-aware)
- β CI/CD: Full test suite on all pull requests
Manual testing available: pnpm test:full, pnpm test:regression
standards-dev/
βββ portal/ # Main portal site
βββ standards/ # Individual standard sites
β βββ ISBDM/ # ISBD Manifestation
β βββ LRM/ # Library Reference Model
β βββ FRBR/ # Functional Requirements
β βββ isbd/ # International Standard Bibliographic Description
β βββ muldicat/ # Multilingual Dictionary of Cataloguing Terms
β βββ unimarc/ # UNIMARC formats
βββ packages/ # Shared packages
β βββ theme/ # Custom Docusaurus theme
βββ libs/ # Shared libraries
β βββ shared-config/ # Configuration utilities for sites
βββ scripts/ # Build and utility scripts
# Build a specific standard
pnpm build standards/ISBDM
pnpm build standards/LRM
# Build all sites
pnpm build:all
# Build portal
pnpm build:portal# Start portal development server
pnpm start:portal
# Start specific standard
pnpm start:isbdm
pnpm start:lrm
# Start all sites simultaneously
pnpm start:all# Serve portal
pnpm serve:portal
# Serve specific standard
pnpm serve:isbdm
# Serve all sites
pnpm serve:all# Scaffold a new IFLA standard
pnpm scaffold# Create vocabulary sheets
pnpm vocabulary:create
# Export to RDF
pnpm vocab:release# Validate site links
pnpm validate:site-links
# Check navigation URLs
pnpm validate:navigation
# Validate environment URLs
pnpm validate:env-urls-
Clone and Install:
git clone <repository-url> cd standards-dev pnpm install
-
Start Development:
pnpm start:portal # or specific site -
Make Changes:
- Edit content in
standards/*/docs/orportal/docs/ - Modify theme in
packages/theme/src/ - Update shared configs in
libs/shared-config/
- Edit content in
-
Test Changes:
pnpm test:full # Full test suite pnpm test:regression # Build regression tests
-
Commit Changes:
- Tests run automatically on commit (pre-commit hook)
- Build tests run automatically on push (pre-push hook)
Sites support multiple deployment environments:
- local - Development with local asset references (
http://localhost:300X) - preview - Staging environment for testing (
https://iflastandards.github.io/standards-dev/) - development - Development branch testing (
https://jonphipps.github.io/standards-dev/) - production - Live deployment environment (
https://www.iflastandards.info/)
Set environment with DOCS_ENV:
DOCS_ENV=production pnpm build:portalThe project uses a centralized configuration system that replaced environment files in December 2024. See Site Configuration Architecture for complete documentation on:
- Centralized configuration matrix in
@ifla/theme/config/siteConfig - Inter-site navigation with the
SiteLinkcomponent - Environment handling (local, preview, development, production)
- Migration notes and benefits of the new approach
- Adding new sites and troubleshooting
TESTING.md- Automated testing quick referencedeveloper_notes/- Comprehensive development guidesbuild-regression-testing.md- Complete testing strategyconfiguration-architecture.md- System architecturetesting-vocabulary-pages.md- Component testingnew-site-setup.md- Adding new standards
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
pnpm test:full - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- TypeScript compilation must pass (
pnpm typecheck) - ESLint rules must be followed (
pnpm lint) - All tests must pass (
pnpm test) - Build regression tests must pass
- Automated Testing: Runs on every PR and push
- Deploy All Sites: Manual workflow for production deployment
- Deploy Dev: Automatic deployment for development environment
# Check deployment status
pnpm deploy:status
# Trigger deployment
pnpm deploy- Docusaurus - Documentation platform
- IFLA - International Federation of Library Associations
This project is licensed under the ISC License.
Built with β€οΈ for the global library community