This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
# Development (auto-reload)
npm run dev
# Production
npm start
# Docker deployment (used with Traefik on production VM)
docker compose up -d --build# Export calendar events to markdown
node scripts/calendar-export-to-md.js
# Create calendar event from markdown file
node scripts/calendar-add-post-from-md.js events/your-event.mdThis is a Node.js/Express website for Hackerspace Gent (0x20).
Events are served from Markdown files via /api/events.json, parsed in server.js using gray-matter.
Client-side JS modules in public/js/modules/ handle loading, deduplication, and categorization of events.
Same pattern as events: markdown files in /projects/ with YAML frontmatter, parsed server-side, exposed via /api/projects.json, rendered by public/js/projects.js on /projects and views/project-detail.pug on /projects/:id. Only title is required; see /projects/README.md for the full field list.
Files in /events/ with YAML frontmatter:
- Required: title, date (ISO format with timezone)
- Optional:
end
Timezone: Always include Belgium timezone offset:
- Winter (late Oct → late Mar):
+01:00(CET) - Summer (late Mar → late Oct):
+02:00(CEST)
Examples:
# Winter event (January)
date: 2026-01-21T19:30:00+01:00
# Summer event (July)
date: 2026-07-15T20:00:00+02:00Pug templates in views/ with partials for head, header, footer. Each page has a corresponding client-side JS file in public/js/.