Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
m (i think this code should be classified as a war crime) |
|||
| Line 3: | Line 3: | ||
$("span.mw-linkline").each(function(index) { | $("span.mw-linkline").each(function(index) { | ||
$(this).html($(this).html().replace(/(.+?)(<br>|$)/g, '<a class="external text" href="' + $(this).data("format") + '">$1</a>$2')); | $(this).html($(this).html().replace(/(.+?)(<br>|$)/g, '<a class="external text" href="' + $(this).data("format") + '">$1</a>$2')); | ||
| + | }); | ||
| + | |||
| + | //Things like IDs in infoboxes should be linklined but also put in an (invisible) table for compression | ||
| + | $("span.mw-multicol-linkline").each(function(index) { | ||
| + | var format = $(this).data("format"); | ||
| + | var cols = $(this).data("columns"); | ||
| + | var rows = Math.ceil(($(this).html().match(/(.+?)<br>/g).length + 1) / cols); | ||
| + | var table = "<table>"; | ||
| + | for (var i = 0; i < rows; i++) { | ||
| + | table += "<tr>"; | ||
| + | for (var j = 0; j < cols; j++) { | ||
| + | table += "<td>"; | ||
| + | if (i == rows - 1 && j == cols - 1) { | ||
| + | table += format ? '<a class="external text" href="' + format.replace("$1", $(this).html().match(/<br>(.+?)$/g)[0])+ '">TEST</a>' : $(this).html().match(/<br>(.+?)$/g)[0]; | ||
| + | } else { | ||
| + | table += format ? '<a class="external text" href="' + format.replace("$1", $(this).html().match(/(.+?)<br>/g)[cols*i+j])+ '">TEST</a>' : $(this).html().match(/(.+?)<br>/g)[cols*i+j]; | ||
| + | } | ||
| + | table += "</td>"; | ||
| + | } | ||
| + | table += "</tr>"; | ||
| + | } | ||
| + | $(this).html(table + "</table>"); | ||
}); | }); | ||
}); | }); | ||
Revision as of 11:56, 16 May 2020
$().ready(function() {
// Replace linkline spans with individual links
$("span.mw-linkline").each(function(index) {
$(this).html($(this).html().replace(/(.+?)(<br>|$)/g, '<a class="external text" href="' + $(this).data("format") + '">$1</a>$2'));
});
//Things like IDs in infoboxes should be linklined but also put in an (invisible) table for compression
$("span.mw-multicol-linkline").each(function(index) {
var format = $(this).data("format");
var cols = $(this).data("columns");
var rows = Math.ceil(($(this).html().match(/(.+?)<br>/g).length + 1) / cols);
var table = "<table>";
for (var i = 0; i < rows; i++) {
table += "<tr>";
for (var j = 0; j < cols; j++) {
table += "<td>";
if (i == rows - 1 && j == cols - 1) {
table += format ? '<a class="external text" href="' + format.replace("$1", $(this).html().match(/<br>(.+?)$/g)[0])+ '">TEST</a>' : $(this).html().match(/<br>(.+?)$/g)[0];
} else {
table += format ? '<a class="external text" href="' + format.replace("$1", $(this).html().match(/(.+?)<br>/g)[cols*i+j])+ '">TEST</a>' : $(this).html().match(/(.+?)<br>/g)[cols*i+j];
}
table += "</td>";
}
table += "</tr>";
}
$(this).html(table + "</table>");
});
});