Source for the Developmental Cancer Genomics (Halbritter Lab) website at St. Anna Children's Cancer Research Institute (CCRI), Vienna — rebuilt as a static Astro site styled with Tailwind CSS, ready to deploy on GitHub Pages.
This repository is a GitHub user/organization Pages site
(cancerbits.github.io), so it is served from the domain root — no base
path or custom subpath configuration is needed.
npm install
npm run dev # http://localhost:4321
npm run build # type-checks + outputs static site to ./dist
npm run preview # serve ./dist locallyNode.js 20+ is recommended (matches the CI workflow).
.
├── .github/workflows/deploy.yml # builds & deploys to GitHub Pages on push to main
├── public/ # static assets copied as-is (images, favicon, robots.txt)
├── src/
│ ├── components/ # Header, Footer, PageBanner, PersonCard, PublicationItem, ...
│ ├── content/
│ │ ├── config.ts # Zod schemas for all content collections
│ │ ├── people/*.md # current team members
│ │ ├── publications/*.yaml # one file per paper/preprint
│ │ ├── funding/*.yaml # active grants
│ │ └── projects/*.yaml # highlighted past projects
│ ├── data/ # site.ts (nav/address/socials), alumni.ts, collaborators.ts
│ ├── layouts/ # BaseLayout.astro, PageLayout.astro
│ ├── pages/ # index, people/, research/, publications/, join/, contact/, 404
│ └── styles/global.css # Tailwind entrypoint + small component classes
├── scripts/gen_publications.py # provenance: script used to generate the publications/*.yaml
├── astro.config.mjs
├── tailwind.config.mjs
└── tsconfig.json
All editable content lives under src/content/ and src/data/ — no
component code needs to change for routine updates.
- New team member: add
src/content/people/<slug>.mdwith frontmatter matching thepeopleschema insrc/content/config.ts(name,role,photo,order,links). - New publication: add
src/content/publications/<slug>.yaml. Setsectiontopreprint,main, orotherto control which list it appears in, andorderto control position within that list.authorsHtmlaccepts<u>...</u>to mark lab members and<sup>...</sup>for equal-contribution symbols, matching the convention used throughout the existing entries. - New funding / past project: add a YAML file under
src/content/funding/orsrc/content/projects/respectively. - Nav, address, email, social links: edit
src/data/site.ts. - Alumni / collaborators: edit
src/data/alumni.ts/src/data/collaborators.ts.
Astro validates all of the above against the schemas in
src/content/config.ts at build time — a malformed entry will fail the
build with a clear error rather than silently breaking the page.
The included workflow (.github/workflows/deploy.yml) builds the site and
deploys it via GitHub's official Pages actions on every push to main. In
the repository settings, under Settings → Pages → Build and deployment,
set the source to GitHub Actions (not "Deploy from a branch").
No CNAME file is included since this is the default *.github.io domain;
add one under public/ if a custom domain is later configured.