Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
"use strict";
/**
* Features:
* - Rail hiding
* - Wide pages
* - NewPP info
* - JST time/purge button
* - Wikitext/HTML table rendering for Lua debug console
* - Fixing notifications
* - Disabling migration notification
* - Hiding fan feed
* - Hiding "top ads"
* - Fixing topbar
* - Hiding language switcher
* - Hiding search ads
* - Hiding global FANDOM elements
* - Loading external images under .external-image
*/
var version = '4.4.1a';
console.log("Revamp v" + version);
var color = window.headerColor || 'black';
var bindToLocalStorage = function (element, propertyName, variableName, onChange, onInit) {
element.change(function () {
var value = element.prop(propertyName);
localStorage.setItem(variableName, JSON.stringify(value));
if (onChange) {
onChange(value);
}
});
element.prop(propertyName, JSON.parse(localStorage.getItem(variableName) || 'false'));
if (onInit) {
onInit(element.prop(propertyName));
}
};
var renderWikitext = function (text, next) {
$.get("//kancolle.fandom.com/api.php?action=parse&format=json&text=" + escape(text), function (data) {
return next(data && data.parse && data.parse.text && data.parse.text['*']);
});
};
var addHeaderCheckbox = function (name, text, right, handle) {
$('.wds-community-header').append($('<input>')
.prop({
id: name + "Checkbox",
type: 'checkbox'
})
.css({
cursor: 'pointer',
position: 'absolute',
right: right + "px",
top: '85px',
'z-index': '0'
}), $('<label>')
.prop({
"for": name + "Checkbox",
id: name + "CheckboxLabel"
})
.text(text)
.css({
color: color,
cursor: 'pointer',
position: 'absolute',
right: right + 20 + "px",
top: '87px',
'z-index': '0'
}));
bindToLocalStorage($("#" + name + "Checkbox"), 'checked', name + "Checked", handle, handle);
};
var formatJstClock = function () {
var locale = 'en-US';
var options = {
day: 'numeric',
hour: '2-digit',
hour12: false,
minute: '2-digit',
month: 'short',
second: '2-digit',
timeZone: 'Asia/Tokyo',
weekday: 'short',
year: 'numeric'
};
var formatted = new Date().toLocaleDateString(locale, options).replace(/,/g, '') + " (JST)";
return "\u21BB " + formatted;
};
$(function () {
// Rail hiding
addHeaderCheckbox('WikiaRail', 'Hide sidebar', 16, function (checked) {
if (checked) {
$('.WikiaRail').hide();
}
else {
$('.WikiaRail').show();
}
$('.WikiaMainContent').css({ width: checked ? '100%' : '' });
});
// Wide pages
addHeaderCheckbox('WikiaPageWide', 'Wide page', 110, function (checked) {
$('.WikiaPage').css({ width: checked ? '90%' : '' });
$('.wds-community-header').css({ width: checked ? '100%' : '' });
});
// NewPP info
var newPP;
$('#mw-content-text')
.contents()
.each(function (_, e) {
if (e.nodeType === 8 && e.data.includes('NewPP')) {
newPP = e.data;
}
});
// JST time/purge button
var clock = $('<a>')
.prop({
href: '?action=purge',
title: 'Click here to make the server purge and regenerate (update) this page' + (newPP ? "\n" + newPP : '')
})
.css({
color: color,
'font-family': "Monaco, Consolas, 'Lucida Console', monospace",
position: 'absolute',
right: '20px',
top: '63px',
'z-index': '0'
});
$('.wds-community-header__local-navigation').append(clock);
clock.html(formatJstClock());
setInterval(function () { return clock.html(formatJstClock()); }, 500);
// Wikitext/HTML table rendering for Lua debug console
setInterval(function () {
$('.mw-scribunto-print').each(function (_, e) {
if (!$(e).data('html')) {
var text_1 = $(e).text();
// only render tables
if (text_1.includes('{|') && text_1.includes('|}')) {
renderWikitext(text_1, function (html) {
$(e).html(html || "<div style=\"color:red\">can not render</div>\n" + text_1);
$(e).data('html', true);
$(e).css('white-space', 'normal');
});
}
}
});
}, 500);
// Fixing notifications
$('.wds-community-header').append($('.banner-notifications-placeholder'));
// Disabling migration notification
localStorage.setItem('wkch_val_fandom-com-migration-after-closed', '"1"');
// Hiding fan feed
$('#mixed-content-footer').hide();
// Hiding "top ads"
$('#WikiaTopAds').hide();
// Fixing topbar
$('.wds-global-navigation').css({ position: 'absolute' });
// Hiding language switcher
$('.page-header__languages').hide();
// Hiding search ads
$('.SearchAdsTopWrapper div').hide();
$('#search-v2-form .results-wrapper').css({ width: 'calc(100% - 200px)' });
// Hiding global FANDOM elements
$('.wds-global-footer').hide();
$('.wds-global-navigation__content-bar-left').hide();
$('.wds-global-navigation__start-a-wiki').hide();
$('.wds-global-navigation__search-container').css({ width: '100%' });
// Loading external images under .external-image
/*
$('.external-image a.external').each(function () {
var link = $(this);
var container = link.parent();
var url = link.attr('href');
$('<img src="'+ url +'">').load(function() {
link.attr('class', '');
link.text('');
$(this).width(container.data('width')).height(container.data('height')).appendTo(link);
});
});
*/
});