Skip to content

Commit 408296b

Browse files
committed
update html
1 parent bab03db commit 408296b

File tree

1 file changed

+48
-44
lines changed

1 file changed

+48
-44
lines changed

omnigirl_leaderboard.html

Lines changed: 48 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -201,56 +201,60 @@ <h3>🙏 Acknowledgements</h3>
201201

202202
<!-- 渲染脚本:与之前一致 -->
203203
<script>
204-
const tbody = document.getElementById("leaderboard-body");
205-
const radios = document.querySelectorAll('input[name="langradio"]');
206-
const xhr = new XMLHttpRequest();
207-
xhr.open("GET", "results/results.json", false);
208-
xhr.send();
209-
if (xhr.status !== 200) {
210-
alert("Failed to load results.json");
211-
}
212-
const raw = Object.values(JSON.parse(xhr.responseText));
213-
const keyMap = {
214-
full: "%resolved_full",
215-
python: "%resolved_python",
216-
java: "%resolved_java",
217-
javascript: "%resolved_javascript",
218-
typescript: "%resolved_typescript"
219-
};
204+
(async () => {
205+
/* 1. 读取结果文件 */
206+
const res = await fetch('results/results.json');
207+
if (!res.ok) { alert('Failed to load results.json'); return; }
208+
const raw = Object.values(await res.json());
220209

221-
function render(lang) {
222-
tbody.innerHTML = "";
223-
const k = keyMap[lang];
224-
raw.filter(r => r[k] != null)
225-
.sort((a, b) => b[k] - a[k])
226-
.forEach((r, i) => {
227-
const medal = i === 0 ? "🥇 " : i === 1 ? "🥈 " : i === 2 ? "🥉 " : "";
210+
/* 2. 各语言字段名 —— 按你的 results.json 来改 */
211+
const keyMap = {
212+
full: '%resolved_full',
213+
python: '%resolved_python',
214+
java: '%resolved_java',
215+
javascript: '%resolved_javascript',
216+
typescript: '%resolved_typescript'
217+
};
228218

229-
// 读 org_icon 和 site_url
230-
const orgIcon = r.org_icon
231-
? `<img src="${r.org}" alt="org" style="height:1.5em;margin:0.2em 0;">`
232-
: "-";
219+
const tbody = document.getElementById('leaderboard-body');
220+
const radios = document.querySelectorAll('input[name="langradio"]');
233221

234-
const siteLink = r.site_url
235-
? `<a href="${r.site}" target="_blank" style="text-decoration:none;">🔗</a>`
236-
: "-";
222+
/* 百分比显示工具 */
223+
const toPercent = v => v == null ? '--'
224+
: (v < 1 ? v * 100 : v).toFixed(1) + '%';
237225

238-
tbody.insertAdjacentHTML("beforeend", `
239-
<tr>
240-
<td>${medal}${r.method}</td>
241-
<td>${r.model}</td>
242-
<td class="text-center">${(r[k] * 100).toFixed(1)}%</td>
243-
<td class="text-center">${orgIcon}</td>
244-
<td class="text-center">${siteLink}</td>
245-
<td class="text-center">${r.date}</td>
246-
</tr>
247-
`);
248-
});
249-
}
226+
function render(lang) {
227+
const k = keyMap[lang];
228+
tbody.innerHTML = '';
229+
230+
raw.filter(r => r[k] != null)
231+
.sort((a, b) => b[k] - a[k])
232+
.forEach((r, i) => {
233+
const medal = i === 0 ? '🥇 ' : i === 1 ? '🥈 '
234+
: i === 2 ? '🥉 ' : '';
235+
const orgIcon = r.org ? `<img src="${r.org}" style="height:1.5em;">` : '-';
236+
const siteLink = r.site ? `<a href="${r.site}" target="_blank">🔗</a>` : '-';
250237

251-
render("full");
252-
radios.forEach(r => r.addEventListener("change", () => r.checked && render(r.value)));
238+
tbody.insertAdjacentHTML('beforeend', `
239+
<tr>
240+
<td>${medal}${r.method}</td>
241+
<td>${r.model}</td>
242+
<td class="text-center">${toPercent(r[k])}</td>
243+
<td class="text-center">${orgIcon}</td>
244+
<td class="text-center">${siteLink}</td>
245+
<td class="text-center">${r.date ?? '--'}</td>
246+
</tr>
247+
`);
248+
});
249+
}
250+
251+
render('full'); // 默认显示全量
252+
radios.forEach(r => // 监听语言切换
253+
r.addEventListener('change', () => r.checked && render(r.value))
254+
);
255+
})();
253256
</script>
254257

258+
255259
</body>
256260
</html>

0 commit comments

Comments
 (0)