User:Beeswaxcandle/common.js

From Wikisource
Jump to navigation Jump to search
Note: After saving, changes may not occur immediately. Click here to learn how to bypass your browser's cache.
  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Cmd-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (Cmd-Shift-R on a Mac)
  • Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Clear the cache in Tools → Preferences

For details and instructions about other browsers, see Wikipedia:Bypass your cache.

/* ProofreadPage extension specific */
self.layout_overrides_have_precedence = true;
//	self.proofreadpage_disable_ocr = true;  Now handled by User pref gadget

/* CharInsert specific */
//	window.charinsertDontMove = true;
//	window.charinsertMoveTop = true;
window.editToolsRecall = true;
window.charinsertCustom = { User: '— – … † æ Æ œ Œ £ § ♭ ♯ ♮ à á â ä ç è é ê ë Í î ï ñ ò ô ö ù û ü ⅛ ⅙ ⅕ ⅜ ¼ ½ ¾ ⅓ ⅔ α β γ δ ° ′ ″ • ⋅ ℞ × ' };
//	if(window.updateEditTools) window.updateEditTools();

/* special formats for proofreading tools */
// <nowiki>
var pageNumber = parseInt((mw.config.get('wgTitle').match(/\.djvu\/(\d+)$/) || {})[1], 10);
var specialFormats = [
	// add as many as you like...
		{
		title: /History of England /,
		evenHeader: "{{rh|" + (pageNumber - 20) + "|''REIGN OF QUEEN MARY.''|[{{sc|ch. 33.}}}}",
		oddHeader: "{{rh|1556.]|''THE MARTYRS.''|" + (pageNumber - 20) + "}}",
		footer: "",
		footerWithReferences: "{{smallrefs}}"
	},
	{
		title: /Outdoor Girls /,
		oddHeader: "{{rh||''XX''|" + (pageNumber - 12) + "}}",
		evenHeader: "{{rh|" + (pageNumber - 12) + "|''THE OUTDOOR GIRLS IN FLORIDA''}}",
		footer: "",
		footerWithReferences: "{{smallrefs}}"
	},
        {
		title: /Ante-Nicene Christian /,
        evenHeader: "{{rh|" + (pageNumber - 6) + "|''REFUTATION OF ALL HERESIES.''|" + "[{{sc|Book iv.}}}}",
		oddHeader: "{{rh|{{sc|Book iv.}}|''REFUTATION OF ALL HERESIES.''|" + (pageNumber - 6) + "}}",
		footer: "{{smallrefs}}",
		footerWithReferences: "{{smallrefs}}"
	},
	{
		title: /Fairview Boys /,
		oddHeader: "{{rh||XX|" + (pageNumber - 4) + "}}",
		evenHeader: "{{rh|" + (pageNumber - 4) + "|FAIRVIEW BOYS AT LIGHTHOUSE COVE}}",
		footer: "{{block center/e}}",
		footerWithReferences: "{{block center/e}}"
	},
	{
		title: /Shakespeare /,
		evenHeader: "{{rh|" + (pageNumber - 14) + "|APPENDIX}}",
		oddHeader: "{{rh||APPENDIX|" + (pageNumber - 14) + "}}",
		footer: "{{smallrefs}}",
		footerWithReferences: "{{smallrefs}}"
	},
	{
		title: /Adventures of Kimble /,
		evenHeader: "{{rh|" + (pageNumber - 28) + "|THE ADVENTURES OF KIMBLE BENT}}",
		oddHeader: "{{rh||XX|" + (pageNumber - 28) + "}}",
		footer: "{{sidenotes end}}",
		footerWithReferences: "{{sidenotes end}}"
	},
	{
		title: /Tracts for /,
		evenHeader: "{{rh|" + pageNumber + "|TRACTS FOR THE TIMES.}}",
		oddHeader: "{{rh||TRACTS FOR THE TIMES.|" + pageNumber + "}}",
		footer: "",
		footerWithReferences: "{{smallrefs}}"
	},
	{
		title: /Arrow of /,
		evenHeader: "{{rh||THE ARROW OF GOLD|" + (pageNumber - 13) + "}}",
		oddHeader: "{{rh|" + (pageNumber - 13) +"|THE ARROW OF GOLD}}",
		footer: "",
		footerWithReferences: ""
	},
	{
		title: /Tom Swift /,
		evenHeader: "{{rh|" + (pageNumber - 10) + "|''TOM SWIFT AND HIS GIANT CANNON''}}",
 		oddHeader: "{{rh||''A''|" + (pageNumber - 10) + "}}",
		footer: "",
		footerWithReferences: ""
	},
	{
		title: /Ruth Fielding /,
		evenHeader: "{{rh|" + (pageNumber - 10) + "|RUTH FIELDING AT SILVER RANCH}}",
		oddHeader: "{{rh||A|" + (pageNumber - 10) + "}}",
		footer: "",
		footerWithReferences: ""
	},
	{
		title: /Rover Boys /,
		evenHeader: "{{rh|" + (pageNumber - 18) + "|''THE ROVER BOYS IN NEW YORK''}}",
		oddHeader: "{{rh||''A''|" + (pageNumber - 18) + "}}",
		footer: "",
		footerWithReferences: ""
	},
	{
		title: /The vintage; a /,
		evenHeader: "{{c|THE VINTAGE}}",
		oddHeader: "{{c|THE EVE OF THE GATHERING}}",
		footer: "",
		footerWithReferences: ""
	},
	{
		title: /Bobbsey Twins /,
		evenHeader: "{{rh|" + (pageNumber - 18) + "|THE BOBBSEY TWINS AT SNOW LODGE}}",
		oddHeader: "{{rh||XX|" + (pageNumber - 18) + "}}",
		footer: "",
		footerWithReferences: ""
	},
	{
		title: /Dave Porter /,
		evenHeader: "{{rh|" + (pageNumber - 18) + "|DAVE PORTER IN THE GOLD FIELDS}}",
		oddHeader: "{{rh||XX|" + (pageNumber - 18) + "}}",
		footer: "",
		footerWithReferences: ""
	},
	{
		title: /First Footsteps /,
		evenHeader: "{{rh|" + (pageNumber - 46) + "|''First Footsteps in East Africa.''}}",
		oddHeader: "{{rh||XX|" + (pageNumber - 46) + "}}",
		footer: "",
		footerWithReferences: ""
	},
	{
		title: /Moving Picture /,
		evenHeader: "{{rh|" + (pageNumber - 10) + "|''MOVING PICTURE BOYS AND THE FLOOD''}}",
		oddHeader: "{{rh||''XX''|" + (pageNumber - 10) + "}}",
		footer: "",
		footerWithReferences: ""
	},
	{
		title: /At the Fall /,
		evenHeader: "{{rh|" + (pageNumber - 18) + "|''AT THE FALL OF PORT ARTHUR''}}",
		oddHeader: "{{rh||''A''|" + (pageNumber - 18) + "}}",
		footer: "",
		footerWithReferences: ""
	}
];
// </nowiki>

/**
 * TemplateScript adds configurable templates and scripts to the sidebar, and adds an example regex editor.
 * @see https://meta.wikimedia.org/wiki/TemplateScript
 * @update-token [[File:Pathoschild/templatescript.js]]
 */
$.ajax('//tools-static.wmflabs.org/meta/scripts/pathoschild.templatescript.js', { dataType:'script', cache:true }).then(function() {
	// customise proofreading tools
	pathoschild.TemplateScript.library.override('wikisource.proofreading', 'add-header', { accessKey: 'z' });
	pathoschild.TemplateScript.library.override('wikisource.proofreading', 'add-footer', { accessKey: 'f' });
	pathoschild.TemplateScript.library.override('wikisource.proofreading', 'cleanup-ocr', { accessKey: 'x' });
	pathoschild.TemplateScript.library.override('wikisource.proofreading', 'smallcaps', { accessKey: 'c' });
	pathoschild.TemplateScript.library.override('wikisource.proofreading', 'uppercase', { accessKey: 'u' });
});

/**
 * Add several tools useful when proofreading pages in the Page: namespace.
 * @see https://en.wikisource.org/wiki/Wikisource:TemplateScript
 */
mw.loader.load('//en.wikisource.org/w/index.php?title=MediaWiki:TemplateScript/proofreading.js&action=raw&ctype=text/javascript');

// == SIDEBAR TOOLS ==
/**
 * WikiEditor specific
 *
 * Custom buttons ONLY when Prefs set to - Enable enhanced editing toolbar - is selected,
 * Enable wizards for... - must not be selected. Show [old]edit toolbar - should be off.
 * based upon - https://github.com/he7d3r/mw-gadget-ExtraEditButtons
 */
// <nowiki>
var customizeToolbar = function() {
	$( '#wpTextbox1' ).wikiEditor( 'removeFromToolbar', { section: 'main', group: 'insert', tool: 'xlink' } )
	.wikiEditor( 'removeFromToolbar', { section: 'main', group: 'insert', tool: 'ilink' } )
	.wikiEditor( 'removeFromToolbar', { section: 'main', group: 'insert', tool: 'file' } )
	.wikiEditor( 'removeFromToolbar', { section: 'main', group: 'insert', tool: 'reference' } )
	.wikiEditor( 'removeFromToolbar', { section: 'main', group: 'insert', tool: 'signature' } )
	.wikiEditor( 'removeFromToolbar', { section: 'characters' } )
	.wikiEditor( 'removeFromToolbar', { section: 'advanced' } )
	.wikiEditor( 'removeFromToolbar', { section: 'help' } )
	.wikiEditor( 'addToToolbar', {
		section: 'main',
		group: 'format',
		tools: {
			underline: {
				labelMsg: 'wikieditor-toolbar-tool-underline',
				label: 'Underline',
				id: 'underline',
				filters: [ 'body:not(.ns-2, .ns-8, .ns-828)' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/8/8b/Button_underline_he.png',
				action: {
					type: 'encapsulate',
					options: {
						pre: "<u>",
						periMsg: 'wikieditor-toolbar-tool-underline-example',
						post: "</u>"
					}
				}
			},
			strikeout: {
				labelMsg: 'wikieditor-toolbar-tool-strikeout',
				label: 'Strike out',
				id: 'strikeout',
				filters: [ 'body:not(.ns-2, .ns-8, .ns-828)' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/6/6d/Vector_strikeout.png',
				action: {
					type: 'encapsulate',
					options: {
						pre: "<s>",
						periMsg: 'wikieditor-toolbar-tool-strikeout-example',
						post: "</s>"
					}
				}
			},
			emdash: {
				labelMsg: 'wikieditor-toolbar-tool-emdash',
				label: 'em-dash',
				id: 'emdash',
				filters: [ 'body:not(.ns-2, .ns-8, .ns-828)' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/8/8b/Button_m-dash.png',
				action: {
					type: 'replace',
					options: {
						'peri': '\u2014',
						'selectPeri': false
					}
				}
			},
			endash: {
				labelMsg: 'wikieditor-toolbar-tool-endash',
				label: 'en-dash',
				id: 'endash',
				filters: [ 'body:not(.ns-2, .ns-8, .ns-828)' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/8/8b/Button_n-dash.png',
				action: {
					type: 'replace',
					options: {
						'peri': '\u2013',
						'selectPeri': false
					}
				}
			},
			bar2: {
				labelMsg: 'wikieditor-toolbar-tool-bar2',
				label: 'bar2',
				id: 'bar2',
				filters: [ 'body:not(.ns-2, .ns-8, .ns-828)' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/b/bd/Button_number_2.png',
				action: {
					type: 'replace',
					options: {
						'peri': '{{bar|2}}',
						'selectPeri': false
					}
				}
			},
			'break': {
				labelMsg: 'wikieditor-toolbar-tool-break',
				label: 'break',
				id: 'break',
				filters: [ 'body:not(.ns-2, .ns-8, .ns-828)' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/f/f2/Button-br.png',
				action: {
					type: 'replace',
					options: {
						'peri': '<br />',
						'selectPeri': false
					}
				}
			},
			'zoom-in': {
				labelMsg: 'proofreadpage-button-zoom-in-label',
				label: 'Zoom in',
				id: 'zoom-in',
				filters: [ 'body.ns-104' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/0/04/Button_zoom_in.png',
				action: {
					type: 'callback',
					execute: function() {
						$zoomImage.prpZoom( 'zoomIn' );
					}
				}
			},
			'zoom-out': {
				labelMsg: 'proofreadpage-button-zoom-out-label',
				label: 'Zoom out',
				id: 'zoom-out',
				filters: [ 'body.ns-104' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/0/03/Button_zoom_out.png',
				action: {
					type: 'callback',
					execute: function() {
						$zoomImage.prpZoom( 'zoomOut' );
					}
				}
			},
			'reset-zoom': {
				labelMsg: 'proofreadpage-button-reset-zoom-label',
				label: 'Reset zoom',
				id: 'reset-zoom',
				filters: [ 'body.ns-104' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/2/2a/Button_examine.png',
				action: {
					type: 'callback',
					'execute': function() {
						$zoomImage.prpZoom( 'reset' );
					}
				}
			},
			hyphword: {
				labelMsg: 'wikieditor-toolbar-tool-hyphword',
				label: 'hyphword',
				id: 'hyphword',
				filters: [ 'body.ns-104' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/5/5a/Button_hyphenated_word.svg',
				action: {
					type: 'callback',
					execute: function(context) {
						hyphenated_word();
					}
				}
			},
			'toggle-visibility': {
				labelMsg: 'proofreadpage-button-toggle-visibility-label',
				label: 'Toggle visible headers and footers',
				id: 'toggle-visibility',
				filters: [ 'body.ns-104' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/2/2a/Button_category_plus.png',
				action: {
					type: 'callback',
					'execute': function() {
						toggleHeaders( 'fast' );
					}
				}
			},
			'toggle-layout': {
				labelMsg: 'proofreadpage-button-toggle-layout-label',
				label: 'Toggle layout',
				id: 'toggle-layout',
				filters: [ 'body.ns-104' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/0/04/Button_multicol.png',
				action: {
					type: 'callback',
					execute: function() {
						toogleLayout();
					}
				}
			}
		}
	} );
	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		section: 'main',
		group: 'insert',
		tools: {
			'ilink': {
				labelMsg: 'wikieditor-toolbar-tool-ilink',
				label: 'Wiki link',
				id: 'ilink',
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/4/48/Toolbar_Insert_link.png',
				offset: [2, -1582],
				action: {
					type: 'encapsulate',
					options: {
						pre: "[[",
						periMsg: 'wikieditor-toolbar-tool-ilink-example',
						post: "]]"
					}
				}
			},
			'xlink': {
				labelMsg: 'wikieditor-toolbar-tool-xlink',
				label: 'URL link',
				id: 'xlink',
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/5/55/Toolbar_insert_xlink.png',
				offset: [-70, 2],
				action: {
					type: 'encapsulate',
					options: {
						pre: "[",
						periMsg: 'wikieditor-toolbar-tool-xlink-example',
						post: "]"
					}
				}
			},
			'nowiki': {
				labelMsg: 'wikieditor-toolbar-tool-nowiki',
				label: 'NoWiki',
				id: 'nowiki',
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/8/80/Toolbar_insert_nowiki.png',
				offset: [-70, -70],
				action: {
					type: 'encapsulate',
					options: {
						pre: '<' + 'nowiki>',
						periMsg: 'wikieditor-toolbar-tool-nowiki-example',
						post: '<' + '/nowiki>'
					}
				}
			},
			redirect: {
				labelMsg: 'wikieditor-toolbar-tool-redirect',
				label: 'ReDirect',
				id: 'redirect',
				filters: [ 'body:not(.ns-828, .ns-829)' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/7/76/Insert_redirect.png',
				offset: [-70, -142],
				action: {
					type: 'encapsulate',
					options: {
						pre: mw.config.get( 'wgWikiEditorMagicWords' ).redirect + ' [[',
						periMsg: 'wikieditor-toolbar-tool-redirect-example',
						post: "]]",
						ownline: true
					}
				}
			},
			signature: {
				labelMsg: 'wikieditor-toolbar-tool-signature',
				label: 'Your Signature',
				id: 'signature',
				filters: [ 'body.ns-talk, body.ns-4' ],
				type: 'button',
				icon: '//upload.wikimedia.org/wikipedia/commons/7/79/Insert-signature.png',
				offset: [2, -1872],
				action: {
					type: 'encapsulate',
					options: {
						pre: '— ~~~~'
					}
				}
			}
		}
	} );
};
/* Check for edit mode and required modules are available. Then, customize */
if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
	mw.loader.using( 'user.options', function () {
		if ( mw.user.options.get( 'usebetatoolbar' ) == 1 ) {
			$.when(
				mw.loader.using( ['ext.wikiEditor'] ),
				$.ready
			).then( customizeToolbar );
		}
	} );
}

var addExtraButtons = function(){
	mw.toolbar.addButtons(
		{
			"imageFile": "//upload.wikimedia.org/wikipedia/commons/8/8b/Button_m-dash.png",
			"speedTip": "M-dash",
			"tagOpen": '—',
			"tagClose": '',
			"sampleText": ""
		},
		{
			"imageFile": "//upload.wikimedia.org/wikipedia/commons/8/8b/Button_n-dash.png",
			"speedTip": "N-dash",
			"tagOpen": '–',
			"tagClose": '',
			"sampleText": ""
		},
		{
			"imageFile": "//upload.wikimedia.org/wikipedia/commons/b/bd/Button_number_2.png",
			"speedTip": "2em",
			"tagOpen": '{{bar|2}}',
			"tagClose": '',
			"sampleText": ""
		},
		{
			"imageFile": "//upload.wikimedia.org/wikipedia/commons/2/22/Button_ellipsis.png",
			"speedTip": "Ellipsis",
			"tagOpen": '…',
			"tagClose": '',
			"sampleText": ""
		},
		{
			"imageFile": "//upload.wikimedia.org/wikipedia/commons/b/b1/Button_dagger.png",
			"speedTip": "dagger",
			"tagOpen": '†',
			"tagClose": '',
			"sampleText": ""
		},
		{
			"imageFile": "//upload.wikimedia.org/wikipedia/commons/f/f2/Button-br.png",
			"speedTip": "Break",
			"tagOpen": '<br />',
			"tagClose": '',
			"sampleText": ""
		},
		{
			"imageFile": "//upload.wikimedia.org/wikipedia/commons/c/cd/Button_poem.png",
			"speedTip": "Break & gap",
			"tagOpen": '<br />\n{{gap}}',
			"tagClose": '',
			"sampleText": ""
		}
	);
};  //end of var addExtraButtons
// </nowiki>

if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
	mw.loader.using( 'user.options', function () {
		if ( mw.user.options.get( 'showtoolbar' ) == 1 ) {
			$.when(
				mw.loader.using( 'mediawiki.toolbar' ),
				$.ready
			).then( addExtraButtons );
		}
	} );
}

// From Inductiveload page

/*
 * Does a lookup on the previous page to see if there is a hyphenated
 * word and tries to complete it
 *
 * To use this script, add the following to your .js:
 *     importScript('User:Inductiveload/Hyphenated word.js');
 *
 */

function check_hws(data) {
	try {
		var editbox = document.getElementsByName('wpTextbox1')[0];
		if (editbox && !data.query.pages["-1"]) {
			for (var ids in data.query.pages) {
				var content = data.query.pages[ids].revisions[0]['*'];
				var match = content.match( /{{ *([Hh]ws|[Hh]yphenated word start)\|([^\|}]*)\|?([^\|}]*)?}}/ );
				
				if (match !== undefined && match.length > 3) {
					var hws = match[2];
					var word = match[3];
					var hwe = word.slice(hws.length);
					var hwestring = '{{hwe|'+hwe+'|'+word+'}} ';
					
					editbox.value = hwestring + editbox.value;
				}
		
				break;
			}
		}
	}
	catch (err) { }
}

function hyphenated_word() {
	var r = new RegExp("(\\d+)$");
	var page = Number(r.exec(mw.config.get('wgPageName'))[1]) - 1; //previous page
	var pagename = mw.config.get('wgPageName').replace(/\d+$/g, page);

	var url = mw.config.get('wgServer') + mw.config.get('wgScriptPath')
	+ "/api.php?action=query&prop=revisions&callback=check_hws&rvprop=content"
	+ "&format=json&titles=" + encodeURIComponent(pagename);

	$('body').append('<script type="text/javascript" src="' + url + '"/>');
}

$(function() {
	var tb = document.getElementById("toolbar");
	if(tb) {
		var image = document.createElement("img");
		image.width = 23;
		image.height = 23;
		image.border = 0;
		image.className = "mw-toolbar-editbutton";
		image.style.cursor = "pointer";
		image.alt = "Hyph. word";
		image.title = "Add hyphenated word started on the previous page";
		image.src = "//upload.wikimedia.org/wikipedia/commons/thumb/5/5a/Button_hyphenated_word.svg/23px-Button_hyphenated_word.svg.png";
		image.onclick = hyphenated_word;
		tb.appendChild(image);
	}
});