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ó az mw.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.
  • 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>

TODO élesítés után: d:Q13501220 Kategória:Technikai leírások