Skip to content
16 changes: 14 additions & 2 deletions scripts/leaderboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -707,6 +707,16 @@ def build_leaderboard(token=None):
return sorted_contributors, had_errors, levels_data


def _contributor_cell(login):
"""Return a pure-HTML table cell with avatar and username link."""
return (
f'<a href="https://github.com/{login}">'
f'<img src="https://avatars.githubusercontent.com/{login}?s=64"'
f' width="32" height="32" alt="{login}\'s avatar"><br>'
f"@{login}</a>"
Comment thread
jbampton marked this conversation as resolved.
Outdated
)


def generate_markdown(contributors, levels_data):
"""Generate a gamified markdown leaderboard from contributor data."""
rank_badges = {1: "🥇", 2: "🥈", 3: "🥉"}
Expand Down Expand Up @@ -767,8 +777,9 @@ def generate_markdown(contributors, levels_data):
commits_display += f" · 🤝 {coauthored}"
commits_display += f" · 📦 {repos_count}"

contributor_cell = _contributor_cell(login)
lines.append(
f"| {rank} | [@{login}](https://github.com/{login})"
f"| {rank} | {contributor_cell}"
f" | {level} | {rarity_display} | {commits_display}"
f" | {prog} | {streak_display}"
f" | {badges} | {points_display} |"
Expand Down Expand Up @@ -812,8 +823,9 @@ def generate_markdown(contributors, levels_data):
breakdown_parts.append(f"📁 {other_c}")
breakdown = " · ".join(breakdown_parts) if breakdown_parts else "—"

contributor_cell = _contributor_cell(login)
lines.append(
f"| {i} | [@{login}](https://github.com/{login})"
f"| {i} | {contributor_cell}"
f" | {first_date} | {last_date}"
f" | {days_active} | {cpd}"
f" | {breakdown} | Top {pctile}% |"
Expand Down