Widget:SortSubpageList:修订间差异

添加585字节 、​ 2017年4月15日 (星期六)
无编辑摘要
imported>Hice
(创建页面,内容为“<includeonly><script> window.RLQ = window.RLQ || []; window.RLQ.push(function() { var normalizationList = { "一": '1', "二": '2', "三": '3', "四": '4',...”)
 
imported>AnnAngela
无编辑摘要
第2行: 第2行:
window.RLQ = window.RLQ || [];
window.RLQ = window.RLQ || [];
window.RLQ.push(function() {
window.RLQ.push(function() {
var normalizationList = {
   var normalizationList = {
"一": '1',
     "一": '1',
"二": '2',
     "二": '2',
"三": '3',
     "三": '3',
"四": '4',
     "四": '4',
"五": '5',
     "五": '5',
"六": '6',
     "六": '6',
"七": '7',
     "七": '7',
"八": '8',
     "八": '8',
"九": '9'
     "九": '9'
};
   };


function alphanum(a, b) {
   function alphanum(a, b) {
function chunkify(t) {
     function chunkify(t) {
var tz = new Array();
       var tz = new Array();
var x = 0, y = -1, n = 0, i, j;
       var x = 0, y = -1, n = 0, i, j;


while (i = (j = t.charAt(x++)).charCodeAt(0)) {
       while (i = (j = t.charAt(x++)).charCodeAt(0)) {
var m = (i == 46 || (i >=48 && i <= 57));
         var m = (i == 46 || (i >=48 && i <= 57));
if (m !== n) {
         if (m !== n) {
tz[++y] = "";
           tz[++y] = "";
n = m;
           n = m;
}
         }
tz[y] += j;
         tz[y] += j;
}
       }
return tz;
       return tz;
}
     }


var aa = chunkify(a);
     var aa = chunkify(a);
var bb = chunkify(b);
     var bb = chunkify(b);


for (x = 0; aa[x] && bb[x]; x++) {
     for (x = 0; aa[x] && bb[x]; x++) {
if (aa[x] !== bb[x]) {
       if (aa[x] !== bb[x]) {
var c = Number(aa[x]), d = Number(bb[x]);
         var c = Number(aa[x]), d = Number(bb[x]);
if (c == aa[x] && d == bb[x]) {
         if (c == aa[x] && d == bb[x]) {
return c - d;
           return c - d;
} else return (aa[x] > bb[x]) ? 1 : -1;
         } else return (aa[x] > bb[x]) ? 1 : -1;
}
       }
}
     }
return aa.length - bb.length;
     return aa.length - bb.length;
}
   }


function chineseNorm(title) {
   function chineseNorm(title) {
title = title.replace(/([一二三四五六七八九])十([一二三四五六七八九])/g, '$1$2').replace(/十(?=[一二三四五六七八九])/g, '1').replace(/十/g, '10');
     title = title.replace(/([一二三四五六七八九])十([一二三四五六七八九])/g, '$1$2').replace(/十(?=[一二三四五六七八九])/g, '1').replace(/十/g, '10');
title = title.replace(/[一二三四五六七八九]/g, function(c) {
     title = title.replace(/[一二三四五六七八九]/g, function(c) {
return normalizationList[c];
       return normalizationList[c];
});
     });
return title;
     return title;
}
   }


function sort(a, b) {
   function sort(a, b) {
var na = chineseNorm(a);
     var na = chineseNorm(a);
var nb = chineseNorm(b);
     var nb = chineseNorm(b);
return alphanum(na, nb);
     return alphanum(na, nb);
}
   }


$('.mw-prefixindex-list-table').each(function(_, table) {
$('.mw-prefixindex-list-table').each(function(_, table) {
table = $(table);
     table = $(table);
var list = Array.prototype.slice.call(table.find('td'));
     var list = Array.prototype.slice.call(table.find('td'));
list.sort(function(a, b) {
     list.sort(function(a, b) {
return sort($(a).text(), $(b).text());
       return sort($(a).text(), $(b).text());
});
     });
var content = '<tbody>';
     var content = '<tbody>';
for (var i = 0; i < list.length; i++) {
     for (var i = 0; i < list.length; i++) {
if (i % 3 == 0) {
       if (i % 3 == 0) {
content += '<tr>';
         content += '<tr>';
}
       }
content += '<td>' + $(list[i]).html() + '</td>';
       content += '<td>' + $(list[i]).html() + '</td>';
if (i % 3 == 2) {
       if (i % 3 == 2) {
content += '</tr>';
         content += '</tr>';
}
       }
}
     }
// Pad to 3
     // Pad to 3
for (; i % 3 != 0; i++) {
     for (; i % 3 != 0; i++) {
if (i % 3 == 0) {
       if (i % 3 == 0) {
content += '<tr>';
         content += '<tr>';
}
       }
content += '<td></td>';
       content += '<td></td>';
if (i % 3 == 2) {
       if (i % 3 == 2) {
content += '</tr>';
         content += '</tr>';
}
       }
}
     }
content += '</tbody>';
     content += '</tbody>';
table.html(content);
     table.html(content);
});
   });
});
});
</script></includeonly><noinclude>
</script></includeonly><noinclude>
匿名用户