Prijeđi na sadržaj

Suradnik:GregorB/CitationFix.js

Izvor: Wikipedija
Inačica 4290949 od 3. travnja 2014. u 19:24 koju je unio GregorB (razgovor | doprinosi) (2.0 (pretvaranje dmy datuma))

Napomena: Nakon objave možda ćete trebati očistiti međuspremnik svog preglednika kako biste vidjeli promjene.

  • Firefox / Safari: držite Shift i pritisnite Reload, ili pritisnite bilo Ctrl-F5 ili Ctrl-R (⌘-R na Macu)
  • Google Chrome: pritisnite Ctrl-Shift-R (⌘-Shift-R na Macu)
  • Internet Explorer / Edge: držite Ctrl i kliknite Refresh, ili pritisnite Ctrl-F5
  • Opera: pritisnite Ctrl-F5.
// CitationFix.js je skripta za proširenje funkcionalnosti wikEd-a, naprednog alata za uređivanje (v. Moje postavke > Dodaci > wikEd).
// Skripta omogućuje da se jednim klikom svi pozivi predloška Citiranje weba (Cite web) u nekom članku pretvore u pozive predloška Citiranje www.
// Za upute v. stranicu za razgovor (Razgovor sa suradnikom:GregorB/CitationFix.js).

var wikEdConfig = {
	// define custom buttons
	// button number: [id, class, tooltip, image url, width, height, alt text, onclick handler code were obj is the button element]
	button: {
		100: ['wikEdDiv', 'wikEdButton', 'Popravi predloške za citiranje', '/media/wikipedia/commons/6/67/WikEd_logo.png', '16', '16', 'Cite web', 'WikEdEditButton(this, this.id, null, CitationFixHandler);' ]
	},
 
	// define custom button bars
	// button name: [id outer, class outer, id inner, class inner, height, grip title, button numbers]
	buttonBar: {
		'custom1': ['wikEdButtonBarCustom1',  'wikEdButtonBarCustom1',  'wikEdButtonsCustom1',  'wikEdButtonsCustom1',  44, 'My custom buttons', [100] ]
	}
};

function CitationFixHandler(obj) {
	function DateReplace(match, d, ws1, m, ws2, y, offset, string) {
		var monthArraySrc = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
		var monthArrayDest = ['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca'];
		var index = monthArraySrc.indexOf(m);
		
		if (index != -1) m = monthArrayDest[index];
		return d + '. ' + m + ' ' + y + '.';
	}
	
	function ParamReplace(match, pipe, paramName, eq, paramValue, offset, string) {
		var paramArraySrc = ['title', 'author', 'authorlink', 'last', 'first', 'coauthors', 'editor', 'publisher', 'language', 'work', 'pages', 'date', 'month', 'year', 'accessdate', 'archiveurl', 'archivedate', 'quote'];
		var paramArrayDest = ['naslov', 'autor', 'autorlink', 'prezime', 'ime', 'koautori', 'urednik', 'izdavač', 'jezik', 'rad', 'stranice', 'dan', 'mjesec', 'godina', 'preuzeto' ,'arhivurl', 'arhivdatum', 'citat'];
		var index = paramArraySrc.indexOf(paramName);
    
		if (index != -1) paramName = paramArrayDest[index];
		if (['dan', 'preuzeto', 'arhivdatum'].indexOf(paramName) != -1) {
			paramValue = paramValue.replace(/(\d+)(\s+)([A-Z][a-z]+)(\s+)(\d+)/, DateReplace); // dmy
		}
		return pipe + paramName + eq + paramValue;
	}	

	function CitationReplace(match, curly, templateName, params, offset, string) {
		params = params.replace(/(\|\s*)([a-z]+)(\s*=)([^}|]*)/g, ParamReplace);
		return curly + 'citiranje www' + params;
	}
	
	WikEdGetText(obj, 'selection, cursor');
	if (obj.selection.plain != '') {
		obj.changed = obj.selection;
	}
	else {
		WikEdGetText(obj, 'whole');
		obj.changed = obj.whole;
	}
	
	obj.changed.plain = obj.changed.plain.replace(/({{\s*)([Cc]itiranje weba|[Cc]ite web)\b([\s\S]*?}})/g, CitationReplace)
	
	obj.changed.keepSel = true;
	return;
}