Увага: Після публікування слід очистити кеш браузера, щоб побачити зміни.

  • Firefox / Safari: тримайте Shift, коли натискаєте Оновити, або натисніть Ctrl-F5 чи Ctrl-Shift-R (⌘-R на Apple Mac)
  • Google Chrome: натисніть Ctrl-Shift-R (⌘-Shift-R на Apple Mac)
  • Edge: тримайте Ctrl, коли натискаєте Оновити, або натисніть Ctrl-F5.
(function () {
	
var userSet = {
	'A' : ['Aced', 'Amakuha', 'Antanana', 'Atoly', 'Brunei', 'Deineka', 'DixonD', 'Fessor', 'Geohem', 'Goo3', 'Green Zero', 'Helgi', 'Helixitta', 'Kholodovsky', 'Krupolskiy Anonim', 'Krystofer', 'Leonst', 'Lystopad', 'MaryankoD', 'Mr.Rosewater', 'NickK', 'Nina Shenturk', 'Olmi', 'Piramidion', 'RLuts', 'ReAl', 'Sergento', 'SteveR', 'Tigga', 'VictorAnyakin', 'Visem', 'Yakudza', 'YarikUkraine', 'Ykvach', 'Анатолій Мітюшин', 'Андрій Гриценко', 'Вальдимар', 'Стефанко1982']
};

function addCSS(css) {
	var styleElem = document.createElement('style');
	styleElem.appendChild(document.createTextNode(css));
	document.getElementsByTagName('head')[0].appendChild(styleElem);
}

function markadmins($content) {
	if (!$content.length) return;
	runNum++;
	if (runNum === 1) {
		addCSS('\
			tt.userflags { color:#0645ad; }\
			.userflags-wrapper { -moz-user-select:none; }\
		');
	}

	var $links = $content.find('a[title^="Користувач"], a[title^="Обговорення користувача"]');

	if (runNum === 2) {
		if ($links.length === prevLinksCount) {
			return;
		} else {
			if ($links.length > prevLinksCount) {
				$links = $links.slice(prevLinksCount);
			} else {
				var msg = 'MediaWiki:Gadget-markadmins.js: Нестандартная ситуация: количество ссылок на втором проходе (' + $links.length + ') меньше, чем на первом (' + prevLinksCount + '). Снова обходим все ссылки.';
				if (console.info) {
					console.info(msg);
				} else {
					console.log(msg);
				}
			}
		}
	}

	$links.each(function (i, link) {
		if (/[?#]/.test(link.href) && link.href.indexOf('redlink=1') === -1 ||
				link.parentElement.className === 'cancelLink') {
			return;
		}

		var matches, user, flags = [], tips = [], flag;
		matches = /^Користувач(?:ка):(.+)|Обговорення користувач(?:а|ки):(.+)/.exec(link.title);
		if (!matches) return;
		if (matches[2] && users_talkLinkOnly.indexOf(matches[2]) !== -1) {
			if ($(link).parent().hasClass('mw-usertoollinks') || link.textContent.match(/обс/i)) return;
			matches[1] = matches[2];
		} else if (!matches[1]) {
			return;
		}

		user = decodeURIComponent(matches[1]);
		if (link.href.indexOf('redlink=1') !== -1) {
			user = user.replace(/ \([^\)]+\)$/, '');
		}

		if ($.inArray(user, userSet['A']) !== -1) {
			flags.push('A');
			tips.push('адміністратор');
		}
		if (!flags.length) return;

		tips = ' (' + tips.join(', ') + ')';

		// Без jQuery здесь общее ускорение вдвое
		var spanElem = document.createElement('span');
		spanElem.className = 'userflags-wrapper';
		var nbspElem = document.createTextNode('\u00A0');
		var ttElem = document.createElement('tt');
		ttElem.className = 'userflags';
		ttElem.title = tips;
		var flagsElem = document.createTextNode('(' + flags.join(',') + ')');

		ttElem.appendChild(flagsElem);
		spanElem.appendChild(nbspElem);
		spanElem.appendChild(ttElem);

		link.parentNode.insertBefore(spanElem, link.nextSibling);
		link.title = link.title + tips;
	});

	prevLinksCount = $links.length;
}

var runNum = 0;
var prevLinksCount;
markadmins($('#mw-content-text'));
mw.hook('wikipage.content').add(markadmins);

}());