From 92f89a6d17dc9749506e6b22aef16db064fb6fa6 Mon Sep 17 00:00:00 2001 From: Gregory Mermoud Date: Tue, 7 Apr 2026 09:06:02 +0200 Subject: [PATCH] Add links to portfolio and website for each lab member --- .gitignore | 1 + CLAUDE.md | 5 +++++ build.py | 23 +++++++++++++++++++++-- data/team/01-gregory-mermoud.md | 6 ++++-- index.html | 18 ++++++++++++++++++ 5 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 .gitignore create mode 100644 CLAUDE.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..cf7ed2f --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,5 @@ +This is a simple static website built from a combination of Markdown and HTML. + +The script `build.py` parses Markdown files in the `data/team` and `data/projects` +directories and generate HTML sections based on their content. Check the header of +`build.py` for more details. diff --git a/build.py b/build.py index d5093fc..27955e6 100644 --- a/build.py +++ b/build.py @@ -50,6 +50,7 @@ class Collaborator: title: str = "" affiliation: str = "" website: str = "" + portfolio: str = "" email: str = "" picture: str = "" interests: str = "" @@ -60,7 +61,7 @@ class Collaborator: _KNOWN_FIELDS = { "funding", "period", "partners", "website", "github", "status", - "role", "title", "affiliation", "email", "picture", "interests", + "role", "title", "affiliation", "email", "picture", "interests", "portfolio", } def _parse_entries(text: str) -> list[dict]: @@ -87,7 +88,7 @@ def _parse_entries(text: str) -> list[dict]: # Try key: value field m = re.match(r'^([a-zA-Z_]+)\s*:\s*(.*)$', line) if m and m.group(1).lower() in _KNOWN_FIELDS: - current[m.group(1).lower()] = m.group(2).strip() + current[m.group(1).lower()] = m.group(2).strip().strip("<>") else: current["_body_lines"].append(raw_line) @@ -133,6 +134,7 @@ def parse_collaborators(source: Path) -> list[Collaborator]: title=e.get("title", ""), affiliation=e.get("affiliation", ""), website=e.get("website", ""), + portfolio=e.get("portfolio", ""), email=e.get("email", ""), picture=e.get("picture", ""), interests=e.get("interests", ""), @@ -325,6 +327,22 @@ def render_collaborators(collaborators: list[Collaborator]) -> str: bio = _render_bio(c.bio) + links = [] + if c.website: + links.append( + f'Website →' + ) + if c.portfolio: + links.append( + f'Portfolio →' + ) + links_html = ( + f'' + if links else "" + ) + cards.append(f"""\
{avatar} @@ -333,6 +351,7 @@ def render_collaborators(collaborators: list[Collaborator]) -> str: {interests_html} {subtitle} {bio} + {links_html}
""") diff --git a/data/team/01-gregory-mermoud.md b/data/team/01-gregory-mermoud.md index 75646d3..6073a1b 100644 --- a/data/team/01-gregory-mermoud.md +++ b/data/team/01-gregory-mermoud.md @@ -1,8 +1,10 @@ ## Gregory Mermoud + role: Director title: Prof. Dr. -email: gregory.mermoud@hevs.ch -website: https://gregorymermoud.ch +email: +website: +portfolio: interests: Hybrid Modeling, Differential Programming, Uncertainty Quantification, Dynamical Systems Gregory Mermoud is a professor at HES-SO Valais-Wallis and director of SIMLab. His research focuses on the intersection of physics-based modeling and machine learning, with an emphasis on developing interpretable and uncertainty-aware models for real-world engineering problems. diff --git a/index.html b/index.html index 9c19a49..55e8655 100644 --- a/index.html +++ b/index.html @@ -330,6 +330,17 @@ .proj-link-sep { color: var(--border); } + .collab-link { + font-size: 0.83rem; + font-weight: 600; + color: var(--accent); + text-decoration: none; + } + + .collab-link:hover { text-decoration: underline; } + + .collab-links { margin-top: 0.5rem; } + /* ── Collaborators grid ── */ .collab-grid { display: grid; @@ -651,6 +662,7 @@

Prof. Dr.
Hybrid ModelingDifferential ProgrammingUncertainty QuantificationDynamical Systems
Director

Gregory Mermoud is a professor at HES-SO Valais-Wallis and director of SIMLab. His research focuses on the intersection of physics-based modeling and machine learning, with an emphasis on developing interpretable and uncertainty-aware models for real-world engineering problems.

+
Senior Scientist

Cedric Travelletti is a senior scientist at SIMLab specialising in probabilistic machine learning and spatial statistics. His work addresses inverse problems in geosciences, with a focus on scalable Gaussian process methods and uncertainty quantification for large-scale environmental applications.

+
@@ -669,6 +682,7 @@

Glory Givi

Machine LearningExplainable AIScientific Computing
Postdoc
+
@@ -693,6 +708,7 @@

Alexandre Veuthey

Machine LearningComputer VisionComputer Graphics
Research Engineer

Alexandre Veuthey is a research engineer whose work at HES-SO and SIMLab focuses on the practical applications of Machine Learning for Computer Vision, particularly at the intersection of the 2D and 3D vision modalities. His prior experience in an industrial context enables data-driven solutions for vision tools based on cameras and other sensors.

+
@@ -702,6 +718,7 @@

Marta Rende

Assistant
+