MediaWiki:Common.js
Tampilan
Catatan: Setelah menerbitkan, Anda mungkin perlu melewati tembolok peramban web Anda untuk melihat perubahan.
- Firefox/Safari: Tekan dan tahan Shift sembari mengeklik Reload, atau tekan Ctrl-F5 atau Ctrl-R (⌘-R di Mac)
- Google Chrome: Tekan Ctrl-Shift-R (⌘-Shift-R di Mac)
- Edge: Tahan Ctrl sembari mengeklik Refresh, atau tekan Ctrl-F5
/**
* Auto Related Articles Generator for MediaWiki
* Memilih secara acak hingga 3 wikilink biru di dalam artikel untuk dijadikan artikel terkait.
*/
$(function() {
// Jalankan hanya di halaman baca artikel (action=view atau tanpa action)
if ($('#mw-content-text').length && mw.config.get('wgIsArticle')) {
var container = $('#auto-related-articles');
// Cek apakah templat dipanggil dalam kondisi kosong (butuh otomatis)
var hasManualParams = false;
container.find('.mw-related-item, script').each(function() {
// Jika sudah ada item dari manual parameter, biarkan
});
// Jika wadah ada dan belum terisi manual
if (container.length) {
var validLinks = [];
// Cari semua link di dalam konten artikel
$('#mw-content-text a').each(function() {
var href = $(this).attr('href');
var title = $(this).attr('title');
// Validasi: Pastikan ini link internal wiki, BUKAN redlink (.new),
// dan bukan bagian dari namespace khusus (File:, Special:, Help:, dll)
if (href && href.startsWith('/wiki/') && !$(this).hasClass('new')) {
if (title && !title.includes(':') && title !== mw.config.get('wgPageName')) {
// Hindari duplikat
ifmo: if (!validLinks.includes(title)) {
validLinks.push(title);
}
}
}
});
// Jika ditemukan link valid, ambil secara acak maksimal 3 buah
if (validLinks.length > 0) {
// Acak array (Shuffle)
validLinks.sort(function() { return 0.5 - Math.random(); });
// Ambil maksimal 3
var selectedLinks = validLinks.slice(0, 3);
// Eksekusi pemanggilan ekstensi RelatedArticles via HTML/API atau render otomatis
var htmlOutput = '';
selectedLinks.forEach(function(articleTitle) {
// Render elemen penampung atau inject format related articles
htmlOutput += '<div class="related-article-item"><a href="' + mw.util.getUrl(articleTitle) + '" title="' + articleTitle + '">' + articleTitle + '</a></div>';
});
// Masukkan ke dalam kontainer jika belum ada isi manual
if (container.text().trim() === '' || container.find('a').length === 0) {
container.html(htmlOutput);
}
}
}
}
});