Widget:SortSubpageList:修订间差异

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>