-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathCitationStyleMarker.js
38 lines (31 loc) · 1.54 KB
/
CitationStyleMarker.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*** 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/w/index.php?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.classList[enabled ? 'remove' : 'add']('nocsmarker');
portlet.innerText = enabled ? 'Hide CS marker' : 'Show CS marker';
});
if (window.CSMarkerMode == 'disabled' || window.CSMarkerMode == 'both' && typeCount < 2) {
document.body.classList.add('nocsmarker');
portlet.innerText = 'Show CS marker';
}
}
});