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.
// Improved version of http://en.wikipedia.org/w/index.php?title=Wikipedia:WikiProject_User_scripts/Scripts/Six_tabs&oldid=166176254
// Optionally add an edit section zero item (0) for a seventh tab
// Shorten tab names
// Enable on certain special pages like WhatLinksHere, Move, etc.
// Work on Modern skin
// Account for (potential?) [[Special:Homepage]] link in one's own userspace
// Account for different class in one's own userspace

function sevenTabs() {
	var pCactions = document.getElementById('p-cactions');
	if (!pCactions) {
		return;
	}

	var zeroCool = window.zeroCool === undefined ? true : window.zeroCool;

	// Account for (potential?) [[Special:Homepage]] link in one's own
	// userspace, where there's also a different class used
	var caMain;
	if (mw.config.get('wgNamespaceNumber') === 2 || mw.config.get('wgNamespaceNumber') === 3) {
		caMain = mw.config.get('wgRelevantUserName') === mw.config.get('wgUserName') ? document.getElementById('ca-user') : document.getElementById('ca-nstab-user');
	} else {
		caMain = pCactions.getElementsByTagName('li')[0];
	}
	var caTalk = document.getElementById('ca-talk');
	var caEdit = document.getElementById('ca-edit') || document.getElementById('ca-viewsource');
	var caHistory = document.getElementById('ca-history');
	// if (!caMain || !caTalk || !caEdit || !caHistory) return; // I think some smarter checks below render this unnecessary
	var el_move, el_create, id2;
	if ($(caTalk).hasClass('selected')) { // talk space, defined via class instead of mod to allow for rendering on special pages
		el_move = caTalk; el_create = caMain; id2 = '';
	} else {
		el_move = caMain; el_create = caTalk; id2 = 'discussion';
	}

	if (caHistory !== null) {
		if (zeroCool) {
			// Based on [[User:ais523/editsection0tab.js]] at [[Special:PermaLink/167052430]]
			mw.util.addPortletLink('p-cactions', mw.util.getUrl(mw.config.get('wgRelevantPageName'), { action: 'edit', section: 0 }),
				'0', 'ca-edit-0', 'Edit the lead section of this page', '0',
				$(caTalk).hasClass('selected') ? el_create.nextSibling : el_move.nextSibling);
		}
		caHistory.firstChild.innerHTML = 'hist';
		el_move.parentNode.insertBefore(caHistory, el_move.nextSibling);
	}
	if (caEdit !== null) {
		caEdit.firstChild.innerHTML = caEdit.firstChild.innerHTML.replace(/.*edit.*/gi, 'edit');
		el_move.parentNode.insertBefore(caEdit, el_move.nextSibling);
	}
	caMain.firstChild.innerHTML = caMain.firstChild.innerHTML.replace(' page', '');

	var href = decodeURIComponent(el_create.firstChild.getAttribute('href'));
	href = href.replace(/^\/wiki\//, '');
	if (el_create.className.indexOf('new') < 0) {
		mw.util.addPortletLink('p-cactions', mw.util.getUrl(href, { action: 'history' }), 'hist',
			'ca-history-' + id2, id2 + ' history', '', el_create.nextSibling);
		mw.util.addPortletLink('p-cactions', mw.util.getUrl(href, { action: 'edit' }), 'edit',
			'ca-edit-' + id2, 'Edit ' + id2, '', el_create.nextSibling);
	}

}
// Could also use $('.selected')[0].id != 'ca-nstab-special', I think it amounts to the same thing
if (mw.config.get('wgRelevantPageIsProbablyEditable') === true) {
	$(sevenTabs);
}