From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

/*** Citation Style Marker ***/



// Puts the type of citation style a citation is using next to it

// Adds a link in the toolbar to toggle the markers

// Documentation at [[en:w:User:BrandonXLF/CitationStyleMarker]]

// By [[en:w:User:BrandonXLF]]



// window.CSMarkerMode = 'always'; - Always how the style marker, no option to disable

// window.CSMarkerMode = 'both'; - Show the markers when there is more than one type of citation of a page

// window.CSMarkerMode = 'disabled'; - Hide the markers by default

// window.CSMarkerMode = 'enabled'; - Show the markers by default



$(function() {

	mw.loader.load('//en.wikipedia.org/?title=User:BrandonXLF/CitationStyleMarker.css&action=raw&ctype=text/css', 'text/css');

	if (window.CSMarkerMode != 'always') {

		var portletItem = mw.util.addPortletLink('p-tb', '#', 'Hide CS marker'),

			classes = 'cs1', 'cs2', 'csvan', 'calsa'],

			typeCount = classes.reduce(function(acc, cur) {

				return acc + !!document.getElementsByClassName(cur).length;

			}, 0);



		if (!portletItem) return;



		var portlet = portletItem.getElementsByTagName('a')[0];



		portlet.addEventListener('click', function(e) {

			var enabled = document.body.classList.contains('nocsmarker');

			e.preventDefault();

			document.body.classListenabled ? 'remove' : 'add']('nocsmarker');

			portlet.innerText = enabled ? 'Hide CS maker' : 'Show CS marker';

		});



		if (window.CSMarkerMode == 'disabled' || window.CSMarkerMode == 'both' && typeCount < 2) {

			document.body.classList.add('nocsmarker');

			portlet.innerText = 'Show CS marker';

		}

	}

});