MediaWiki:Wikificator.js — версиосыз куспын пӧртэмлык

тупатонлэн описаниез ӧвӧл
function processText() {
var i,
u = '\u00A0'; // unbreakablenon-breaking space
if ( mw.config.get('wgNamespaceNumber') % 2 || mw.config.get('wgNamespaceNumber') === 4 ) { // is talk page
var sigs = txt.match( /\d\d:\d\d, \d\d? \S{3,8} 20\d\d \(UTC\)/g );
 
hideTag( 'code' );
hideTag( 'kbd' );
hideTag( 'tt' );
 
hideTag( 'math' );
hideTag( 'timeline' );
hideTag( 'chem' );
hideTag( 'score' );
hideTag( 'categorytree' );
hideTag( 'inputbox' );
hideTag( 'mapframe' );
hideTag( 'maplink' );
 
r( /( |\n|\r)+\{\{(·|•|\*)\}\}/g, '{{$2}}' ); // before {{·/•/*}}, usually in templates
r( /\{\{\s*[Шш]аблон:([\s\S]+?)\}\}/g, '{{$1}}' );
r( /(\{\{\s*)(?:reflist|список примечаний)(\s*[\|\}])/ig, '$1валэктонъёс$2' );
/* // локализовать
 
r( /(\{\{\s*)примечания(\s*\|\s*)[4-9](\s*[\|\}])/ig, '$1примечания$2узкие$3' );
r( /(\{\{\s*)примечания\s*\|\s*height=[0-9]*(\s*[\|\}])/ig, '$1примечания$2' );
r( /[\u00A0 ]+(\{\{\s*([Rr]ef-[a-z\-]+?|[Ee]n icon|[Cc]hecked|[Vv]|[Пп]роверено)\}\})/g, '$1' );
*/
r( /<[\/\\]?(hr|br)( [^\/\\>]+?)? ?[\/\\]?>/gi, '<$1$2>' );
/* r( /(\| *Координаты (?:истока|устья) *= *)(\d+(?:\.\d+)?)[,/] ?(\d+(?:\.\d+)?(?=\s))/g, function ( s, m1, m2, m3 ) {
return m1 + ( +parseFloat( m2 ).toFixed( 4 )) + '/' + ( +parseFloat( m3 ).toFixed( 4 ) );
});
*/ r( /<noinclude>\s*(\{\{[dD]ocpage\}\})\s*<\/noinclude>/g, '$1' );
/* r( /(\| *(?:pp?|S|s|с|c|страницы\d?|pages\d?|seite\d?|alleseiten|листы\d?|том|volume|band|выпуск|issue|heft|номер|столбцы\d?|columns\d?|kolonnen\d?|серия год) *= *)(\d+)[\u00A0 ]?(?:-{1,3}|—) ?(\d+)/g, '$1$2—$3' );
r( /(\| *год *= *)(\d{4})[\u00A0 ]?(?:-{1,3}|—) ?(\d{4})/g, '$1$2—$3' );
*/
r( /(\[\[[^\{\]|\n]+){{!}}([^\{\]|\n]+\]\])/g, '$1|$2' );
for ( i in window.wfPluginsT ) {
if ( window.wfPluginsT.hasOwnProperty( i ) ) {
window.wfPluginsT[i]( txt, r );
}
}
hideTemplates();
hide( /^[ \t].*/mg );
// Nice links
r( /(\[\[[^|\[\]]*)[\u00AD\u200E\u200F]+([^\[\]]*\]\])/g, '$1$2' ); // Soft Hyphen & DirMark
r( /\[\[ *([^|\[\]]+?) *\| *(\1'''''|'''|'')([a-zа-яё^'|[\]]*)\2 *\]\]/g, '$2[[$21|$3]]$32' ); // move fomatting out of link text
/* r( /\[\[ *([^|\[\]]+) *\| *(\1)([a-zа-яё]*) *\]\]/g, '[[$2]]$3' ); */ // то же самое?
r( /\[\[([^|[\]\n]+)\|([^|[\]\n]+)\]\]/g, processLink ); // link shortening
r( /\[\[ *([^|\[\]]+)([^|\[\]()]+) *\| *\1 *\]\]\2/g, '[[$1$2]]' ); // text repetition after link
r( /\[\[ *(?!Файл:|Категория:)([a-zA-Zа-яёА-ЯЁ\u00A0-\u00FF %!\"$&'()*,\-—.\/0-9:;=?\\@\^_`’~]+) *\| *([^\|\[\]]+) *\]\]([a-zа-яё]+)/g, '[[$1|$2$3]]' ); // "
t.innerHTML = s;
var c = t.value;
if ( c.length === 1 && c.charCodeAt( 0 ) > 127 || s === '&#x20;' ) {
return c;
}
r( /((?:^|[\s"])\d+(?:[\.,]\d+)?)\s*[xх]\s*(\d+(?:[\.,]\d+)?)\s*([мm]{1,2}(?:[\s"\.,;?!]|$))/g, '$1×$2' + u + '$3' );
r( /\s+×\s+/g, u + '×' + u );
r( /([\wа-яА-ЯёЁ])'(?=[\wа-яА-ЯёЁ])/g, '$1’$2' ); // '
r( /№№/g, '№' );
 
r( /^== сноски ==$/gmi, '== Валэктонъёс ==' );
r( /^== внешние\sссылки ==$/gmi, '== Чӧлсконъёс ==' );
r( /^== (?:(.+)[^.:])\.|(.+):) ==$/gm, '== $1$2 ==' );
r( /^== '''(?!.*'''.*''')(.+)''' ==$/gm, '== $1 ==' );
 
r( /(Т|т)\.\s?н\./g, '$1.' + u + 'н.' );
r( /(И|и)\.\s?о\./g, '$1.' + u + 'о.' );
r( /с\.\s?ш\./g, 'с.' + u + 'ш.' );
r( /ю\.\s?ш\./g, 'ю.' + u + 'ш.' );
r( /в\.\s?д\./g, 'в.' + u + 'д.' );
r( /з\.\s?д\./g, 'з.' + u + 'д.' );
r( /л\.\s?с\./g, 'л.' + u + 'с.' );
r( /а\.\s?е\.\s?м\./g, 'а.' + u + 'е.' + u + 'м.' );
r( /а\.\s?е\./g, 'а.' + u + 'е.' );
r( /мм\sрт\.\s?ст\./g, 'мм' + u + 'рт.' + u + 'ст.' );
r( /н\.\s?э(\.|(?=\s))/g, 'н.' + u + 'э.' );
r( /(Д|д)(о|\.)\sн\.\s?э\./g, '$1о' + u + 'н.' + u + 'э.' );
r( /(\d)[\u00A0 ]?(млн|млрд|трлн|(?:м|с|д|к)?м|[км]г)\.?(?=[,;.]| "?[а-яё\-]|\s*\|)/g, '$1' + u + '$2' );
r( /(\d)[\u00A0 ](тыс)([^\.А-Яа-яЁё])/g, '$1' + u + '$2.$3' );
r( /ISBN:\s?(?=[\d\-]{8,17})/, 'ISBN ' );
r( /([А-ЯЁ]\.) ?([А-ЯЁ]\.) ?([А-ЯЁ][а-яё])/g, '$1' + u + '$2' + u + '$3' );
r( /([А-ЯЁ]\.)([А-ЯЁ]\.)/g, '$1 $2' );
r( /([а-яё]"?\)?[\.\?!:])((?:\x01\d+\x02\|)?(?:[A-QS-ZА-ЯЁ]|R(?!u\b)))/g, '$1 $2' ); // "word. wordWord"; don't change in cases like "Газета.Ru"
r( /([)"a-zа-яё\]²³])\s*([,:])([\[(a-zа-яё])/g, '$1$2 $3' ); // "word, word", "word: word"; except ":"
r( /([)a-zа-яё\]²³])\s*([,:])"/g, '$1$2 "' );
r( /([)"a-zа-яё\]²³])[ \su00A0\t]([,;])\s([\[("a-zа-яё])/g, '$1$2 $3' );
r( /([^%\/\wА-Яа-яЁё]\d+?(?:[\.,]\d+?)?) ?([%‰])(?!-[А-Яа-яЁё])/g, '$1' + u + '$2' ); //5 %
r( /(\d) ([%‰])(?=-[А-Яа-яЁё])/g, '$1$2' ); //5%-й
 
// Temperature
r( /([\s\d=≈≠≤≥<>—("'|])([+±−\-]?\d+?(?:[.,]\d+?)?)(([ °\^*]| [°\^*])(C|F))(?=[\s"').,;!?|\x01])/gm, '$1$2' + u + '°$5' ); // '
 
// Dot → comma in numbers
}
 
function unhide( s, num ) {
if ( '0'.replace( '0', '$$' ) === '$' ) { ////$ in replacing string is special, except in IE
return hidden[ num - 1 ];
for ( i = 0; i < hidden.length; i++ ) {
hidden[i] = hidden[i].replace( /\$/g, '$$$$' );
}
}
while ( hiddentxt.lengthmatch( >/\x01\d+\x02/ 0) ) {
r( '/\x01' (\d+ hidden.length + ')\x02'/g, hidden.pop()unhide );
}
 
txt = txt.substr( 1, txt.length - 2 ); // compensation for "txt = '\n' + txt + '\n';"
}