WikiDer > MediaWiki: Gadget-charinsert-core.js - Википедия

MediaWiki:Gadget-charinsert-core.js - Wikipedia

Примечание: После сохранения вам нужно обойти кеш браузера, чтобы увидеть изменения. Гугл Хром, Fire Fox, Microsoft Edge и Сафари: Удерживайте ⇧ Shift ключ и щелкните Перезагрузить кнопка на панели инструментов. Подробные сведения и инструкции о других браузерах см. Википедия: Обход кеша.

/** * Скопировано из [[mw: User: Alex Smotrov / edittools.js]], модифицировано для использования в английской Википедии. * * Конфигурация (задается из [[Special: MyPage / common.js]]): * window.charinsertCustom - Объект. Включен в список charinsert по умолчанию. Например, установка * это в {Symbols: '‽'} добавит interrobang в конец раздела Symbols. * window.editToolsRecall - логический. Установите true, чтобы создать переключатель отзыва. * window.charinsertDontMove - логический. Установите true, чтобы оставить поле в положении по умолчанию, а не * чем перемещать его над сводкой редактирования. * window.updateEditTools () - Функция. Вызовите после обновления window.charinsertCustom для регенерации * Окно EditTools. *// * глобальный jQuery, mw, charinsertCustom * /окно.updateEditTools = функция () {};jQuery( документ ).готовы( функция ( $ ) {	вар $ currentFocused,		editИнструменты;    функция getSelectedSection() {		вар selectedSection = mw.место хранения.получать( editИнструменты.storageKey )			|| mw.место хранения.сессия.получать( editИнструменты.storageKey );				возвращаться selectedSection;    }        функция saveSelectedSection( newIndex ) {		mw.место хранения.набор( editИнструменты.storageKey, newIndex )			|| mw.место хранения.сессия.набор( editИнструменты.storageKey, newIndex );    }        editИнструменты = {        // Записи с префиксом ␥ (U + 2425 СИМВОЛ ДЛЯ УДАЛЕНИЯ ВТОРОЙ ФОРМЫ) не появятся в пространстве имен статьи (пространство имен 0).        // Пожалуйста, внесите какие-либо изменения в [[MediaWiki: Edittools]], однако вместо символа ␥ используйте {{#ifeq: {{NAMESPACE}} | {{ns: 0}} | | }}.        charinsert: {            'Вставлять': '- - ° ′ ″ ≈ ≠ ≤ ≥ ± - × ÷ ← → · § ␥Подпишите_ваши_посты_ на_толк_страницах: ␥ ~~  ~~ Cite_your_sources:  + ',            'Вики-разметка': 'Вставить: - - ° ′ ″ ≈ ≠ ≤ ≥ ± - × ÷ ← → · § ␥ ~~  ~~  +  Wiki_markup: { {+}} { { {+}} } | [+] [ [+]] [ [Категория: +]] # ПОВТОР. [ [+]] & Nbsp;  +   +   +   +  
 + 
+
{ {# tag: ref | + | group = "nb" | name = ""}} { {Reflist}} <ссылки ./> + + { {DEFAULTSORT: +}} + +
', 'Символы': '~ | ¡¿† ‡ ↔ ↑ ↓ • ¶ # ∞ '+' «+» ‹+› «+» { {angle.bracket | +}} ¤ ₳ ฿ ₵ ¢ ₡ ₢ $ ₫ ₯ € ₠ ₣ ƒ ₭ ₤ ℳ ₥ ₦ № ₧ ₰ £ ៛ ₨ ₪ ৳ ₮ ₩ ¥ ♠ ♣ ♥ ♦ ♭ ♯ ♮ © ® ™ ◌ ', 'Латинский': 'A a Á á À à  â Ä ä ǎ Ă ă Ā ā à ã Å å ą æ Ǣ ǣ B b C c Ć ć Č č Ç ç D d Ď đ Ð ð E e É é È è Ė ė Ê ê Ë ë Ě ě Ĕ Ē ē Ẽ ẽ ę ẹ Ɛ ɛ Ǝ ǝ Ə ə F f G g Ġ ġ Ĝ ĝ Ğ ğ Ģ H h Ĥ ĥ Ħ ħ Ḥ I i İ ı Í í Ì ì Î î ï ǐ Ĭ ĭ ī Ĩ ĩ Į J j Ĵ ĵ K k Ķ ķ L l Ĺ Ŀ ŀ ł Ḷ ḷ ḹ M m Ṃ ṃ N n ń Ň ň Ñ ñ ņ Ṇ ṇ Ŋ ŋ O o Ó ó Ò ò ô Ö ö Ǒ ǒ Ŏ Ō õ Ǫ ǫ Ọ Ø ø œ Ɔ ɔ P p Q q R r Ŕ ŕ Ř ř Ŗ ŗ Ṛ ṛ Ṝ S s Ś ś Ŝ ŝ Š š Ş ş Ṣ ṣ ß T t Ť ť Ţ Ṭ ṭ Þ U u Ú ú û ü ü Ǔ ǔ Ŭ ŭ Ū ū Ũ ũ Ů ů ụ Ű ű Ǘ ǘ ǜ ǖ V v W w Ŵ ŵ X x Y y ý ŷ Ÿ ÿ Ỹ ỹ Z z Ź Ż ż Ž ž ß Ð ð Þ þ Ŋ ŋ Ə ə Ɂ Ꞌ ꞌ ʻ ꞏ ', Греческий: 'ΆάΈέΉήΊίΌόΎύΏώ ΑαΒβΓγΔδ ΕεΖζΗηΘθ ΙιΚκΛλΜμ ΝνΞξΟοΠπ ΡρΣσςΤτΥυ ΦφΧχΨψΩω Ϝϝυ̯ι̯ ᾼᾳᾴᾺὰᾲᾶᾷἈἀᾈᾀἉἁᾉᾁἌἄᾌᾄἊἂᾊᾂἎἆᾎᾆἍἅᾍᾅἋἃᾋᾃἏἇᾏᾇ ῈὲἘἐἙἑἜἔἚἒἝἕἛἓ ῌῃῄῊὴῂῆῇἨἠᾘᾐἩἡᾙᾑἬἤᾜᾔἪἢᾚᾒἮἦᾞᾖἭἥᾝᾕἫἣᾛᾓἯἧᾟᾗ ῚὶῖἸἰἹἱἼἴἺἲἾἶἽἵἻἳἿἷΪϊΐῒῗ ῸὸὈὀὉὁὌὄὊὂὍὅὋὃ ῪὺῦὐὙὑὔὒὖὝὕὛὓὟὗΫϋΰῢῧ ῼῳῴῺὼῲῶῷὨὠᾨᾠὩὡᾩᾡὬὤᾬᾤὪὢᾪᾢὮὦᾮᾦὭὥᾭᾥὫὣᾫᾣὯὧᾯᾧ {{lang | el | +}} {{lang | el | +}} {{lang} |, "Кириллица": 'АаБбВвГг ҐґЃѓДдЂђ ЕеЁёЄєЖж ЗзЅsИиІі ЇїЙйЈјКк ЌќЛлЉљМм НнЊњОоПп РрСсТтЋћ УуЎўФфХх ЦцЧчЏџШш ЩщЪъъЫыЬь ЭэЮюЯя ӘәӨөҒғҖҗ ́, 'Иврит': 'אבגדהוזחטיכךלמםנןסעפףצץקרשת ׳ ״ װױײ', 'Арабский': 'Транслитерация: ā ī ū ṯ ḥ ḫ ẖ ḏ š ṣ ḍ ṭ ẓ ʿ á ا ﺁ ب ت ث ج ح خ د ر س ش ض ط ع ك ل م ن ي ى ء أ إ ؤ ئ ', 'IPA (английский)': 'ˈ ˌ ŋ ɡ tʃ dʒ ʃ ʒ θ ð æ aɪ aʊ ɛ ɛər + eɪ ɪ ɪər + iː ɔː ɔɪ oʊ ʊ ʊər + uː ʌ ɜːr + ə ər ɒ̃ æ̃ { {IPAc-en | +}} { {IPAc-en | +} | +}} { {angle.bracket | +}} ', 'IPA': 'Согласные: ɱɳɲŋɴ: t̪ d̪ ʈɖɟɡɢʡʔ: ɸβθð ʃʒʂʐɕʑ çʝɣχʁ ħʕʜʢɦɧ: ʋɹɻɥɰʍ: ʙⱱɾɽʀ ɺ ɫɬɮɭʎʟ: ɓɗᶑʄɠʛ ʘǀǃǂǁ Гласные: ɪʏɨʉɯʊ: øɘɵɤ ə ɚ ɛœɜɝɞʌɔ: æɶɐɑɒ Интервальные_диакритические знаки: ˈˌːˑʼˀˤᵝᵊᶢˠʰʱʲˡⁿᵑʷᶣ˞‿˕˔ Комбинированные_диакритические знаки: ̚ ̪ ̺ ̻ ̥ ̬ ̝ ̘ ̙ ̽ ̟ ̠ ̈ ̤ ̹ ̜ ̍ ̃ ̰ ͡ ͜ Тон: ̋ ́ ̄ ̀ ̏ ̌ ̂ ᷄ ᷅ ᷇ ᷆ ᷉ ˥˦˧˨˩ꜛꜜ: ↗↘‖ extIPA: ͈ ͉ ͎ ̣ ̫ ͊ ᷽ ͇: ˭ᵻᵿ { {angle.bracket | +}} { {IPA | +}} { {IPA.link | +}} ', 'Математика и логика': '- × ÷ ⋅ ° ∗ ∘ ± ∓ ≤ ≥ ≠ ≡ ≅ ≜ ≐ ≃ ≈ ⊕ ⊗ ⇐ ⇔ ⇒ ∞ ← ↔ → ≪ ≫ ∝ √ ∤ ≀ ◅ ▻ ∴ ∵ ↦ ¬ ∧ ∨ ∀ ∃ ∈ ∉ ∋ ⊆ ⊈ ⊊ ⊂ ⊄ ⊇ ⊉ ⊋ ∩ ∑ ∏ ∐ ′ ∫ ∬ ∂ ∆ ∅ ℂ ℍ ℕ ℙ ℵ ⌊ ⌋ ⌈ ⊤ ⊧ + { {math | +}} { {mvar | +}} { {frac | + |}} { {sfrac | + |}} ' }, charinsertDivider: "\240", storageKey: 'edittoolscharsubset', createEditTools: функция ( заполнитель ) { вар сел, я бы; вар коробка = документ.createElement( 'div' ); вар prevSubset = 0, curSubset = 0; коробка.я бы = 'editpage-specialchars'; коробка.className = "nopopups"; коробка.заглавие = "Щелкните символ или тег, чтобы вставить его в окно редактирования"; // добавляем пользовательские наборы если ( окно.charinsertCustom ) { за ( я бы в charinsertCustom ) { если ( !editИнструменты.charinsert[я бы] ) { editИнструменты.charinsert[я бы] = ''; } } } // создаем выпадающий выбор сел = документ.createElement( 'Выбрать' ); за ( я бы в editИнструменты.charinsert ) { сел.опции[сел.опции.длина] = новый Вариант( я бы, я бы ); } сел.selectedIndex = 0; сел.стиль.marginRight = '.3em'; сел.заглавие = "Выбрать подмножество символов"; сел.по изменению = сел.onkeyup = selectSubset; коробка.appendChild( сел ); // создаем переключатель "отзыв" если ( окно.editToolsRecall ) { вар отзывать = документ.createElement( 'охватывать' ); отзывать.appendChild( документ.createTextNode( '↕' ) ); // ↔ отзывать.по щелчку = функция() { сел.selectedIndex = prevSubset; selectSubset(); }; отзывать.стиль.cssFloat = 'оставили'; отзывать.стиль.marginRight = '5px'; отзывать.стиль.курсор = 'указатель'; коробка.appendChild( отзывать ); } если ( getSelectedSection() ) { сел.selectedIndex = getSelectedSection(); } заполнитель.parentNode.replaceChild( коробка, заполнитель ); selectSubset(); возвращаться; функция selectSubset() { // запоминаем предыдущее (для кнопки "вспомнить") prevSubset = curSubset; curSubset = сел.selectedIndex; // сохранить в веб-хранилище для сохранения saveSelectedSection( curSubset ); // скрываем другие подмножества вар pp = коробка.getElementsByTagName( 'п' ) ; за ( вар я = 0; я < pp.длина; я++ ) { pp[я].стиль.отображать = 'никто'; } // показать / создать текущее подмножество вар я бы = сел.опции[curSubset].ценить; вар п = документ.getElementById( я бы ); если ( !п ) { п = документ.createElement( 'п' ); п.className = 'nowraplinks'; п.я бы = я бы; если ( я бы == 'Арабский' || я бы == 'Иврит' ) { п.стиль.размер шрифта = '120%'; п.реж = 'rtl'; } вар жетоны = editИнструменты.charinsert[я бы]; если ( окно.charinsertCustom && charinsertCustom[я бы] ) { если ( жетоны.длина > 0 ) { жетоны += ' '; } жетоны += charinsertCustom[я бы]; } editИнструменты.createTokens( п, жетоны ); коробка.appendChild( п ); } п.стиль.отображать = 'в соответствии'; } }, createTokens: функция ( пункт, ул ) { вар жетоны = ул.расколоть( ' ' ), жетон, я, п; за ( я = 0; я < жетоны.длина; я++ ) { жетон = жетоны[я]; п = жетон.индекс( '+' ); если ( жетон.диаграмма( 0 ) === '␥' ) { если ( жетон.длина > 1 && mw.config.получать( 'wgNamespaceNumber' ) === 0 ) { Продолжить; } еще { жетон = жетон.подстрока( 1 ); } } если ( жетон === '' || жетон === '_' ) { добавить текст( editИнструменты.charinsertDivider + ' ' ); } еще если ( жетон === ' n' ) { пункт.appendChild( документ.createElement( 'br' ) ); } еще если ( жетон === '___' ) { пункт.appendChild( документ.createElement( 'час' ) ); } еще если ( жетон.диаграмма( жетон.длина-1 ) === ':' ) { //: в конце означает просто текст addBold( жетон ); } еще если ( п === 0 ) { // + -> + addLink( жетон.подстрока( 1 ), '</' + жетон.подстрока( 2 ), жетон.подстрока( 1 ) ); } еще если ( п > 0 ) { // + addLink( жетон.подстрока( 0, п ), жетон.подстрока( п+1 ) ); } еще если ( жетон.длина > 2 && жетон.charCodeAt( 0 ) > 127 ) { // строка вставляемых символов за ( вар j = 0; j < жетон.длина; j++ ) { addLink( жетон.диаграмма( j ), '' ); } } еще { addLink( жетон, '' ); } } возвращаться; функция addLink( tagOpen, tagClose, имя ) { вар обработчик; вар dle = tagOpen.индекс( ' x10' ); вар а = документ.createElement( 'а' ); если ( dle > 0 ) { вар дорожка = tagOpen.подстрока( dle + 1 ).расколоть( '.' ); tagOpen = tagOpen.подстрока( 0, dle ); обработчик = окно; за ( вар я = 0; я < дорожка.длина; я++ ) { обработчик = обработчик[дорожка[я]]; } $( а ).на( 'щелкнуть', обработчик ); } еще { tagOpen = tagOpen.заменять( /./грамм,' ' ); tagClose = tagClose ? tagClose.заменять( /_/грамм,' ' ) : ''; $( а ).на( 'щелкнуть', { tagOpen: tagOpen, Пример текста: '', tagClose: tagClose }, insertTags ); } имя = имя || tagOpen + tagClose; имя = имя.заменять( / п / г,'' ); а.appendChild( документ.createTextNode( имя ) ); а.href = ''; пункт.appendChild( а ); добавить текст( ' ' ); } функция addBold( текст ) { вар б = документ.createElement( 'b' ); б.appendChild( документ.createTextNode( текст.заменять( /_/грамм,' ' ) ) ); пункт.appendChild( б ); добавить текст( ' ' ); } функция добавить текст( текст ) { пункт.appendChild( документ.createTextNode( текст ) ); } функция insertTags( е ) { е.preventDefault(); если ( $ currentFocused && $ currentFocused.длина && !$ currentFocused.опора( "только для чтения" ) ) { $ currentFocused.textSelection( 'encapsulateSelection', { предварительно: е.данные.tagOpen, пери: е.данные.Пример текста, почтовый: е.данные.tagClose } ); } } }, настраивать: функция () { вар заполнитель; если ( $( '# editpage-specialchars' ).длина ) { заполнитель = $( '# editpage-specialchars' )[0]; } еще { заполнитель = $( '
'
).prependTo( '.mw-editTools' )[0]; } если ( !заполнитель ) { возвращаться; } если ( !окно.charinsertDontMove ) { $( '.editOptions' ).перед( заполнитель ); } // Находим элемент, на котором сфокусирован $ currentFocused = $( '# wpTextbox1' ); // Применяем как к динамически создаваемым текстовым полям, так и к обычным $( документ ).на( 'фокус', 'textarea, input: text', функция () { $ currentFocused = $( это ); } ); // Используется для определения места вставки тегов editИнструменты.createEditTools( заполнитель ); окно.updateEditTools = функция () { editИнструменты.createEditTools( $( '# editpage-specialchars' )[0] ); }; } }; // конец editTools editИнструменты.настраивать();} );