diff --git a/Gadget-EditToolbar-core.js b/Gadget-EditToolbar-core.js index cbd232da..eae10f1c 100644 --- a/Gadget-EditToolbar-core.js +++ b/Gadget-EditToolbar-core.js @@ -1,720 +1,720 @@ /* * * Extra buttons for text insertion * * */ // от тези данни ще се генерират допълнителни бутони с insertTags() var customInsButtons = { // "CODE" : ["LEFT", "MIDDLE", "RIGHT", "SHOWN TEXT", "TITLE"], "b1" : ["#виж ["+"[", "Страница", "]]", "вж", "+команда за пренасочване"], "b2" : ["", "моля, въведете програмен код", "", "код", "Текст в равноширок шрифт — обикновено код"], "b3" : ["", "моля, въведете индекс", "", "ax", "+долен индекс"], "b4" : ["", "моля, въведете степен", "", "ax", "+горен индекс"], "b5" : ["\u00a0", "", "", "nbsp", "+несекаем интервал"], "b6" : ["„", "текст в кавички", "“", "„“", "+български кавички"], "b7" : ["", "зачертан текст", "", "del", "Отбелязване на текст като изтрит"], "b8" : ["{"+"{", "", "}}", "{"+"{}}", "+скоби за шаблон"], "b9" : ["|", "", "", " | ", "+отвесна черта — |"], "b10" : ["—", "", "", "—", "+дълга чертица — mdash"], "b11" : ["–", "", "", " – ", "+средна чертица — ndash"], "b12" : ["", "", "̀", "удар.", "+ударение за гласна буква (маркирайте една буква)"], "b13" : ["<"+"!-- ", "моля, въведете коментар", " -->", "<!--", "+коментар"], "b14" : ["{"+"{ЗАМЕСТ:-)}}", "", "", ":-)", "+шаблон „Усмивка“"], "b15" : ["{"+"{ЗАМЕСТ:D}}", "", "", ":-D", "+шаблон „Ухилено човече“"], "b16" : ["[[en:", "en", "]]", "en:", "+английско междуики"], "b19" : ["{"+"{Br}}\n", "", "", "br", "+шаблон Br"], "b20" : ["{"+"{subst:", "", "}}", "subst:", "+заместване на шаблон"], - "b21" : ["", "", "", "<ref>", "+източник / бележка под линия"], + "b21" : ["", "", "", "<ref>", "+източник / бележка под линия"], "b22" : ["["+"[", "", "]]", "[[...]]", "+препратка без разделител"], - "b23" : ["["+"[|", "", "]]", "[[...|...]]", "+препратка с разделител (курсорът е отдясно)"], + "b23" : ["["+"[", "", "|]]", "[[...|...]]", "+препратка с разделител (курсорът е отдясно)"], "b24" : ["["+"[:", "", "]]", "[[:...]]", "+текстова препратка"], "b25" : ["#", "", "", "...#...", "+диез"] }; // cleanup by articles if (mw.config.get('wgCanonicalNamespace') === '') { mw.loader.using("mediawiki.action.edit", function() { delete customInsButtons['b14']; delete customInsButtons['b15']; $('#mw-editbutton-signature').hide(); }); } /* * * Extra buttons for miscelaneous functions * * */ // името на елемента за допълнителните знаци var charsElemId = "extraChars"; // данни за още бутони с код по желание var customMiscButtons = { // "CODE" : ["CODE TO RUN", "SHOWN TEXT", "TITLE"], // уикификатора "#" : ["obrabotka(false)", "#", "Преобразуване на някои знаци"], "$" : ["obrabotka(true)", "$", "Преобразуване на числа към БДС"], // допълнителните знаци "ch" : ["toggleChars()", "Още…", "Виртуална клавиатура"] }; /* * * Drop down menus for template insertion * * */ /* по идея на [[:he:MediaWiki:Summary|еврейската Уикипедия]] */ var tpl1 = { // "SHOWN TEXT" : "TEMPLATE CONTENT", "Елементи от статията…" : "-", "== ==" : "\n== >>|<< ==\n", "=== ===" : "\n=== >>|<< ===\n", "Таблица" : "\n{| class=\"wikitable\"\n|+ >>|Заглавие на таблицата|<<\n! колона 1\n! колона 2\n! колона 3\n|-\n| ред 1, клетка 1\n| ред 1, клетка 2\n| ред 1, клетка 3\n|-\n| ред 2, клетка 1\n| ред 2, клетка 2\n| ред 2, клетка 3\n|}", "Галерия" : "
>|<<\">\n Image: | \n Image: | \n Image: | \n Image: | \n
", "Източници" : "\n== Източници ==\n\n>>|<<", "Вижте също" : "\n== Вижте също ==\n* ["+"[>>|<<]]\n", "Външни препратки" : "\n== Външни препратки ==\n* [>>|<<]\n", "Сортиране по ключ" : "{"+"{СОРТКАТ:>>|<<}}", "Категория" : "["+"[Категория:>>|<<]]", "Мъниче" : "{"+"{мъниче>>|<<}}", "Към пояснение" : "{"+"{към пояснение|"+ mw.config.get('wgTitle') +"|>>|<<"+ mw.config.get('wgTitle') +" (пояснение)}}" }; var atplb = "МедияУики:Common.js/Edit tools data/"; var atpl1 = { // "SHOWN TEXT" : "PAGE NAME", "Тематични шаблони…" : "-", "Биография инфо" : atplb + "Биография инфо", "Книга инфо" : atplb + "Книга инфо", "Писател" : atplb + "Писател", "Музикален албум" : atplb + "Музикален албум", "Музикален изпълнител" : atplb + "Музикален изпълнител", "Филм" : atplb + "Филм", "Актьор" : atplb + "Актьор", "Футболен отбор" : atplb + "Футболен отбор", "Футболист" : atplb + "Футболист", "Тенисист" : atplb + "Тенисист", "Таксокутия" : atplb + "Таксокутия", "Самолет" : atplb + "Самолет" }; var atpl2 = { "Работни шаблони…" : "-", "Шаблони за статии" : { "Авторски права" : atplb + "Авторски права", "Бързо изтриване" : atplb + "Бързо изтриване", "Друго значение" : atplb + "Друго значение", "Изтриване" : atplb + "Изтриване", "Източник?" : atplb + "Източник", "Микромъниче" : atplb + "Микромъниче", "Обработка" : atplb + "Обработка", "Пояснение" : atplb + "Пояснение", "Превод от" : atplb + "Превод от", "Редактирам" : atplb + "Редактирам", "Сливане" : atplb + "Сливане", "Сюжет" : atplb + "Сюжет", "Цитат" : atplb + "Цитат", "Цитат уеб" : atplb + "Цитат уеб", "Цитат книга" : atplb + "Цитат книга", "Уикицитат" : atplb + "Уикицитат", "Commons" : atplb + "Commons", "Commonscat" : atplb + "Commonscat", "IMDB Name" : atplb + "Imdb name", "IMDB Title" : atplb + "Imdb title" }, "Шаблони за беседи" : { "Добре дошли" : atplb + "Добре дошли", "Добре дошли нерег" : atplb + "Добре дошли нерег", "Неподписано" : atplb + "Неподписано", "Предварителен преглед" : atplb + "П-преглед", "Забележка-вандал" : atplb + "П-вандал1", "Забележка-изтриване" : atplb + "П-изтриване1", "Забележка-копиране" : atplb + "П-копиране1", "Забележка-спам" : atplb + "П-спам1", "Забележка-тест" : atplb + "П-тест1", "Забележка-шега" : atplb + "П-шега1" }, "Шаблони за картинки" : { "Без лиценз" : atplb + "Без лиценз" }, "Шаблони за категории" : { "Категория" : atplb + "Категория", "Категория инфо" : atplb + "Категория инфо" }, "Шаблони за шаблони" : { "Навигационен шаблон" : atplb + "Навигационен шаблон", "Шаблон на мъниче" : atplb + "Шаблон на мъниче", "Includeonly" : atplb + "Includeonly", "Noinclude" : atplb + "Noinclude" } }; var tplVarBaseName = "tpl"; var atplVarBaseName = "atpl"; var chars = [ ['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ь', 'Ю', 'Я', 'Ы', 'Э', 'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ь', 'ю', 'я', 'ы', 'э'], ['ѣ', 'ѫ', 'ѭ', 'ѧ', 'ѩ', 'Ї', 'Ҁ', 'Ѹ', 'Ѡ', 'Ѻ', 'Ъ', 'І', 'Ҍ', 'Ѩ', 'Ѭ', 'Ѯ', 'Ѵ', 'Ѥ', 'Ѿ'], ['α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'σ', 'ς', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω', 'Γ', 'Δ', 'Θ', 'Λ', 'Ξ', 'Π', 'Σ', 'Φ', 'Ψ', 'Ω'], ['½', '¼', '¾', '∫', '∑', '∏', '√', '−', '±', '∞', '≈', '~', '∝', '≡', '≠', '≤', '≥', '×', '·', '÷', '∂', '′', '″', '∇', '∮', '⊥', '‰', '∴', 'ℵ', 'ℋ', '℧', '^', '¹', '²', '³', '∈', '∉', '∩', '∪', '⊂', '⊃', '⊆', '⊇', '∧', '∨', 'ø', '¬', '∃', '∀', '⇒', '⇐','⇓', '⇑', '⇔', '→', '←', '↓', '↑', '↔', '⇄', '⇆', '⇋', '⇌', 'ℕ', 'ℤ', 'ℚ', 'ℝ', 'ℂ', '∅', '⋮', '⋯'], ['*', '~', '|', '[', ']', '°', '№', '™', '©', '®', '¢', '€', '¥', '£', '¤', '¿', '¡', '«', '»', '§', '¶', '†', '‡', '•', '♀', '♂', '…', '¨'], ['Á', 'á', 'É', 'é', 'Í', 'í', 'Ó', 'ó', 'Ú', 'ú', 'À', 'à', 'È', 'è', 'Ì', 'ì', 'Ò', 'ò', 'Ù', 'ù', 'Â', 'â', 'Ê', 'ê', 'Î', 'î', 'Ô', 'ô', 'Û', 'û', 'Ä', 'ä', 'Ë', 'ë', 'Ï', 'ï', 'Ö', 'ö', 'Ü', 'ü', 'ß', 'Ã', 'ã', 'Ñ', 'ñ', 'Õ', 'õ', 'Ç', 'ç', 'Ģ', 'ģ', 'Ķ', 'ķ', 'Ļ', 'ļ', 'Ņ', 'ņ', 'Ŗ', 'ŗ', 'Ş', 'ş', 'Ţ', 'ţ', 'Ć', 'ć', 'Ĺ', 'ĺ', 'Ń', 'ń', 'Ŕ', 'ŕ', 'Ś', 'ś', 'Ý', 'ý', 'Ź', 'ź', 'Đ', 'đ', 'Ů', 'ů', 'Č', 'č', 'Ď', 'ď', 'Ľ', 'ľ', 'Ň', 'ň', 'Ř', 'ř', 'Š', 'š', 'Ť', 'ť', 'Ž', 'ž', 'Ǎ', 'ǎ', 'Ě', 'ě', 'Ǐ', 'ǐ', 'Ǒ', 'ǒ', 'Ǔ', 'ǔ', 'Ā', 'ā', 'Ē', 'ē', 'Ī', 'ī', 'Ō', 'ō', 'Ū', 'ū', 'ǖ', 'ǘ', 'ǚ', 'ǜ', 'Ĉ', 'ĉ', 'Ĝ', 'ĝ', 'Ĥ', 'ĥ', 'Ĵ', 'ĵ', 'Ŝ', 'ŝ', 'Ŵ', 'ŵ', 'Ŷ', 'ŷ', 'Ă', 'ă', 'Ğ', 'ğ', 'Ŭ', 'ŭ', 'Ċ', 'ċ', 'Ė', 'ė', 'Ġ', 'ġ', 'İ', 'ı', 'Ż', 'ż', 'Ą', 'ą', 'Ę', 'ę', 'Į', 'į', 'Ų', 'ų', 'Ł', 'ł', 'Ő', 'ő', 'Ű', 'ű', 'Ŀ', 'ŀ', 'Ħ', 'ħ', 'Ð', 'ð', 'Þ', 'þ', 'Œ', 'œ', 'Æ', 'æ', 'Ø', 'ø', 'Å', 'å'] ]; var showMenus = true; var showButtons = true; function setCustomInsButton(code, left, middle, right, shownText, title) { customInsButtons[code] = [left, middle, right, shownText, title]; } function setCustomMiscButton(code, codeToRun, shownText, title) { customMiscButtons[code] = [codeToRun, shownText, title]; } function rmCustomInsButtons(rmButtons) { rmCustomButtons(customInsButtons, rmButtons); } function rmCustomMiscButtons(rmButtons) { rmCustomButtons(customMiscButtons, rmButtons); } function rmCustomButtons(allButtons, rmButtons) { for (var i = rmButtons.length - 1; i >= 0; i--) { delete( allButtons[ rmButtons[i] ] ); } } /** insert an edit toolbar before the textarea. useful for testing user script pages while previewing use it with: putToolbar(); put in your script page, e.g. User:Your_Name/monobook.js */ function putToolbar(rightNow) { var toolbar = $('
', {'class': 'custom-toolbar'}); var putIt = function() { $("#editform").before(toolbar); }; if ( window.rightNow ) { putIt(); } else { $(putIt); } return toolbar; } var existChars = false; // are the extra chars already added /** generate and add extra chars in the element $charsElemId */ function addChars() { // if there are extra chars already, do nothing if ( existChars ) { return; } var cont = ''; var len = chars.length; for (var i in chars) { for (var j in chars[i]) { cont += "'+chars[i][j]+' '; } if (i != len-1) { cont += '
'; } } $('#'+charsElemId).html(cont); existChars = true; } function toggleChars() { addChars(); $('#'+charsElemId).toggle(); } /* * * Extra buttons for text insertion * * */ /** add some buttons and drop-down menus */ function setupCustomEditTools() { if ( !$("#editform").length ) { return; } var toolbar = putToolbar(true); toolbar.addClass("buttonlinks"); if ( showMenus ) { // drop-down menus inserting text put direct in the javascript appendDropDownMenus(toolbar, tplVarBaseName, insertIntoWikiText); // drop-down menus inserting content from wiki pages appendDropDownMenus(toolbar, atplVarBaseName, loadPage); } if ( showButtons ) { appendCustomButtons(toolbar); appendExtraChars(toolbar); } } $(function() { mw.loader.using("user", function(){ setupCustomEditTools(); }); }); function appendCustomButtons(parent) { var buts = $('
', { id: "custombuttons" }); for (var i in customInsButtons) { var el = customInsButtons[i]; var title = el[4]; if ( title.charAt(0) == "+" ) { title = mw.msg("et-addpref") + title.substr(1); } appendCustomButton(buts, { href: "javascript:mw.toolbar.insertTags('"+el[0] +"','"+el[2]+"','"+ el[1]+"')", title: title, html: el[3] }); } for (var i in customMiscButtons) { var el = customMiscButtons[i]; appendCustomButton(buts, { href: "javascript:"+el[0], title: el[2], html: el[1] }); } parent.append(buts); } function appendCustomButton(box, item) { box.append($('', item), ' '); } function appendExtraChars(parent) { if (window.charsElemId) { $('
', { id: charsElemId, style: 'display: none' }).appendTo(parent); } } function appendDropDownMenus(parent, tplVarBaseName, callback) { var tplVar = null; for ( var i = 1; tplVar = tplVarBaseName + i, eval("var tpl = typeof("+ tplVar +") == 'object' ? "+ tplVar +" : null"), tpl != null; i++ ) { appendDropDownMenu(parent, tpl, callback, "ddmenu_" + tplVar); } } /** generates a drop-down menu */ function appendDropDownMenu(parent, content, callback, id) { var box = $('