Szerkesztő:Tilar Vehulor/JavaScript segédeszközök használata
Kezdőknek
[szerkesztés]Ez a szakasz azoknak szól, akik egyáltalán nem vagy csak alapszinten értenek a JavaScripthez, de szeretnének mások által írt JavaScript segédeszközöket használni a Wikipédián. Az útmutatót követve nagy eséllyel hibamentes működést lehet elérni (feltéve, hogy az egyes segédeszközök jól vannak megírva). Az útmutatótól programozói tudással, saját felelősségre természetesen el lehet térni.
A segédeszközök a Wikipédia-fiókodhoz kapcsolódnak (nem a gépedre települnek), így másik eszközről bejelentkezve ugyanúgy elérhetőek, kijelentkezve a saját eszközödön sem jelennek meg. A Javascriptben megírt programok a böngészőben, azaz a saját eszközödön futnak, nem a szerveren.
Telepítés előtt ellenőrizd, hogy a beálltásoknál elérhető-e a választott segédeszköz. Ha igen, akkor ott pipáld be, mentsd el a beállításokat, majd teszteld le, hogy helyesen működik-e (tölts be egy olyan oldalt, amire az eszköz hatással van). Ennek az előnye, hogy egyrészt nem kell hozzá kódolni, másrészt a fejlesztőknek könnyebb karbantartani az eszközöket, a hibás működéseket javítani.
Ha a beállítások között nincs meg az eszköz, de valószínűleg sokan akarják használni, kérj meg egy műszakis kollégát, hogy vegye fel a segédeszközök listájára. Ha csak te akarod használni, akkor scriptként kell telepíteni.
JavaScript segédeszközök „telepítése”:
- Script létrehozása: Ha a Wikipédián olyan allapot hozol létre, aminek a neve .js-re végződik, azt a szoftver felismeri, mint JavaScript programfájlt, innentől futtatható lesz.
- A script átmásolása: A kapott (általában más szerkesztő allapján lévő) kódot másold át a saját allapodra,
Szerkesztő:<neved>/<program neve>.js
néven. Ez biztonsági okokból fontos, lásd lentebb. - Scriptek indítása: A .js végű allapok nem futnak le maguktól (ez zavaró lenne azoknál, akik sok programot fejlesztenek és tárolnak, de csak néhányat akarnak használni). Kivétel a
Szerkesztő:<neved>/common.js
(bejelentkezve itt érhető el), az egyetlen allap, ami minden oldalbetöltésnél lefut, ebből lehet indítani minden mást. - Script behivatkozása: Allapon lévő programot úgy lehet elindítani, hogy a common.js allapod végére beírod ezt:
importScript('Szerkesztő:<neved>/<program neve>.js');
, innentől a kód minden oldalbetöltésnél le fog futni és elvégezni a feladatát. Mentsd el a common.js-t, nyiss meg egy oldalt, amire az új script várhatóan hatással lesz és ellenőrizd, hogy rendben működik-e. - Scriptek szervezése: A legegyszerűbb, rövid távon működő megoldás, ha csak egy-két scripted van, akkor a forráskódjukat bemásolhatod közvetlenül a common.js-be. Viszont ha ennél több scriped van (vagy belátható időn belül lesz), akkor könnyen átláthatatlanná válik ez az „ömlesztett” tárolás, nehéz lesz az egyes eszközöket ki/be kapcsolni, esetleg módosítani. Emiatt hasznos már az elejétől úgy szervezni a scripteket, hogy a common.js-ben csak az importáló utasítások legyenek, maguk a segédeszközök kerüljenek mind külön allapra. Ebben a szervezésben ha nem akarsz használni egy segédeszközt, akkor a hozzá tartozó importáló parancs elé a sor elejére tegyél
//
(komment) jelet. Így megmarad a script, de nem töltődik be. Ha újra használni akarod, vedd ki a//
jelet. Az import parancsok közé beszúrhatsz új sorokat, ahol szintén komment jellel kezdve megjegyzéseket írhatsz magadnak, pl. melyik script mit csinál.- Ha a common.js-ben vagy valamelyik <skin neve>.js-ben már van valamilyen kód, azt érdemes áthelyezni külön allapra (a különböző forrásból származó részeket külön allapokra), majd importScript utasítással behivatkozni őket.
- Alternatív lehetőségek:
- Az
importScript('Szerkesztő:<név>/<program neve>.js');
helyett használható azmw.loader.load('//en.wikipedia.org/w/index.php?title=User:<név>/<program neve>.js&action=raw&ctype=text/javascript');
is. Ez ugyanazt csinálja, de sokkal bonyolultabb. - A
common.js
helyett lehet használni az éppen használt skinhez tartozó .js allapot (Szerkesztő:<neved>/<skin neve>.js
formátummal, pl.Szerkesztő:<neved>/vector.js
,Szerkesztő:<neved>/vector-2022.js
,Szerkesztő:<neved>/monobook.js
, stb.) is az importálásra. A különbség az, hogy a common.js mindig betöltődik, a többi csak akkor, ha a velük azonos nevű skint használod. Skin(en)-ek között a itt lehet váltani. Alapesetben a common.js-t használd, a <skin neve>.js-t csak akkor érdemes, ha értesz a skinekhez, gyakran váltogatod őket és bizonyos eszközöket csak bizonyos skinekkel akarsz használni. Ha a common.js-t és a <skin neve>.js-t egyszerre használod, abból összeakadás lehet, pl. ugyanaz a script kétszer töltődik be.
- Az
- Biztonsági tudnivalók:
- A programkód érzékeny a kis- és nagybetűkre, ékezetekre, minden írásjelre. Ezért begépelés helyett érdemes a parancsot innen vagy egy már működő scriptből kimásolni és átírni benne a neveket (szintén másolással), így kevesebb lesz az elgépelés esélye.
- Más szerkesztő allapjainak a használata: Mindenképpen érdemes átmásolni a kódot a saját allapodra,
Szerkesztő:<neved>/<program neve>.js
néven. Egy másik szerkesztő allapján lévő kódra azért nem jó hivatkozni, mert ha a tulajdonosa kísérletezik vele, töröl belőle számára feleslegessé vált funkciókat, esetleg elront benne valamit és nem javítja ki, vagy feltörik a fiókját és kártékony kódot tesznek bele, akkor ezek a változások nálad is rögtön megjelennek. Az átmásolással ezek mind elkerülhetők, mindössze annyi plusz munkát okoz, hogy időnként újra át kell másolni a kódot, ha az eredeti helyen frissül és szükséged van az új funkciókra. (Esetleg fel lehet venni figyelőlistára a másik szerkesztő scriptjét.) - A .js végződésű allapokat csak a tulajdonosuk és a felületadminisztrátorok szerkeszthetik, más szerkesztők nem.
- Ennek a leírásnak a követése (a common.js-ben való „ömlesztett” tároláshoz képest) némi plusz munkával jár, cserébe egy sokkal átláthatóbb rendszert hoz létre, hiba esetén a programozáshoz értő szerkesztőtársak is könnyebben meg tudják találni a probléma okát.
A Wikipédián a JavaScript-eszközök alapesetben egymástól függetlenül működnek, de a bonyolultabb (a grafikus felületet jelentősen átalakító) vagy nem körültekintően készített eszközök képesek összeakadni, ezért mindig lehetnek problémák. Ilyen esetben írj a műszaki kocsmafalra vagy az itteni vitalapra.
Fejlesztőknek
[szerkesztés]- Az olyan scriptek, amelyek valamilyen kategóriát helyeznek el, maguk is kategorizálódnak, ami káros mellékhatás. Ugyanúgy a sablonok is problémásak lehetnek. Ezt legegyszerűbben a teljes kód
<nowiki>...</nowiki>
címkék közé rakásával lehet megoldani, lásd itt a 2., 33. és 300. sort. A másik módszer a'[[Kategória:Valami]]'
és'{{Sablon neve}}'
helyett'['+'[Kategória:Valami]]'
és'{'+'{Sablon neve}}'
forma használata. - A globális névtérbeli névütközések elkerülésére nagyon ajánlott külön closure-t létrehozni. Lásd itt a 6. és a 656. sort.
- Tedd ki a
'use strict';
parancsot is a strict mode bekapcsolására. - A későbbi könnyebb olvashatóságért használj kommenteket.
- Tehát az ideális script elején ez van:
// <nowiki> // rövid leírás, hogy mit csinál a script 'use strict'; ( function() {
- A végén ez:
} ) (); // </nowiki>
- Ha olyan segédeszközt fejlesztesz, amit várhatóan mások is fognak használni, akkor kérd a műszaki kocsmafalon a felvételét a gadget-ek közé, hogy ne kelljen mindenkinek másolgatni.
- A külön allapon tárolt célszoftver könnyebben másolható mások számára és könnyebben gadgetesíthető.
- A gadget-ek listája a Speciális:Segédeszközök és a MediaWiki:Gadgets-definition oldalon érhető el.
- Lásd még: en:Wikipedia:User scripts, mw:Extension:Gadgets.
TODO élesítés után: d:Q13501220 Kategória:Technikai leírások