MediaWiki:Common.js: Perbedaan antara revisi
Tampilan
Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
||
| Baris 61: | Baris 61: | ||
/* | /* 1. Dark Mode Sederhana */ | ||
$(document).ready(function() { | |||
var isDark = localStorage.getItem('darkMode') === 'enabled'; | |||
// Bikin tombol melayang di pojok kiri bawah (biar gak bentrok sama Back to Top di kanan) | |||
var darkBtn = $('<div id="dark-toggle" style="position:fixed; bottom:80px; left:20px; z-index:9999; background:#202122; color:#fff; width:45px; height:45px; border-radius:50%; text-align:center; line-height:45px; font-size:20px; cursor:pointer; opacity:0.7; box-shadow: 0 4px 6px rgba(0,0,0,0.3);">🌓</div>'); | |||
$('body').append(darkBtn); | |||
function enableDark() { | |||
$('body').css({'background-color': '#101418', 'color': '#eaecf0'}); | |||
$('.mw-body, #content, .page-heading, #mw-content-text').css({'background-color': '#101418', 'color': '#eaecf0'}); | |||
$('a').css('color', '#8ab4f8'); | |||
localStorage.setItem('darkMode', 'enabled'); | |||
} | |||
function disableDark() { | |||
location.reload(); // Paling aman buat balikin style asli MediaWiki | |||
localStorage.setItem('darkMode', 'disabled'); | |||
} | |||
if (isDark) enableDark(); | |||
$('#dark-toggle').click(function() { | |||
isDark = localStorage.getItem('darkMode') === 'enabled'; | |||
if (!isDark) enableDark(); else disableDark(); | |||
}); | |||
}); | |||
/* 2. Klik Judul buat Copy Link (Anchor) */ | |||
$(document).ready(function() { | $(document).ready(function() { | ||
if (mw.config.get('wgIsArticle')) { | if (mw.config.get('wgIsArticle')) { | ||
$('#mw-content-text').find('h2, h3, h4').each(function() { | |||
var | var id = $(this).attr('id'); | ||
if ( | if (id) { | ||
$(this).css('cursor', 'pointer').click(function() { | |||
var link = window.location.href.split('#')[0] + '#' + id; | |||
navigator.clipboard.writeText(link); | |||
alert('Link bagian ini berhasil disalin!'); | |||
}); | |||
} | |||
} | } | ||
}); | }); | ||
} | } | ||
}); | }); | ||
Revisi per 9 April 2026 20.27
/* Script Estimasi Waktu Baca - Spesialis Mobile (Minerva) & Desktop */
$(document).ready(function() {
// Hanya jalan di halaman artikel asli
if (mw.config.get('wgIsArticle') && mw.config.get('wgAction') === 'view' && mw.config.get('wgNamespaceNumber') === 0) {
function hitungWaktuBaca() {
// Ambil teks dari konten utama
var content = $('#mw-content-text').text();
// Hitung jumlah kata (asumsi rata-rata orang baca 200 kata per menit)
var wordsPerMinute = 200;
var textLength = content.split(/\s+/).length; // Pecah berdasarkan spasi
var readingTime = Math.ceil(textLength / wordsPerMinute);
// Bikin elemen tampilannya
var icon = '🕒'; // Emoji jam biar simpel dan ringan
var label = (readingTime <= 1) ? 'Kurang dari 1 menit' : readingTime + ' menit';
var html = '<div id="reading-time-auto" style="font-size: 0.9em; color: #54595d; margin-bottom: 15px; display: flex; align-items: center; font-family: sans-serif;">';
html += '<span style="margin-right: 5px;">' + icon + '</span>';
html += '<span>Estimasi waktu baca: <b>' + label + '</b></span>';
html += '</div>';
// PENEMPELAN TARGET:
// Di Minerva (HP), judul biasanya ada di .page-heading
// Di Vector (Desktop), judul ada di #firstHeading
if ($('.page-heading').length) {
$('.page-heading').after(html); // Target Mobile
} else if ($('#firstHeading').length) {
$('#firstHeading').after(html); // Target Desktop
}
}
// Jalankan fungsi
hitungWaktuBaca();
}
});
/* Script Tombol Back to Top (Spesial Mobile) */
$(document).ready(function() {
// Bikin tombolnya lewat JS biar gak ribet edit CSS/HTML
var btnHtml = '<div id="backToTop" style="display:none; position:fixed; bottom:80px; right:20px; z-index:9999; background:#36c; color:#fff; width:45px; height:45px; border-radius:50%; text-align:center; line-height:45px; font-size:24px; cursor:pointer; box-shadow: 0 4px 6px rgba(0,0,0,0.3); opacity: 0.8;">↑</div>';
$('body').append(btnHtml);
// Fungsi munculin tombol pas di-scroll
$(window).scroll(function() {
if ($(this).scrollTop() > 300) {
$('#backToTop').fadeIn();
} else {
$('#backToTop').fadeOut();
}
});
// Fungsi pas tombol diklik
$('#backToTop').click(function() {
$('html, body').animate({scrollTop: 0}, 600);
return false;
});
});
/* 1. Dark Mode Sederhana */
$(document).ready(function() {
var isDark = localStorage.getItem('darkMode') === 'enabled';
// Bikin tombol melayang di pojok kiri bawah (biar gak bentrok sama Back to Top di kanan)
var darkBtn = $('<div id="dark-toggle" style="position:fixed; bottom:80px; left:20px; z-index:9999; background:#202122; color:#fff; width:45px; height:45px; border-radius:50%; text-align:center; line-height:45px; font-size:20px; cursor:pointer; opacity:0.7; box-shadow: 0 4px 6px rgba(0,0,0,0.3);">🌓</div>');
$('body').append(darkBtn);
function enableDark() {
$('body').css({'background-color': '#101418', 'color': '#eaecf0'});
$('.mw-body, #content, .page-heading, #mw-content-text').css({'background-color': '#101418', 'color': '#eaecf0'});
$('a').css('color', '#8ab4f8');
localStorage.setItem('darkMode', 'enabled');
}
function disableDark() {
location.reload(); // Paling aman buat balikin style asli MediaWiki
localStorage.setItem('darkMode', 'disabled');
}
if (isDark) enableDark();
$('#dark-toggle').click(function() {
isDark = localStorage.getItem('darkMode') === 'enabled';
if (!isDark) enableDark(); else disableDark();
});
});
/* 2. Klik Judul buat Copy Link (Anchor) */
$(document).ready(function() {
if (mw.config.get('wgIsArticle')) {
$('#mw-content-text').find('h2, h3, h4').each(function() {
var id = $(this).attr('id');
if (id) {
$(this).css('cursor', 'pointer').click(function() {
var link = window.location.href.split('#')[0] + '#' + id;
navigator.clipboard.writeText(link);
alert('Link bagian ini berhasil disalin!');
});
}
});
}
});