@@ -69,7 +69,7 @@ <h3 class="fw-light text-nowrap">
69
69
</ div >
70
70
71
71
<!-- 排名表 -->
72
- < table id ="origin " class ="table table-striped table-bordered border border-primary border-3 mt-4 w-100 ">
72
+ <!-- < table id="origin" class="table table-striped table-bordered border border-primary border-3 mt-4 w-100">
73
73
<thead>
74
74
<tr>
75
75
<th style="width:50%">Method</th>
@@ -79,7 +79,22 @@ <h3 class="fw-light text-nowrap">
79
79
</tr>
80
80
</thead>
81
81
<tbody id="leaderboard-body"></tbody>
82
+ </table> -->
83
+
84
+ < table id ="origin " class ="table table-striped table-bordered border border-primary border-3 mt-4 w-100 ">
85
+ < thead >
86
+ < tr >
87
+ < th style ="width:30% "> Method</ th >
88
+ < th style ="width:20% "> Model</ th >
89
+ < th style ="width:10% " class ="text-center "> %Resolved</ th >
90
+ < th style ="width:15% " class ="text-center "> Org</ th >
91
+ < th style ="width:15% " class ="text-center "> Site</ th >
92
+ < th style ="width:10% " class ="text-center "> Date</ th >
93
+ </ tr >
94
+ </ thead >
95
+ < tbody id ="leaderboard-body "> </ tbody >
82
96
</ table >
97
+
83
98
84
99
<!-- Notes -->
85
100
< div id ="notes " class ="w-100 ">
@@ -186,28 +201,56 @@ <h3>🙏 Acknowledgements</h3>
186
201
187
202
<!-- 渲染脚本:与之前一致 -->
188
203
< script >
189
- const tbody = document . getElementById ( "leaderboard-body" ) ;
190
- const radios = document . querySelectorAll ( 'input[name="langradio"]' ) ;
191
- const xhr = new XMLHttpRequest ( ) ; xhr . open ( "GET" , "results/results.json" , false ) ; xhr . send ( ) ;
192
- if ( xhr . status !== 200 ) { alert ( "Failed to load results.json" ) ; }
193
- const raw = Object . values ( JSON . parse ( xhr . responseText ) ) ;
194
- const keyMap = { full :"%resolved_full" , python :"%resolved_python" ,
195
- java :"%resolved_java" , javascript :"%resolved_javascript" ,
196
- typescript :"%resolved_typescript" } ;
197
- function render ( lang ) {
198
- tbody . innerHTML = "" ;
199
- const k = keyMap [ lang ] ;
200
- raw . filter ( r => r [ k ] != null ) . sort ( ( a , b ) => b [ k ] - a [ k ] ) . forEach ( ( r , i ) => {
201
- const medal = i === 0 ?"🥇 " :i === 1 ?"🥈 " :i === 2 ?"🥉 " :"" ;
202
- tbody . insertAdjacentHTML ( "beforeend" ,
203
- `<tr><td>${ medal } ${ r . method } </td>
204
- <td>${ r . model } </td>
205
- <td class="text-center">${ ( r [ k ] * 100 ) . toFixed ( 1 ) } %</td>
206
- <td class="text-center">${ r . date } </td></tr>` ) ;
207
- } ) ;
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
+ } ;
220
+
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 ? "🥉 " : "" ;
228
+
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
+ : "-" ;
233
+
234
+ const siteLink = r . site_url
235
+ ? `<a href="${ r . site } " target="_blank" style="text-decoration:none;">🔗</a>`
236
+ : "-" ;
237
+
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
+ } ) ;
208
249
}
250
+
209
251
render ( "full" ) ;
210
- radios . forEach ( r => r . addEventListener ( "change" , ( ) => r . checked && render ( r . value ) ) ) ;
211
- </ script >
252
+ radios . forEach ( r => r . addEventListener ( "change" , ( ) => r . checked && render ( r . value ) ) ) ;
253
+ </ script >
254
+
212
255
</ body >
213
256
</ html >
0 commit comments