/* 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 ON CLIFF ISLAND}}",
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 - 14) + "|BOBBSEY TWINS ON A HOUSEBOAT|}}",
oddHeader: "{{rh||XX|" + (pageNumber - 14) + "}}",
footer: "",
footerWithReferences: ""
},
{
title: /Dave Porter /,
evenHeader: "{{rh|" + (pageNumber - 18) + "|DAVE PORTER AT BEAR CAMP}}",
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);
}
});