37,388
עריכות
חלוקת קונטרסים (שיחה | תרומות) אין תקציר עריכה |
חלוקת קונטרסים (שיחה | תרומות) (עדכון מויקיפדיה: https://he.wikipedia.org/wiki/%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Gadget-Checkty.js) תגית: ביטול |
||
שורה 47: | שורה 47: | ||
'checkty-language-check': 'בערך זה מופיע הביטוי "$1". ', | 'checkty-language-check': 'בערך זה מופיע הביטוי "$1". ', | ||
'checkty-wrong-use-discussion': 'דף זה עשוי להיות דף דיונים. אין לערוך תגובות של עורכים אחרים והשימוש בבדיקה של דף כזה אינו מומלץ. האם ברצונך להפעיל את הכלי למרות זאת?', | 'checkty-wrong-use-discussion': 'דף זה עשוי להיות דף דיונים. אין לערוך תגובות של עורכים אחרים והשימוש בבדיקה של דף כזה אינו מומלץ. האם ברצונך להפעיל את הכלי למרות זאת?', | ||
'checkty-vav-warning': 'כאשר ו עיצורית מופיעה באמצע מילה נהוג להכפילה. ייתכן שיש מופעים שדורשים תיקון.' | 'checkty-vav-warning': 'כאשר ו עיצורית מופיעה באמצע מילה נהוג להכפילה. ייתכן שיש מופעים שדורשים תיקון.', | ||
'checkty-inuse-warning': 'הדף כולל תבנית בעבודה. אנא הימנעו מעריכה של ערך בעבודה כאשר משתמשים אחרים עובדים עליו במקביל. האם ברצונכם להפעיל בדיקה אוטומטית בכל זאת?' | |||
}); | }); | ||
שורה 53: | שורה 54: | ||
try { | try { | ||
// proper spacing around , and . using negative lookahead and lookbehind (ES2018) to acronyms (b.b.c) | // proper spacing around , and . using negative lookahead and lookbehind (ES2018) to acronyms (b.b.c) | ||
return new RegExp('(?<!\\.[א-ת]*)([א-ת]\\]?\\]?) ?([,\\.]) ?(?=[א-ת]?\\[?\\[?[א-ת]{3})(?![א-ת]*\\.[א-ת])','g'); | return new RegExp('(?<!\\.[א-ת]*)([א-ת]\\]?\\]?"?) ?([,\\.]) ?(?=[א-ת]?\\[?\\[?[א-ת]{3})(?![א-ת]*\\.[א-ת])','g'); | ||
} catch(e) { | } catch(e) { | ||
console.log('Checkty - browser doesnt support negative lookhead or lookbehind (ES2018)'); | console.log('Checkty - browser doesnt support negative lookhead or lookbehind (ES2018)'); | ||
שורה 79: | שורה 80: | ||
to: "", | to: "", | ||
comment: 'הסרת תווים בלתי נראים' | comment: 'הסרת תווים בלתי נראים' | ||
}, { | }, { // trim spaces in end of line | ||
from: / +$/mg, | from: / +$/mg, | ||
to: '' | to: '' | ||
שורה 138: | שורה 139: | ||
regexes: [], | regexes: [], | ||
ignoreRegexes: [], | ignoreRegexes: [], | ||
verifyRun: function () { | |||
var self = this, runExcute = true, | |||
inUseTemplatesRgx = /\{\{בעבודה[ \}\|]/; | |||
if (!this.textbox || this.textbox.value.length === 0) return; | |||
// this tool is not indented to be used in discussion pages | |||
if ( mw.config.get('wgNamespaceNumber') % 2 == 1 || ( mw.config.get('wgNamespaceNumber') != 0 && /\(IST\)/.exec(this.textbox.value ) )) { | |||
runExcute = false; | |||
OO.ui.confirm(mw.msg('checkty-wrong-use-discussion')).done( function( confirmed ) { if ( confirmed ) self.execute(); }); | |||
} | |||
// this tool is not intended to be used while other people are working on the same page | |||
if( inUseTemplatesRgx.exec(this.textbox.value) ) { | |||
runExcute = false; | |||
OO.ui.confirm( mw.msg( 'checkty-inuse-warning' ) ).done( function( confirmed ) { if ( confirmed ) self.execute(); }); | |||
} | |||
if (runExcute) this.execute(); | |||
}, | |||
run: function () { | run: function () { | ||
if (this != chectTyTool) { | if (this != chectTyTool) { | ||
שורה 145: | שורה 164: | ||
var t = $('#wpTextbox1'); | var t = $('#wpTextbox1'); | ||
this.textbox = t.length ? t[0] : null; | this.textbox = t.length ? t[0] : null; | ||
this.verifyRun(); | |||
}, | |||
execute: function() { | |||
// indication that skippable replacements should be ignored in the page | // indication that skippable replacements should be ignored in the page | ||
this.skipCheckty = this.textbox.value.match(/{{ללא[_ ]בוט\|\s*צ'קטי\s*}}/g); | this.skipCheckty = this.textbox.value.match(/{{ללא[_ ]בוט\|\s*צ'קטי\s*}}/g); | ||
שורה 309: | שורה 326: | ||
nakedLinks: function() { | nakedLinks: function() { | ||
var t = this.textbox.value, | var t = this.textbox.value, | ||
nakeRegex=/\[(http[^ ]+?)\]|\{\{הערה *\| *(?:1 *= *)?(https?:\/\/[^ }|]+)\}\}/g, | nakeRegex=/\[(http[^ ]+?)\]|\{\{הערה *\| *(?:1 *= *)?(https?:\/\/[^ }|]+)\}\}|<ref(?: [^/>]*)?>(https?:\/\/[^ }|]+?)<\/ref>/g, | ||
nakeErrors=[], m, self= this; | nakeErrors=[], m, self= this; | ||
while (m = nakeRegex.exec(t)) { | while (m = nakeRegex.exec(t)) { | ||
var nakedUrl = m[1] || m[2], | var nakedUrl = m[1] || m[2] || m[3], | ||
fixNakedLink = $( '<a href="#">' + mw.msg( 'checkty-naked-link-fix' )+'</a>' ).data( { 'search': nakedUrl, 'inRef': m[ | fixNakedLink = $( '<a href="#">' + mw.msg( 'checkty-naked-link-fix' )+'</a>' ).data( { 'search': nakedUrl, 'inRefTemplate': m[2], 'inRef': m[3] }).click( function ( e ) { | ||
var searchUrl = $(this).data( 'search' ), | var searchUrl = $(this).data( 'search' ), | ||
inRef = $(this).data('inRef'), | inRef = $(this).data('inRef'), | ||
inRefTemplate = $(this).data('inRefTemplate'), | |||
citoidTemplatesPromise = new mw.Api().loadMessagesIfMissing( [ 'citoid-template-type-map.json' ] ); | citoidTemplatesPromise = new mw.Api().loadMessagesIfMissing( [ 'citoid-template-type-map.json' ] ); | ||
// Common case: pasting a URI into this field. Citoid expects | // Common case: pasting a URI into this field. Citoid expects | ||
שורה 363: | שורה 381: | ||
var template = '{{'+CiteTemplates[d[0].itemType]+'|' + params.join('|')+'}}', | var template = '{{'+CiteTemplates[d[0].itemType]+'|' + params.join('|')+'}}', | ||
wikitext = self.textbox.value; | wikitext = self.textbox.value; | ||
if ( | if ( inRefTemplate ) { | ||
wikitext = wikitext.replace(new RegExp('\\{\\{הערה *\\| *(?:1 *= *)?'+mw.util.escapeRegExp(searchUrl)+'\\}\\}', 'g'), '{{הערה|' + template + '}}'); | wikitext = wikitext.replace(new RegExp('\\{\\{הערה *\\| *(?:1 *= *)?'+mw.util.escapeRegExp(searchUrl)+'\\}\\}', 'g'), '{{הערה|' + template + '}}'); | ||
} else if ( inRef ) { | |||
wikitext = wikitext.replace(new RegExp('(<ref[^>]*>)'+mw.util.escapeRegExp(searchUrl)+'(</ref>)', 'g'), '$1' + template + '$2'); | |||
} else { | } else { | ||
// this is more context sensitive - sometimes we may or may not want to wrap with ref | // this is more context sensitive - sometimes we may or may not want to wrap with ref | ||
שורה 834: | שורה 854: | ||
} ).length === 0 ) { | } ).length === 0 ) { | ||
var fistURL = that.fistURL({ | var fistURL = that.fistURL({ | ||
datatype: 'articles', | |||
data: articleName | |||
}); | }); | ||
var msg = $('<div>', { | var msg = $('<div>', { | ||
שורה 973: | שורה 995: | ||
var splittedWarn = genrealWarningWords[i].split("//"); | var splittedWarn = genrealWarningWords[i].split("//"); | ||
if ( splittedWarn.length !== 2 ) continue; | if ( splittedWarn.length !== 2 ) continue; | ||
checks.push({ | try { | ||
checks.push({ | |||
'test': new RegExp( splittedWarn[0], 'i' ), | |||
}); | 'remark': splittedWarn[1] | ||
}); | |||
} | |||
catch(e) | |||
{ | |||
/* negative lookbehind and similar advanced regex | |||
will be skipped in browser which don't support it */ | |||
console.log('Skippted automatic check ' + i ); | |||
console.log(splittedWarn); | |||
} | |||
} | } | ||
chectTyTool.languageCheck(checks); | chectTyTool.languageCheck(checks); | ||
שורה 1,501: | שורה 1,532: | ||
var t = this.textbox.value, | var t = this.textbox.value, | ||
viafTemplate = /\{\{בקרת זהויות[\}|]/g, | viafTemplate = /\{\{בקרת זהויות[\}|]/g, | ||
acTemplate = '{{' + 'בקרת זהויות}}', | |||
newText; | newText; | ||
if ( viafTemplate.exec( t ) ) return; // viaf already exist | if ( viafTemplate.exec( t ) ) return; // viaf already exist | ||
newText = t.replace(/{{קצרמר/, ' | newText = t.replace(/{{קצרמר/, acTemplate + '\n{{קצרמר'); // before stub | ||
if (newText == t) newText = t.replace(/{{מיון רגיל:/, ' | if (newText == t) newText = t.replace(/{{מיון רגיל:/, acTemplate + '\n{{מיון רגיל:'); //before default sort | ||
if (newText == t) newText = t.replace(/\[\[קטגוריה:/, ' | if (newText == t) newText = t.replace(/\[\[קטגוריה:/, acTemplate + '\n[[קטגוריה:'); // before categories | ||
if (newText == t) newText = t + | if (newText == t) newText = t + '\n' + acTemplate; | ||
this.textbox.value = newText; | this.textbox.value = newText; | ||
this.addSummary('בקרת זהויות'); | this.addSummary('בקרת זהויות'); |