Skip to content

Team: give every member a shareable permalink and a GitHub link - #905

Merged
wu-sheng merged 1 commit into
masterfrom
feat/team-member-permalinks
Aug 26, 2026
Merged

Team: give every member a shareable permalink and a GitHub link#905
wu-sheng merged 1 commit into
masterfrom
feat/team-member-permalinks

Conversation

@wu-sheng

Copy link
Copy Markdown
Member

Permalinks

Members had no way to link to themselves on /team. Every PMC and committer row now carries id="<apacheId>", and the name is the permalink:

  • /team/#wusheng scrolls to that person and highlights the row (ring, tint, blue name) for as long as the hash holds.
  • Clicking a name copies the absolute URL and shows a brief "Link copied" toast, which clears itself after 1.4s.
  • Clicking the row off the links selects it and updates the hash without copying.

That is the same partials/card-permalink.html hook the docs and downloads cards already use — the team page just loads it now.

The name doubles as the hook rather than getting a separate icon button: a reserved icon slot cost enough row width to wrap the longest name onto two lines. The chain glyph and the toast are both absolutely positioned, so the idle page renders pixel-for-pixel as it did before (verified by diffing full-page screenshots).

GitHub links

Adds a GitHub icon beside the existing Twitter one, for 43 of 61 members. There is no public ASF-to-GitHub mapping (Whimsy's public datasets don't carry it; gitbox needs auth), so every handle was derived from evidence and only accepted on a hard signal:

  • GitHub-verified commit authorshipcommits?author=<apacheId>@apache.org on the ASF repos, taking the login GitHub itself resolved the address to. Also personal commit emails where the git author name matched the roster name exactly.
  • login == apacheId, or login == the twitter handle already on file — confirmed by that account actually having commits in a SkyWalking repo.
  • Profile name matching the roster name, cross-checked the same way. Several of those profiles state "Apache SkyWalking Committer/PMC" in their bio.

The remaining 18 have no github: key and render no icon. Nothing was guessed. Anything unverifiable was left out rather than risk pointing at a stranger's profile:

PMC — ilucky liuhan daming tanjian linjiaqi wangkai lilang wangwenbin ywang
Committers — hoshea liujiapeng ypg xuqiang wangsheng kvn kdump liyuntao aderm

Adding github: <handle> to their line in data/committee.yml is all that's needed — the template picks it up. Two plausible-but-rejected: ilucky → IluckySi and aderm → adermxzs look derived from the Apache IDs, but neither account has SkyWalking commits or a matching profile name. Note also that GitHub's linjiaqi is 林佳奇, different characters from committer 林嘉琦.

Row layout

The second icon initially wrapped the longest name ("Sheng Wu (Project V.P.)", carrying both icons) onto two lines, which made its whole grid band taller. Reclaimed by tightening the row internals — meta gap 8→5px, apacheId 11→10px, row padding 12→10px — and sizing the hook at 11px. All 61 rows stay a uniform 42px, and the tightest row clears the hook by 5px. That budget is noted in the SCSS so a longer name added later doesn't silently collide.

Drive-by fix to the shared hook

card-permalink.html called history.replaceState before setting location.hash. replaceState rewrites the URL without moving the document's target element, so the follow-up assignment had nothing left to change and :target never applied — clicking a card on /downloads or /docs copied the right link but highlighted nothing. Landing on a URL that already carried the hash was always fine; only the in-page click path was broken. Driving a real browser confirmed it was broken on both pages before and works after.

Verification

Built with Hugo and driven headless: click copies the correct absolute URL, :target applies, a repeat click re-asserts it, row-body clicks select without copying, and /downloads + /docs now highlight on click. Row geometry measured across all 61 rows for wrapping and hook/ID collisions. Checked at 1440px and 414px.

Members had no way to link to themselves on /team. Each PMC and committer
row now carries id="<apacheId>", and the name is the permalink: /team/#wusheng
scrolls to that person and holds a highlight while the hash does. Clicking a
name copies the absolute URL; clicking the row selects it without copying —
the same hook the docs and downloads cards already use.

The name doubles as the hook rather than a separate icon button because a
reserved icon slot cost enough row width to wrap the longest name onto two
lines. The chain glyph and the copied toast are both absolutely positioned,
so the idle page renders pixel-for-pixel as it did before.

Also adds a GitHub icon beside the existing Twitter one, for the 43 of 61
members whose handle could be established from evidence:

  - commits authored under <apacheId>@apache.org, taking the login GitHub
    itself resolved the address to
  - login equal to the apacheId or to the twitter handle already on file,
    confirmed by that account having commits in a SkyWalking repo
  - a profile name matching the roster name, cross-checked the same way

The remaining 18 have no github: key and render no icon; nothing was guessed.
There is no public ASF-to-GitHub mapping to lean on, so anything unverifiable
was left out rather than risk pointing at a stranger's profile.

The second icon initially wrapped the longest name, so the row internals are
tightened (meta gap 8->5px, apacheId 11->10px, padding 12->10px) and the hook
is 11px. All 61 rows stay a uniform 42px and the tightest row clears the hook
by 5px; that budget is noted in the SCSS.

Fixes a pre-existing bug in the shared hook while here: it called
history.replaceState before setting location.hash. replaceState rewrites the
URL without moving the document's target element, leaving the assignment with
nothing to change, so :target never applied and clicking a card on /downloads
or /docs copied the right link but highlighted nothing. Landing on a URL that
already carried the hash was always fine; only the in-page click path broke.
@netlify

netlify Bot commented Aug 26, 2026

Copy link
Copy Markdown

Deploy Preview for skywalking-website-preview failed.

Name Link
🔨 Latest commit c7ac2d4
🔍 Latest deploy log https://app.netlify.com/projects/skywalking-website-preview/deploys/6a8ebf03fb624e00088f7224

@wu-sheng
wu-sheng merged commit da184ac into master Aug 26, 2026
1 of 5 checks passed
@wu-sheng
wu-sheng deleted the feat/team-member-permalinks branch August 26, 2026 10:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant