diff --git a/README.md b/README.md index 8418d67..bb1c17b 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,10 @@ One or two sentences of bio. The `email` field drives the profile photo via [Gravatar](https://gravatar.com). If no email is set, a placeholder avatar is shown. +**Alumni** — set `role: Alumni` to move someone out of the Team grid and into the +simple "Alumni" list at the bottom of the People section (just their name, linked to +`website` if set). + --- ## Publishing your changes diff --git a/assets/banner.png b/assets/banner.png deleted file mode 100644 index 4e81e4a..0000000 Binary files a/assets/banner.png and /dev/null differ diff --git a/assets/banner.webp b/assets/banner.webp new file mode 100644 index 0000000..01d7d40 Binary files /dev/null and b/assets/banner.webp differ diff --git a/build.py b/build.py index 27955e6..8e35e02 100644 --- a/build.py +++ b/build.py @@ -274,6 +274,23 @@ def flush_para() -> None: return "\n".join(parts) +def render_alumni(alumni: list[Collaborator]) -> str: + if not alumni: + return "" + + items = [] + for a in alumni: + if a.website: + items.append( + f'
  • {html.escape(a.name)}
  • ' + ) + else: + items.append(f'
  • {html.escape(a.name)}
  • ') + + return "\n".join(items) + + def render_collaborators(collaborators: list[Collaborator]) -> str: if not collaborators: return "

    No collaborators found.

    " @@ -378,6 +395,15 @@ def render_collaborators(collaborators: list[Collaborator]) -> str: """ +_ALUMNI_SECTION = """\ +
    +
    People
    +

    Alumni

    + +
    """ + def build_projects_html(projects: list[Project]) -> str: return _PROJECTS_SECTION.format(cards=render_projects(projects)) @@ -387,6 +413,12 @@ def build_collaborators_html(collaborators: list[Collaborator]) -> str: return _COLLABORATORS_SECTION.format(cards=render_collaborators(collaborators)) +def build_alumni_html(alumni: list[Collaborator]) -> str: + if not alumni: + return "" + return _ALUMNI_SECTION.format(items=render_alumni(alumni)) + + # ── Injection ───────────────────────────────────────────────────────────────── def inject(html_text: str, key: str, content: str) -> str: @@ -432,17 +464,23 @@ def main() -> None: if not projects_source.exists(): sys.exit(f"[build] Error: neither {data_dir / 'projects'} nor {data_dir / 'projects.md'} found") - collaborators = parse_collaborators(team_source) + all_collaborators = parse_collaborators(team_source) projects = parse_projects(projects_source) + alumni = [c for c in all_collaborators if c.role.lower() == "alumni"] + collaborators = [c for c in all_collaborators if c.role.lower() != "alumni"] + proj_html = build_projects_html(projects) collab_html = build_collaborators_html(collaborators) + alumni_html = build_alumni_html(alumni) if args.check: print("── Projects ─────────────────────────────────") print(proj_html) print("\n── Collaborators ────────────────────────────") print(collab_html) + print("\n── Alumni ────────────────────────────────────") + print(alumni_html) return index = Path(args.output) @@ -452,10 +490,12 @@ def main() -> None: text = index.read_text() text = inject(text, "projects", proj_html) text = inject(text, "collaborators", collab_html) + text = inject(text, "alumni", alumni_html) index.write_text(text) - print(f"[build] Wrote {len(projects)} project(s) and " - f"{len(collaborators)} collaborator(s) into {index}") + print(f"[build] Wrote {len(projects)} project(s), " + f"{len(collaborators)} collaborator(s), and " + f"{len(alumni)} alumnus/alumna(e) into {index}") if __name__ == "__main__": diff --git a/data/team/07-dion-osmani.md b/data/team/07-dion-osmani.md index d1f2f59..8aa3272 100644 --- a/data/team/07-dion-osmani.md +++ b/data/team/07-dion-osmani.md @@ -1,5 +1,5 @@ ## Dion Osmani -role: Research Assistant +role: Alumni website: https://dionosmani.vercel.app/ email: dion.osmani@hevs.ch interests: Dynamical Systems, Optimization diff --git a/data/team/10-hiten-goel.md b/data/team/10-hiten-goel.md new file mode 100644 index 0000000..d4732dd --- /dev/null +++ b/data/team/10-hiten-goel.md @@ -0,0 +1,3 @@ +## Hiten Goel +role: Alumni +website: https://www.linkedin.com/in/hiten-goel-003599250/ diff --git a/index.html b/index.html index 33060a4..7023dab 100644 --- a/index.html +++ b/index.html @@ -4,6 +4,7 @@ SIMLab – Scientific and Industrial Machine Learning Laboratory +