Skip to content
xedotnetPublic

Latest commit

 

History

121 Commits

Folders and files

Repository files navigation

XeDotNet

XeDotNet's static website, built with Astro and validated at build time.

Development

npm ci
npm run dev

The main commands are:

  • npm run check: run TypeScript and Astro checks.
  • npm run schemas: generate the JSON Schemas used by the editor from the Zod schemas.
  • npm test: run unit tests.
  • npm run build: create a complete static build.
  • npm run test:e2e: run browser and accessibility tests.
  • npm run migrate -- --membership-year=2026: recreate events, people, and the migration report from the previous website.

To enable the contact form, copy .env.example to .env and set PUBLIC_CONTACT_FORM_ACTION to the public Formspree endpoint. If the endpoint is not configured, the site displays a working email link instead.

Configure the public address with SITE_URL, including any subdirectory; for example, https://xedotnet.github.io/website/. The build uses this single value for assets, navigation, canonical URLs, the sitemap, and robots.txt. The GitHub Pages workflow detects the value automatically; the SITE_URL repository variable can override it when the domain changes. To switch to the final domain, configure it in the GitHub Pages settings—no code changes are required.

Content

  • Event Markdown: src/data/events/<year>/<date>-<event-name>.md (for example, 2026/2026-04-10-blazorconf2026.md)
  • Annual membership lists: src/data/memberships/<year>.json
  • People Markdown: src/data/people/ (metadata in the YAML frontmatter and biography in the body)
  • Page Markdown: src/data/pages/
  • Shared configuration and data: src/data/*.json

For the annual membership update, follow Gestione annuale dei soci.

Browser-agent tool contracts, availability, and verification are documented in WebMCP tools.

Schemas are defined in src/content-schemas.ts and connected to the content collections in src/content.config.ts. An invalid entry causes the build to fail. The JSON Schemas in schemas/ are regenerated automatically before each build; editor completion mappings are configured in .vscode/settings.json.

Releases

Packages

Used by

Contributors

Languages