Suradnik:GregorB/CitationFix.js
Izgled
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 koja 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 myContent = document.editform.wpTextbox1;
if (wgNamespaceNumber != -1 && myContent) $(onLoad);
function onLoad() {
var portletLink = mw.util.addPortletLink('p-tb', '#', 'Popravi predloške za citiranje', 't-citationfix');
$(portletLink).click(wpCitationFix);
}
function wpCitationFix() {
function TranslateMonth(m, type) {
var monthArrayEN = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var monthArrayHR = [
['siječanj', 'veljača', 'ožujak', 'travanj', 'svibanj', 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', 'prosinac'],
['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca']
];
var index = monthArrayEN.indexOf(m);
if (index != -1) m = monthArrayHR[type][index];
return m;
}
function DateReplaceDMY(match, d, ws1, m, ws2, y, offset, string) {
return d + '. ' + TranslateMonth(m, 1) + ' ' + y + '.';
}
function DateReplaceMDY(match, m, ws1, d, ws2, y, offset, string) {
return DateReplaceDMY(match, d, ws1, m, ws2, y, offset, string);
}
function DateReplaceMY(match, m, ws, y, offset, string) {
return TranslateMonth(m, 0) + ' ' + y + '.';
}
function DateReplaceM(match) {
return TranslateMonth(match, 0);
}
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+)/, DateReplaceDMY);
paramValue = paramValue.replace(/([A-Z][a-z]+)(\s+)(\d+)(,?\s+)(\d+)/, DateReplaceMDY);
paramValue = paramValue.replace(/([A-Z][a-z]+)(\s+)(\d+)/, DateReplaceMY);
}
if (['dan', 'godina'].indexOf(paramName) != -1) {
paramValue = paramValue.replace(/^(\s*)(\d+)(\s*)$/, '$1$2.$3');
}
if (paramName == 'mjesec') {
paramValue = paramValue.replace(/[A-Z][a-z]+/, DateReplaceM);
}
if (paramName == 'jezik') {
paramValue = paramValue.replace(/English/, 'engleski');
}
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;
}
var newContent = myContent.value.replace(/({{\s*)([Cc]itiranje weba|[Cc]ite web)\b([\s\S]*?}})/g, CitationReplace);
if (newContent != myContent.value) {
myContent.value = newContent;
document.getElementsByName('wpSummary')[0].value = 'Citiranje www pomoću [[Suradnik:GregorB/CitationFix.js|skripte]]';
}
}