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>"); }); });