Source for proteus-framework.org, the landing site for the PROTEUS coupled planet evolution framework. It introduces the project and links its documentation, modules, publications, and team together.
Built with Astro and published to GitHub Pages.
| Path | What it does |
|---|---|
src/pages/ |
One .astro file per page (home, modules, demos, validation, publications, people, license, 404) |
src/layouts/Base.astro |
Shared HTML shell: head metadata, theme detection, fonts, stylesheet, analytics, SEO |
src/components/ |
Reusable pieces: Header.astro (navbar), Footer.astro, Socials.astro |
src/data/settings.js |
Central config: site title, navigation menu, footer links, social links, favicons, SEO defaults |
public/assets/img/faces/ |
Team photos (JPG, 600x600) |
public/assets/img/ |
Other images (hero, logos, illustrations, icons) |
public/assets/styles/styles.css |
Compiled stylesheet (Bootstrap 4 base plus the custom theme) |
public/assets/js/ |
Vendor JavaScript for the navbar, dropdowns, and tooltips |
data/test_counts.yml |
Module test-count and badge data used by the coverage-badge workflow |
.github/workflows/deploy.yml |
Builds the site and publishes it to GitHub Pages |
.github/workflows/refresh-coverage-badges.yml |
Refreshes the coverage badges shown on the validation page |
Editing guidance for contributors and coding assistants lives in .github/copilot-instructions.md (with CLAUDE.md and GEMINI.md as symlinks to it).
- Create a branch from
main. - Make your changes.
- Preview locally (see below).
- Open a pull request.
- Once merged into
main, GitHub Actions rebuilds and publishes the site automatically.
Edit page text: open the relevant file in src/pages/ (for example publications.astro or modules.astro) and edit the HTML content.
Add or update a team member: edit src/pages/people.astro. Copy an existing card block and update the name, role, photo path, links, and research topics. Photos go in public/assets/img/faces/ as JPG, ideally 600x600, cropped so the face sits near the top.
Change navigation, footer, or social links: edit src/data/settings.js.
Change styling: the site serves the compiled stylesheet public/assets/styles/styles.css, which defines the dark and light themes through CSS custom properties (for example var(--accent)).
Add a publication: edit src/pages/publications.astro; the entry template and link ordering are documented in .github/copilot-instructions.md.
Update the validation table's coverage data: edit data/test_counts.yml, then run the "Refresh coverage badges" workflow once so the badge endpoints exist.
Requires Node 20 or newer.
npm install # first time only
npm run dev # start the dev server at http://localhost:4321The dev server reloads automatically as you edit. To reproduce the production build:
npm run build # output written to dist/
npm run preview # serve the built site locallyEvery push to main triggers the Build and deploy site workflow, which builds the site with Node and publishes dist/ to GitHub Pages. The custom domain is set by public/CNAME.
- Styling: a compiled Bootstrap 4 stylesheet with a custom theme layer, served with the vendor scripts as static assets under
public/assets/. - Dark and light mode: dark is the default. The sun/moon button in the navbar toggles it; the preference is stored in
localStorageand falls back toprefers-color-scheme. - Images: team photos are JPG for broad browser support. New photos should be 600x600 with the face near the top so the card crop keeps it in frame.
- Publications: maintained as a static list in
src/pages/publications.astro. - Coverage badges:
refresh-coverage-badges.ymlreadsdata/test_counts.yml, queries Codecov once a day, and publishes shields.io endpoint files to thebadgesbranch. The validation page renders those by URL, so a badge never depends on Codecov being reachable at page load.
The site content and configuration are released under the MIT License (LICENSE). The bundled visual theme is used under its own license (THEME-LICENSE.md).