Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
348 changes: 191 additions & 157 deletions content/about/steering-committee/index.md

Large diffs are not rendered by default.

Binary file removed content/authors/adampartridge/avatar.webp
Binary file not shown.
Binary file removed content/authors/adiradaniel/avatar.webp
Binary file not shown.
Binary file not shown.
Binary file removed content/authors/berittbarthelmesmsc/avatar.webp
Binary file not shown.
Binary file removed content/authors/cassgheoghe/avatar.webp
Binary file not shown.
Binary file modified content/authors/charlotte-r-pennington/avatar.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed content/authors/charlottepennington/avatar.webp
Binary file not shown.
Binary file removed content/authors/dramandakaymontoya/avatar.webp
Binary file not shown.
Binary file removed content/authors/drflavioazevedo/avatar.webp
Binary file not shown.
Binary file removed content/authors/drjohnshaw/avatar.webp
Binary file not shown.
Binary file removed content/authors/drkellylloyd/avatar.webp
Binary file not shown.
Binary file removed content/authors/drlukaswallrich/avatar.webp
Binary file not shown.
Binary file removed content/authors/drmadeleinepownall/avatar.webp
Binary file not shown.
Binary file removed content/authors/drmaxkorbmacher/avatar.webp
Binary file not shown.
Binary file removed content/authors/drrachelheyard/avatar.webp
Binary file not shown.
Binary file removed content/authors/drsarahasauve/avatar.webp
Binary file not shown.
Binary file removed content/authors/drsarahashcroftjones/avatar.webp
Binary file not shown.
Binary file removed content/authors/drstevenverheyen/avatar.webp
Binary file not shown.
Binary file not shown.
Binary file removed content/authors/flavioazevedo/avatar.webp
Binary file not shown.
Binary file not shown.
Binary file removed content/authors/giorgiaandreolli/avatar.webp
Binary file not shown.
Binary file removed content/authors/justinsulik/avatar.webp
Binary file not shown.
9 changes: 5 additions & 4 deletions content/authors/karen-matvienko-sikar/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ title: "Karen Matvienko-Sikar"
superuser: false

# Role/position (e.g., Professor of Artificial Intelligence)
role:
role: "Co-Director (Fundraising)"

# Team/Subsection (for steering committee subsection grouping)
team: "Fundraising"

# Organizations/Affiliations
organizations:
Expand Down Expand Up @@ -52,7 +55,5 @@ email: ""
# Organizational groups that you belong to (for People widget)
# Set this to `[]` or comment out if you are not using People widget.
user_groups:
- ""
#- "Steering Committee"
#- "Code of Conduct Committee"
- "Operations"
---
Binary file modified content/authors/karen-matvienko-sikar/avatar.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 0 additions & 31 deletions content/authors/karen-matvienkosikar/_index.md

This file was deleted.

Binary file removed content/authors/karen-matvienkosikar/avatar.webp
Binary file not shown.
Binary file removed content/authors/karenmatvienkosikar/avatar.webp
Diff not rendered.
Binary file removed content/authors/lornahamilton/avatar.webp
Diff not rendered.
Binary file removed content/authors/meerachandra/avatar.webp
Diff not rendered.
Binary file removed content/authors/samparsons/avatar.webp
Diff not rendered.
Binary file removed content/authors/saralilmiddleton/avatar.webp
Diff not rendered.
Binary file removed content/authors/stephaniezellers/avatar.webp
Diff not rendered.
Binary file removed content/authors/thomasrhysevans/avatar.webp
Diff not rendered.
Binary file removed content/authors/tomheyman/avatar.webp
Diff not rendered.
37 changes: 31 additions & 6 deletions scripts/generate_sc_profiles.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,11 +247,11 @@
def normalize_name(name):
if pd.isna(name): return ""
name = str(name).strip()
name = re.sub(r'\\b(Dr|Dr\\.|Mr|Mr\\.|Ms|Ms\\.|Mrs|Prof|Prof\\.)\\s+', '', name, flags=re.IGNORECASE)
name = re.sub(r'\\*', '', name)
name = re.sub(r'\b(Dr|Dr\.|Mr|Mr\.|Ms|Ms\.|Mrs|Prof|Prof\.)\s+', '', name, flags=re.IGNORECASE)
name = re.sub(r'\*', '', name)
name = unicodedata.normalize('NFKD', name)
name = name.encode('ascii', 'ignore').decode('ascii')
name = re.sub(r'\\s+', ' ', name).strip()
name = re.sub(r'\s+', ' ', name).strip()
return name.lower()

def similarity(a, b):
Expand All @@ -269,10 +269,35 @@ def find_match(name, candidates, threshold=0.6):
best_match = candidate
return best_match

def find_existing_author_dir(personal_name, authors_dir):
"""Reuse an existing content/authors/<slug> folder for this person instead of minting
a new one. The same person's name can be spelled slightly differently across the SC
roster sheet, the personal-details form, and a pre-existing blog-post author folder
(extra/missing hyphen, "Dr" prefix, middle initial) — matching a fresh slug from
sanitize_filename() alone would create a duplicate directory every time one of those
sources disagrees with what's already on disk.
"""
normalized_target = normalize_name(personal_name)
best_match = None
best_score = 0.75
for existing_dir in authors_dir.iterdir():
if not existing_dir.is_dir():
continue
candidate = normalize_name(existing_dir.name.replace('-', ' '))
score = similarity(normalized_target, candidate)
if score > best_score:
best_score = score
best_match = existing_dir.name
return best_match

def sanitize_filename(name):
name = normalize_name(name)
name = re.sub(r'[^a-z0-9\\s]', '', name)
name = re.sub(r'\\s+', '-', name)
# Keep hyphens (e.g. "Matvienko-Sikar"): existing author folders are slugged with
# Hugo's urlize, which preserves hyphens already in the name. Stripping them produced
# a different slug than the real author folder for any hyphenated surname.
name = re.sub(r'[^a-z0-9\s-]', '', name)
name = re.sub(r'\s+', '-', name)
name = re.sub(r'-+', '-', name).strip('-')
return name

def get_initials(name):
Expand Down Expand Up @@ -468,7 +493,7 @@ def add_personal_entry(row, target, allow_overwrite=False):

# Handle image
img_url = ""
sanitized_name = sanitize_filename(personal_name)
sanitized_name = find_existing_author_dir(personal_name, AUTHORS_DIR) or sanitize_filename(personal_name)
author_dir = AUTHORS_DIR / sanitized_name
author_dir.mkdir(parents=True, exist_ok=True)
avatar_path = author_dir / "avatar.webp"
Expand Down
Loading