leaderboard: port to Pyserini-2cr-inspired layout with in-place reproduce panels#30
Merged
Merged
Conversation
…duce panels Rewrite the home matrix and per-X pages (datasets/methods/models/retrievers) on a new `.lb-*` table layout: sticky two-row thead + sticky axis cols, segmented metric control (Both/nDCG/Recall), grouped dataset multi-select dropdown, two-level dataset/metric header, expandable rows with tabbed reproduce panels (one per dataset) that render the three-step pipeline (reformulate → retrieve → evaluate) inline. Clicking a row replaces a navigation to `/runs/[id]` with copy-ready commands in place. - Add `src/lib/reproduce.ts` to centralize the three-step command generation shared by every expand panel. - Single-scrollbar layout: `Default.astro` body is fixed-viewport flex column, table card fills the remaining space, only the inner table scrolls. Sticky thead anchors to the scroll container's top. - Shared `Header.astro` / `Footer.astro` widened to `w-[90%]` so the leaderboard can use the full viewport. - Remove unused `InteractiveTable.astro`, `FilterChips.astro`, `MatrixCell.astro` and the `.qg-table-card` / `.qg-axis-*` / `.qg-cell-best` / `.qg-itable` CSS blocks they backed. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rewrite the home matrix and every per-X page (datasets / methods / models / retrievers) on a new
.lb-*table layout. The headline change: clicking any row expands an in-place reproduce panel with the three pipeline commands (reformulate → retrieve → evaluate), replacing the previous "click a cell to navigate to/runs/[id]" flow with copy-ready commands you can grab without leaving the leaderboard.What changed
.lb-*namespace): sticky two-row thead + sticky axis cols (rowspan-merged so axis labels are vertically centered), segmented metric control[Both | nDCG | Recall], grouped dataset multi-select dropdown (BEIR / MS MARCO DL with all/none shortcuts), inline sort arrows that don't shift column geometry, best-in-column pink highlight, expandable rows with tabbed reproduce panels.src/lib/reproduce.ts: sharedbuildReproduceCmds(run)helper that emits the 3-step pipeline from a run summary. Used by every per-X expand panel; also the right place to refactor/runs/[id].astrotoward.Default.astrobody isflex h-screen flex-col overflow-hidden, main isflex-1 min-h-0 overflow-y-auto, table card isflex: 1 min-h: 0(no fixed height). Page never scrolls — only the table's inner scroll shows.@qg/sharedHeader + Footer widened tow-[90%]so all sites that use the shared layout get more horizontal room.InteractiveTable.astro,FilterChips.astro,MatrixCell.astro, and the.qg-table-card/.qg-axis-*/.qg-cell-best/.qg-itableCSS blocks they backed.Page sizes
/(home matrix, 120 rows × 9 datasets)/methods/{id}(~12 rows × 9 datasets)/models/{id}(~30 rows × 9 datasets)/retrievers/{id}(~40 rows × 9 datasets)/datasets/{id}(~120 rows × 2 metrics)Server-rendering all expand panels inline keeps the click-to-expand interaction zero-fetch. If a future page grows past comfortable gzipped weight, lazy-rendering via a JSON lookup table is a follow-up.
Test plan
/): sticky two-row thead + sticky axis cols hold up under both vertical (page-scroll) and horizontal (inner-scroll) movementBoth/nDCG/Recall) collapses/expands columns without misalignment; Datasets dropdown hides whole column groups including tabs in expanded panels/methods/csqe,/models/openai__gpt-4.1,/retrievers/bm25: same behavior with one fewer axis col/datasets/beir-v1.0.0-scifact: single-row thead, no per-dataset tabs (one run per row), sort works by column index🤖 Generated with Claude Code