참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.
- 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
- 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
- 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
- 오페라: Ctrl-F5를 입력.
/*
* RecentChanges SideBar
* @author ykhwong
*/
$(function () {
const sidebarWidth = 200;
const minHeight = 400;
const refreshRate = 10;
const isVector = ( mw.config.get("skin") === "vector" );
const isLegacyVector = ( $(".skin-vector-legacy").length > 0 );
var preMarginRight = $("#mw-content-text").css("margin-right");
var preMinHeight = $("#mw-content-text").css("minHeight");
var options = {
autoresize : false
};
var msgGrp = {
"sidebar_title" : {
"en" : "Recent changes sidebar",
"ko" : "최근 바뀜 사이드바"
},
"sidebar_desc" : {
"en" : "Toggle recent changes sidebar",
"ko" : "최근 바뀜 사이드바를 토글합니다"
}
};
var rcText = "";
var rcSidebarStyle = {
"position": "absolute",
"color": "black",
"width": sidebarWidth + "px",
"top": "0px",
"right": "0px",
"padding": "3px",
"border": "solid 1px #c8ccd1"
};
var rcSidebarMobileStyle = {
"position": "relative",
"color": "black",
"top": "0px",
"right": "0px",
"padding": "3px",
"overflow-x": "hidden !important"
};
var rcSidebarTabStyle = {
"position": "relative",
"backgroundColor": "#eaecf0",
"width": (sidebarWidth - 4) + "px",
"padding": "5px",
"margin": "-4px 0px 0px -4px",
"border": "solid 1px #c8ccd1"
};
var rcSidebarTabMobileStyle = {
"position": "relative",
"backgroundColor": "#eaecf0",
"padding-top": "5px",
"padding-bottom": "5px",
"margin": "0px",
"border-bottom": "solid 1px #c8ccd1",
"overflow-x": "hidden !important"
};
if ($(".diff").length > 0) return;
if ( ! isVector ) {
$(".footer-content").append('<div id="rcSidebar"></div>');
$("#rcSidebar").css(rcSidebarMobileStyle);
} else {
$("#mw-content-text").append('<div id="rcSidebar"></div>');
$("#rcSidebar").css(rcSidebarStyle);
if ( isLegacyVector ) {
if (mw.config.get("wgCoordinates") !== null || $("#coordinates").length > 0) {
$("#rcSidebar").css("top", "43px");
}
}
if ( isLegacyVector || mw.config.get("wgNamespaceNumber") === -1 || mw.config.get("wgAction") === "history" ) {
$("#mw-content-text").css("margin-right", (sidebarWidth + 30) + "px");
if (mw.config.get("wgCanonicalSpecialPageName") === "Search") {
$("#rcSidebar").css("margin-right", (-1 * sidebarWidth - 30) + "px");
} else if (/^(AbuseLog|AbuseFilter|Contributions)$/.test(mw.config.get("wgCanonicalSpecialPageName"))) {
$("#rcSidebar").css("top", "30px");
}
$("#mw-content-text").css("minHeight", minHeight + "px");
} else {
repos();
}
}
if ( localStorage['mw-recentchanges-sidebar'] !== undefined ) {
if (localStorage['mw-recentchanges-sidebar-tab1'] !== undefined) {
rcText = localStorage['mw-recentchanges-sidebar-tab1'];
addRcText();
$("#rcSidebar").append(localStorage['mw-recentchanges-sidebar']);
}
}
$(".rcSidebarTab").css( ! isVector ? rcSidebarTabMobileStyle : rcSidebarTabStyle );
$(".mw-parser-output").css("word-wrap", "break-word");
function getMsg(msgCode) {
var langCode = mw.config.get( 'wgContentLanguage' );
var result = "";
if (!/\S/.test(langCode)) {
langCode = "en";
}
if (msgGrp[msgCode]) {
if (msgGrp[msgCode][langCode]) {
result = msgGrp[msgCode][langCode];
} else {
result = msgGrp[msgCode].en;
}
}
return result;
}
function addRcText() {
$("#rcSidebar").html('<div class="rcSidebarTab" style="font-weight: bold;"><a href="/wiki/Special:RecentChanges">' + rcText + '</a></div>');
}
function repos() {
if ($(".mw-workspace-container").outerWidth() < 1440 || $("#ca-nstab-category").length > 0) {
$("#rcSidebar").css("margin-right", "0px");
$("#mw-content-text").css("margin-right", (sidebarWidth + 30) + "px");
$("#mw-content-text").css("minHeight", minHeight + "px");
if (mw.config.get("wgCoordinates") !== null || $("#coordinates").length > 0) {
$("#rcSidebar").css("top", "43px");
}
} else {
$("#rcSidebar").css("margin-right", -1 * (sidebarWidth + 90) + "px");
$("#mw-content-text").css("margin-right", "0px");
$("#mw-content-text").css("minHeight", "0px");
if (mw.config.get("wgCoordinates") !== null || $("#coordinates").length > 0) {
$("#rcSidebar").css("top", "0px");
}
}
}
$.fn.isInViewport = function() {
var elementTop = $(this).offset().top;
var elementBottom = elementTop + $(this).outerHeight();
var viewportTop = $(window).scrollTop();
var viewportBottom = viewportTop + $(window).height();
return elementBottom > viewportTop && elementTop < viewportBottom;
};
$.fn.isOverflown = function(){
var e=this[0];
return e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth;
}
function refresh() {
if (!$("#rcSidebar").isInViewport() || document.hidden || document.msHidden || document.webkitHidden || document.mozHidden ||
localStorage['mw-recentchanges-sidebar-state'] === 'hidden') {
setTimeout(function() {
refresh();
}, 1000);
return;
}
$.get('/wiki/Special:RecentChanges?hidebots=0&hidecategorization=1&hideWikibase=1&limit=15&days=7&urlversion=2', function (data) {
var special = $(data).find(".special");
rcText = $(data).find("#firstHeading").text();
if ( !/\S/.test(rcText) ) {
rcText = $(data).find("#section_0").text();
}
localStorage['mw-recentchanges-sidebar-tab1'] = rcText;
addRcText();
$(".rcSidebarTab").css( ! isVector ? rcSidebarTabMobileStyle : rcSidebarTabStyle );
localStorage['mw-recentchanges-sidebar'] = "";
special.children().each(function() {
var elem = $(this);
var targetPage = elem.find(".mw-changeslist-line-inner").data("target-page");
var changedDate = elem.find(".mw-changeslist-date").text();
var info =
'<div title="' + targetPage + '" style="display:inline-block; width: ' +
(sidebarWidth - 40) + 'px; white-space: nowrap; overflow: hidden; vertical-align: text-top;">' +
'<a href="/wiki/' + targetPage + '">' + targetPage + '</a></div>' +
'<div style="display:inline-block; white-space: nowrap; padding-left: 5px; color:green; font-size:smaller; vertical-align: text-top;">' +
changedDate + "</div>" + '<br />';
localStorage['mw-recentchanges-sidebar'] += info;
$("#rcSidebar").append(info);
});
setTimeout(function() {
refresh();
}, refreshRate * 1000);
});
}
refresh();
if ( isVector ) {
preMarginRight = $("#mw-content-text").css("margin-right");
preMinHeight = $("#mw-content-text").css("minHeight");
$(window).resize(function() {
if ( !isLegacyVector && mw.config.get("wgNamespaceNumber") !== -1 && mw.config.get("wgAction") !== "history" ) {
if ( !options.autoresize || ( options.autoresize && $("#rcSidebar").isInViewport() )) {
if (localStorage['mw-recentchanges-sidebar-state'] !== 'hidden') {
repos();
}
}
}
if ( $("#rcSidebar").isInViewport() ) {
preMarginRight = $("#mw-content-text").css("margin-right");
preMinHeight = $("#mw-content-text").css("minHeight");
}
});
$(window).scroll(function() {
if (!options.autoresize) {
return;
}
if ( !$("#rcSidebar").isInViewport() ) {
$("#mw-content-text").css("margin-right", "0px");
$("#mw-content-text").css("minHeight", "0px");
} else {
$("#mw-content-text").css("margin-right", preMarginRight);
$("#mw-content-text").css("minHeight", preMinHeight);
if ( !isLegacyVector && mw.config.get("wgNamespaceNumber") !== -1 && mw.config.get("wgAction") !== "history" ) {
repos();
}
}
});
}
function showSidebar() {
localStorage['mw-recentchanges-sidebar-state'] = 'show';
$("#mw-content-text").css("margin-right", preMarginRight);
$("#mw-content-text").css("minHeight", preMinHeight);
$("#rcSidebar").show();
$(window).trigger("resize");
}
function hideSidebar() {
localStorage['mw-recentchanges-sidebar-state'] = 'hidden';
$("#mw-content-text").css("margin-right", "0px");
$("#mw-content-text").css("minHeight", "0px");
$("#rcSidebar").hide();
}
function toggleState() {
if (localStorage['mw-recentchanges-sidebar-state'] !== 'hidden') {
hideSidebar();
} else {
showSidebar();
}
}
if (isVector) {
if (localStorage['mw-recentchanges-sidebar-state'] == 'hidden') {
hideSidebar();
} else {
showSidebar();
}
$toggle = $( '<li><span><a></a></span></li>' )
.attr( 'id', 'ca-recentchanges' )
.attr( 'class', 'icon' );
$toggle.find( 'a' )
.attr( 'title', getMsg('sidebar_desc') ) // Toggle recent changes sidebar
.text( getMsg('sidebar_title') ) // Recent changes sidebar
.click( toggleState );
if ( $( '#ca-nstab-special' ).length > 0 ) {
$( '#ca-nstab-special' ).append( $toggle );
} else {
$( '#p-views ul' ).append( $toggle );
}
}
}());