Уикипедия:Допълнителни редакторски инструменти/Настройка

от Уикипедия, свободната енциклопедия

Тази страница съдържа кратка помощна информация за настройването на допълнителните редакторски инструменти. В момента тези инструменти включват:

  • бутони за вмъкване на текст;
  • бутони, с които се изпълняват определени функции, засягащи кутията за редактиране;
  • падащи менюта, чрез които също може да се вмъква текст.

Допълнителните редакторски инструменти се изграждат изцяло чрез Джаваскрипт, като кодът се намира в страницата МедияУики:Gadget-EditToolbar-core.jsМедияУики:Gadget-EditToolbar.js). Промяната на тази страница може да се прави само от администратори. (До началото на април 2010 г. се ползваха страниците МедияУики:Common.js/Edit tools.js (програмна логика) и МедияУики:Common.js/Edit tools data.js (база от данни), но след това вече не беше възможно вмъкването им в генерирания джаваскриптов код.) Инструментите са включени за всички по подразбиране, но могат да се изключат от Настройки/Джаджи.

Обикновената настройка, изразяваща се в добавяне/махане на бутони или на елементи от менютата, става чрез редактиране на МедияУики:Gadget-EditToolbar-core.js.

Отделно от това, потребителите могат да си донастройват инструментите. Как става това е обяснено по-долу.

Ето кратко представяне на променливите, съдържащи информацията, въз основа на която се построяват инструментите.

Име Тип Роля
customInsButtons Обект (Асоциативен масив) Бутони
tpl1 Обект (Асоциативен масив) Обикновено меню, от което се вмъква текст
atpl1 Обект (Асоциативен масив) Меню, от което се вмъква съдържание на уикистраница
atpl2 Обект (Асоциативен масив) Второ меню, от което се вмъква съдържание на уикистраница
atplb Низ Представка на уикистраниците, които се ползват за горните две менюта
chars Масив (Масив от масиви) Знаците, които се показват при натискане на бутона „Още…“
showButtons Логически Включва/изключва показването на бутоните
showMenus Логически Включва/изключва показването на менютата

Накратко за типовете[редактиране на кода]

Обектите, които всъщност изпълняват роля на асоциативни масиви, имат следния синтаксис:

object = { field1 : value, field2 : value };

Обикновените масиви имат следния синтаксис:

array = [ element1, element2 ];

И при двата типа елементите или полетата се отделят със запетаи, като след последния елемент или поле няма такава.

Построяват се въз основа на обекта customInsButtons. Възможни са две логически операции, в зависимост от това от колко параметъра е дефиниран бутонът.

Бутони за вмъкване на текст[редактиране на кода]

Такива бутони се определят чрез пет параметъра:

"CODE" : ["LEFT", "MIDDLE", "RIGHT", "SHOWN TEXT", "TITLE"],

Запетаята в края не се пише единствено след последния бутон.

CODE
Определя уникалното име на бутона. То позволява на потребителските скриптове да променят функционалността на бутона или пък да го махнат изцяло.
LEFT
Съдържание, което се вмъква вляво от курсора или от евентуален маркиран текст.
MIDDLE
Съдържание, което се вмъква на мястото на курсора, ако липсва маркиран текст. Бива автоматично маркирано.
RIGHT
Съдържание, което се вмъква вдясно от курсора или от евентуален маркиран текст.
SHOWN TEXT
Текст на бутона. Няма ограничение за дължината му.
TITLE
Заглавие на бутона, което обикновено се вижда при преминаване с курсора отгоре му.

Бутони за изпълнение на произволни функции[редактиране на кода]

Тези бутони се определят чрез три параметъра:

"CODE" : ["CODE TO RUN", "SHOWN TEXT", "TITLE"],

Запетаята в края не се пише единствено след последния бутон.

CODE
Вж по-горе.
CODE TO RUN
Код на Джаваскрипт, който ще се изпълни при натискането на бутона.
SHOWN TEXT
Вж по-горе.
TITLE
Вж по-горе.

Обикновени менюта за вмъкване на текст[редактиране на кода]

Обикновените менюта за вмъкване на текст се построяват чрез обектите tplX, където X е цяло положително число, напр. tpl1, tpl2 и т.н.

Нов елемент в менюто се определя чрез

"SHOWN TEXT" : "TEMPLATE CONTENT",

Запетаята в края не се пише единствено след последния елемент.

SHOWN TEXT
Текстът, който се показва в менюто.
TEMPLATE CONTENT
Уикитекст, в който чрез >>|<< може да се укаже разделянето му на лява и дясна част, както е при бутоните. В такъв случай лявата част се вмъква вляво от курсора, а дясната — вдясно. Чрез >>|MIDDLE|<< може да се зададе текст, който автоматично ще се маркира, ако преди това нищо не е било маркирано.
Ако TEMPLATE CONTENT съдържа само един дефис (късо тире), тогава SHOWN TEXT се използва за първия елемент в менюто, чрез който не се вмъква нищо.

Групиране на елементи се постига чрез

"GROUP NAME" : {
	"SHOWN TEXT 1" : "TEMPLATE CONTENT 1",
	"SHOWN TEXT 2" : "TEMPLATE CONTENT 2",
	...
},

Менюта за вмъкване на съдържание на уикистраница[редактиране на кода]

Менютата за вмъкване на съдържание на уикистраница се определят чрез обектите atplX, където X е цяло положително число, напр. atpl1, atpl2 и т.н. Разликата на тези менюта от гореописаните е, че съдържанието, което се вмъква, е записано в отделна уикистраница, а не в кода на Джаваскрипт.

Нов елемент в менюто се определя чрез

"SHOWN TEXT" : "PAGE NAME",
SHOWN TEXT
Текстът, който се показва в менюто.
PAGE NAME
Име на уикистраница, чието съдържание се вмъква в кутията за редактиране. В страницата също може да се укаже разделянето на лява и дясна част. При обикновените менюта е обяснено как.
При вмъкването
  • всички шаблони в страницата автоматично се разгъват (вика се чрез templates=expand), затова евентуални неразгъващи се шаблони трябва да бъдат указани чрез <nowiki>;
  • елементите <pre> и <nowiki> се изтриват; ако все пак искате да вмъквате такива елементи, ползвайте [pre] и [nowiki].

Ето списък на страниците, които участват в стандартните две менюта от тази категория. Всички страници са с представка „МедияУики:Common.js/Edit tools data/“.

Тематични шаблони[редактиране на кода]

Работни шаблони[редактиране на кода]

Виртуална клавиатура[редактиране на кода]

Виртуалната клавиатура се построяват чрез масива chars. Неговите елементи са също масиви, които съдържат знаците за вмъкване.

Настройка на инструментите от потребителите[редактиране на кода]

Всеки потребител може да донастрои тези инструменти, като редактира личната си скриптова страница.

Обикновено тестването на личните скриптови страници може да се прави чрез най-обикновен предварителен преглед, без да има нужда от съхранение на страницата.

Бутони за вмъкване на текст[редактиране на кода]

Нови бутони за вмъкване на текст могат да се добавят чрез:

mw.vars.use("EditToolbar.buttons")
    .set("CODE1", ["LEFT", "MIDDLE", "RIGHT", "SHOWN TEXT", "TITLE"])
    .set("CODE2", ["LEFT", "MIDDLE", "RIGHT", "SHOWN TEXT", "TITLE"])

Ако CODE1 е код на съществуващ бутон, то старият бутон ще бъде заместен с новия.

Съществуващи бутони могат да се премахнат чрез:

mw.vars.use("EditToolbar.buttons")
    .set("CODE1", null)
    .set("CODE2", null)

CODE1, CODE2 и т.н. са кодовете на бутоните, които трябва да се махнат. Няма ограничение за броя на елементите CODEX.

Бутони за изпълнение на произволни функции[редактиране на кода]

Нов бутон за изпълнение на функция може да се добави чрез:

mw.vars.use("EditToolbar.buttons")
    .set("CODE", ["functionToRun()", "SHOWN TEXT", "TITLE"])

Ако CODE е код на съществуващ бутон, то старият бутон ще бъде заместен с новия.

Обикновени менюта за вмъкване на текст[редактиране на кода]

По подразбиране има едно обикновено меню за вмъкване на текст — „Елементи от статията“. Ново (второ) меню за вмъкване на текст може да се добави чрез:

var tpl2 = {
	// "SHOWN TEXT" : "TEMPLATE CONTENT",
	"Моето меню…" : "-",
	"Мяу" : "Здравей!",
	"Бау" : "Не вандалствай!"
};

Нов елемент в края съществуващо меню се добавя чрез

tplX["SHOWN TEXT"] = "TEMPLATE CONTENT";

където tplX е името на обекта, отговарящ за съответното меню, напр. tpl1. Например:

tpl1["Мяу"] = "Здравей!";

Менюта за вмъкване на съдържание на уикистраница[редактиране на кода]

По подразбиране има две менюта за вмъкване на съдържание на уикистраница — „Тематични шаблони“ и „Работни шаблони“. Ново (трето) меню може да се добави чрез:

var atpl3 = {
	// "SHOWN TEXT" : "PAGE NAME",
	"Моето меню…" : "-",
	"Мяу" : "Потребител:Аз/Мяу",
	"Бау" : "Потребител:Аз/Бау"
};

Нов елемент в края съществуващо меню се добавя чрез

atplX["SHOWN TEXT"] = "PAGE NAME";

където atplX е името на обекта, отговарящ за съответното меню, напр. atpl1, atpl2. Например:

atpl1["Мяу"] = "Потребител:Аз/Мяу";

Скриване на бутоните и/или менютата[редактиране на кода]

Скриването на всички бутони може да се постигне чрез:

showButtons = false;

Скриването на менютата пък става чрез

showMenus = false;