Skip to content
Merged
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
170 changes: 86 additions & 84 deletions src/_data/navigation.yml
Original file line number Diff line number Diff line change
@@ -1,91 +1,93 @@
main:
- title: "Search"
url: index.html
- title: "Ranking"
- title: Search
url: index.html
- title: Ranking
url: combined_rankings.html
children:
- title: Author Ranking
url: combined_rankings.html
children:
- title: "Author Ranking"
url: combined_rankings.html
- title: "Institution Ranking"
url: institution_rankings.html
- title: "Systems vs. Security"
url: overview.html
- title: "Geographic Statistics"
url: statistics/
- title: "Profiles"
url: profile.html
- title: "Security"
- title: Institution Ranking
url: institution_rankings.html
- title: Systems vs. Security
url: overview.html
- title: Geographic Statistics
url: statistics/
- title: Profiles
url: profile.html
- title: Security
url: security/
children:
- title: Overview
url: security/
children:
- title: "Overview"
url: security/
- title: "ACSAC"
url: security/acsac.html
- title: "CHES"
url: security/ches.html
- title: "NDSS"
url: security/ndss.html
- title: "IEEE S&P"
url: security/sp.html
- title: "PETS"
url: security/pets.html
- title: "SysTEX"
url: security/systex.html
- title: "USENIX Security"
url: security/usenixsec.html
- title: "WOOT"
url: security/woot.html
- title: "Systems"
- title: ACSAC
url: security/acsac.html
- title: CHES
url: security/ches.html
- title: IEEE S&P
url: security/sp.html
- title: NDSS
url: security/ndss.html
- title: PETS
url: security/pets.html
- title: SysTEX
url: security/systex.html
- title: USENIX Security
url: security/usenixsec.html
- title: USENIX VehicleSec
url: security/vehiclesec.html
- title: WOOT
url: security/woot.html
- title: Systems
url: systems/
children:
- title: Overview
url: systems/
children:
- title: "Overview"
url: systems/
- title: "ATC"
url: systems/atc.html
- title: "CAIS"
url: systems/cais.html
- title: "EuroSys"
url: systems/eurosys.html
- title: "FAST"
url: systems/fast.html
- title: "OSDI"
url: systems/osdi.html
- title: "SC"
url: systems/sc.html
- title: "SOSP"
url: systems/sosp.html
- title: "AE Committees"
- title: ACM CAIS
url: systems/cais.html
- title: EuroSys
url: systems/eurosys.html
- title: OSDI
url: systems/osdi.html
- title: SC
url: systems/sc.html
- title: SOSP
url: systems/sosp.html
- title: USENIX ATC
url: systems/atc.html
- title: USENIX FAST
url: systems/fast.html
- title: AE Committees
url: committee.html
children:
- title: Overview
url: committee.html
children:
- title: "Overview"
url: committee.html
- title: "Ranking"
url: combined_rankings.html?contrib=ae
- title: "Chair Statistics"
url: ae_chairs.html
- title: "Systems Statistics"
url: systems/committee.html
- title: "Security Statistics"
url: security/committee.html
- title: "Repository Stats"
- title: Ranking
url: combined_rankings.html?contrib=ae
- title: Chair Statistics
url: ae_chairs.html
- title: Systems Statistics
url: systems/committee.html
- title: Security Statistics
url: security/committee.html
- title: Repository Stats
url: repo_stats.html
children:
- title: Overview
url: repo_stats.html
children:
- title: "Overview"
url: repo_stats.html
- title: "Systems"
url: systems/repo_stats.html
- title: "Security"
url: security/repo_stats.html
- title: "Methodology"
url: methodology.html
- title: "Contribute"
- title: Systems
url: systems/repo_stats.html
- title: Security
url: security/repo_stats.html
- title: Methodology
url: methodology.html
- title: Contribute
url: about.html
children:
- title: Overview
url: about.html
children:
- title: "Overview"
url: about.html
- title: "Repositories"
url: https://github.com/reprodb
- title: "Documentation"
url: https://reprodb.github.io/reprodb-pipeline/
- title: "Data Schemas"
url: https://reprodb.github.io/data-schemas/
- title: Repositories
url: https://github.com/reprodb
- title: Documentation
url: https://reprodb.github.io/reprodb-pipeline/
- title: Data Schemas
url: https://reprodb.github.io/data-schemas/
4 changes: 2 additions & 2 deletions src/_includes/head/custom.html
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@
Note: unsafe-eval is required by Alpine.js for expression evaluation. -->
<meta http-equiv="Content-Security-Policy"
content="default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn.jsdelivr.net;
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn.jsdelivr.net https://www.googletagmanager.com;
style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://fonts.googleapis.com;
font-src 'self' https://cdn.jsdelivr.net https://fonts.gstatic.com data:;
img-src 'self' data: https:;
connect-src 'self' https://cdn.jsdelivr.net;
connect-src 'self' https://cdn.jsdelivr.net https://www.google-analytics.com https://analytics.google.com https://www.googletagmanager.com;
object-src 'none';
base-uri 'self';
form-action 'self'">
Expand Down
8 changes: 8 additions & 0 deletions src/assets/css/reprodb-profile.css
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,13 @@
.role-artifact { background:#2980b9; }
.role-evaluation { background:#27ae60; }

/* Chair-star indicator used in author/institution profile cards and tables. */
.chair-stars {
color: #d18c00;
letter-spacing: 0.02em;
white-space: nowrap;
}

/* ── Unified search result type labels ─────────────────────────────────── */
.sr-type { display:inline-block; padding:1px 6px; border-radius:3px; font-size:0.72em; color:#fff; margin-right:6px; vertical-align:middle; }
.sr-type-author { background:#2980b9; }
Expand Down Expand Up @@ -180,3 +187,4 @@ html[data-theme="dark"] .ae-detail-row td,
html[data-theme="dark"] .ae-detail-row:hover { background: #23272d; }
html[data-theme="dark"] .ranking-history-details summary::before { color: #aab0b8; }
html[data-theme="dark"] .avail-warn { color: #f0c040; background: #332b00; border-color: #665500; }
html[data-theme="dark"] .chair-stars { color: #f5c44c; }
10 changes: 7 additions & 3 deletions src/assets/js/reprodb-profile-page.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@
}
c += card(p.artifact_count, 'Artifacts') + card(p.total_papers, 'Total Papers') + card(p.artifact_pct + '%', 'Artifact Rate');
if (p.ae_memberships) c += card(p.ae_memberships, 'AE Memberships');
if (p.chair_count) c += card(p.chair_count, 'Chair Roles');
if (p.chair_count) c += card(P.chairDisplayAuthor(p.chair_count), 'Chair Roles');
document.getElementById('score-cards').innerHTML = c;

// Papers table
Expand Down Expand Up @@ -252,7 +252,7 @@
c += card((inst.artifact_pct || 0) + '%', 'Artifact Rate');
var reproRate = inst.artifact_count > 0 ? Math.round(((inst.badges_reproducible || 0) / inst.artifact_count) * 100) : 0;
c += card(reproRate + '%', 'Repro Rate') + card(inst.ae_memberships || 0, 'AE Memberships');
if (inst.chair_count) c += card(inst.chair_count, 'Chair Roles');
if (inst.chair_count) c += card(P.chairDisplayInstitution(inst.chair_count), 'Chair Roles');
if (inst._denseRank) {
c += card('#' + inst._denseRank, 'Rank');
} else if (instHistory.length >= 2) {
Expand Down Expand Up @@ -287,7 +287,11 @@
{ title: 'Artifacts', field: 'artifact_count', sorter: 'number' },
{ title: 'Papers', field: 'total_papers', sorter: 'number' },
{ title: 'AE Svc', field: 'ae_memberships', sorter: 'number' },
{ title: 'Chair', field: 'chair_count', sorter: 'number', formatter: function(cell) { var v = cell.getValue(); return v ? v + ' \u2605' : ''; } }
{ title: 'Chair', field: 'chair_count', sorter: 'number', formatter: function(cell) {
var v = Number(cell.getValue()) || 0;
if (!v) return '';
return P.chairDisplayAuthor(v);
} }
]
});
} else {
Expand Down
24 changes: 24 additions & 0 deletions src/assets/js/reprodb-profile.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,28 @@ var ReproDBProfile = (function() {
return '<div class="rdb-card"><div class="rdb-card-value">' + value + '</div><div class="rdb-card-label">' + label + '</div></div>';
}

function renderStars(n) {
var count = Number(n) || 0;
if (count <= 0) return '';
return Array(count + 1).join('\u2605');
}

// Author profile: direct one-star-per-chair mapping.
function chairDisplayAuthor(chairCount) {
var chairs = Number(chairCount) || 0;
if (chairs <= 0) return '0';
return chairs + ' <span class="chair-stars" aria-label="' + chairs + ' chair roles">' + renderStars(chairs) + '</span>';
}

// Institution profile: compressed mapping to reduce skew.
// Formula: stars = max(1, floor(chair_count / 2)), so 1->1, 2->1, 3->1, 4->2, 5->2.
function chairDisplayInstitution(chairCount) {
var chairs = Number(chairCount) || 0;
if (chairs <= 0) return '0';
var stars = Math.max(1, Math.floor(chairs / 2));
return chairs + ' <span class="chair-stars" aria-label="' + stars + ' stars from ' + chairs + ' chair roles">' + renderStars(stars) + '</span>';
}

/**
* Initialise search/autocomplete, share button, and URL management.
*
Expand Down Expand Up @@ -230,6 +252,8 @@ var ReproDBProfile = (function() {
cleanName: cleanName,
badgeHtml: badgeHtml,
card: card,
chairDisplayAuthor: chairDisplayAuthor,
chairDisplayInstitution: chairDisplayInstitution,
initSearch: initSearch,
parseAEEntry: parseAEEntry,
renderHistoryChart: renderHistoryChart
Expand Down