# &quantaplus;i laiendamine

Christopher
Hornbaker

    chrishornbaker@earthlink.net

András
Mantia

    amantia@kde.org

Marek
Laane

    bald@starman.ee

Tõlge eesti keelde

# &quantaplus;i laiendamine

See peatükk kirjeldab &quantaplus;i kohandamist just sinu vajadustele, samuti seda, kuidas just sina saad aidata muuta &quantaplus;i veel paremaks.

## Dokumenditüübi redigeerimispakett (&DTEP;)

&quantaplus; kasutab dokumenditüübi redigeerimispakette (&DTEP;) märke- ja skriptikeelte ning &CSS; toetuse pakkumiseks. Need paketid lubavad &quantaplus;il näiteks pakkuda selliseid võimalusi, nagu automaatne lõpetamine ja sõlmepuud. Pakettide lihtsus ja paindlikkus muudab &quantaplus;i kiireks ja arendajasõbralikuks arenduskeskkonnaks (&IDE;) veebiarendajatele. Kõik see on teinud &quantaplus;ist hõlpsasti kasutatava ja tootlikkust suurendava keskkonna.

&DTEP; esineb kahel kujul: perekond 1 ehk märkekeeled ja perekond 2 ehk skriptikeeled ja &CSS;. &DTEP; koosneb kahest osast: siltide kataloog ja tööriistaribad. Sildikataloogidesse kuulub kaht tüüpi faile: &descriptionrc; ja TagXML-failid, mille laiendiks on .tag. Tööriistaribad on käepärased ikoonidega nupukogumid (redigeerimisakna kohal), mis suudavad teksti või midagi muud dokumenti kiiremini lisada kui kasutaja käsitsi klaviatuuril sisestada.

&DTEP; on võimalik luua käsitsi (lähemalt edaspidi), alla laadida või automaatselt luua olemasoleva DTD põhjal. Teisendamisest kõneleb lähemalt .

Käesolev käsiraamat kirjeldab, kuidas luua TagXML-faile, faili &descriptionrc; ja tööriistaribasid ehk lühidalt: kuidas luua &DTEP;.

TagXML-failid (.tag) määravad nii sildile omased atribuudid kui ka omaduste dialoogi paigutuse ja sisu, mida &quantaplus; sildi kohta näitab. Fail &descriptionrc; sisaldab reegleid ja infot &DTEP; kohta. Tööriistaribad pakuvad hõlpsa võimaluse lisada dokumenti silte, ilma et peaks muretsema kirjavigade ja muu sellise pärast.

### Paketid

Sildikataloogid ongi lihtsalt kataloogid, koosnedes ainult failist &descriptionrc; ja TagXML-failidest. Sildikataloogidel on võimaluse korral märkekeele konkreetse versiooni nimi (näiteks html-4.01-strict).

### TagXML

Allolev tabel toob ära elemendid, mida TagXML määrab ja defineerib sõltumata sellest, kas need on nõutavad või mitte. Kui ka kõik ei ole nõutavad, on siiski soovitatav, et kasutaksid neist võimalikult paljusid, et teised kasutajad võiksid omandada kogemusi ja õppida nendega paremini töötama.

Element | Vaikimisi kasutamine | Kasutamise näide
--- | --- | ---
TAGS | nõutav | alati
tag | nõutav | alati
label | mittekohustuslik | nõutav omaduste dialoogi loomiseks
attr | mittekohustuslik | nõutav atribuudi defineerimiseks
tooltip | mittekohustuslik | nõutav omaduste dialoogis kohtspikrite näitamiseks
whatsthis | mittekohustuslik | nõutav omaduste dialoogis abivõimaluse Mis see on? näitamiseks
list | mittekohustuslik | nõutav, kui atribuut on tüübiga nimekiri
item | mittekohustuslik | nõutav, kui kasutatakse <list >
textlocation | mittekohustuslik | alati
location | mittekohustuslik | nõutav pealdise kasutamisel
text | mittekohustuslik | nõutav pealdise kasutamisel
children | mittekohustuslik | siltide nimekiri, mis võivad esineda defineeritava sildi sees
child | nõutav | alamsildi kirje
stoppingtags | mittekohustuslik | siltide nimekiri, mis defineerivad muu sildi lõpetamise
stoppingtag | nõutav | stoppingtags kirje

#### TagXML-elementide kirjeldused

Nüüd hakkame üksikasjalikult kirjeldama iga elementi alates sellest, kus neid saab kasutada, kuni selleni, mis võib nende sees peituda.

##### TAGS

See on TagXML-dokumendi juurelement, mis võib dokumendis esineda ainult üks kord. See võib sisaldada mitme sildi definitsiooni. See on puhta elemendi tüüpi element.

Eellane/eellased | Järglased
--- | ---
PUUDUB | tag

##### tag

Sildi kui sellise defineerija. See on puhta elemendi tüüpi element.

Eellane/eellased | Järglased
--- | ---
TAGS | label, attr, stoppingtags

Atribuut | Tüüp | Väärtused | Vaikimisi | Kasutamine | Kirjeldus
--- | --- | --- | --- | --- | ---
name | string |  |  | nõutav | Määrab defineeritava sildi nime.
single | tõeväärtus |  |  | mittekohustuslik | Määrab, kas silt nõuab lõpetavat silti </(sildinimi) > või mitte.
type | string |  | xmltag | mittekohustuslik | Määrab defineeritava sildi tüübi.
|  | xmltag |  |  | Sildi tüüp on XML-põhine (ainult perekond 1).
|  | entity |  |  | See silt kirjeldab olemit (ainult perekond 1).
|  | property |  |  | Sildi tüüp on seotud &CSS;iga (ainult perekond 2).
|  | function |  |  | Sildi tüüp on skriptifunktsioon. Kasutamisel muutuvad <attr > funktsiooni argumentideks (ainult perekond 2).
|  | class |  |  | Sildi tüüp on skriptiklass (ainult perekond 2).
|  | method |  |  | Sildi tüüp on klassimeetod (ainult perekond 2).
returnType | string |  | void | mittekohustuslik | Määrab defineeritava sildi tüübi tagastamise (ainult perekond 2).
|  | void |  |  | Sildi tüüp tagastab void.
|  | int |  |  | Sildi tüüp tagastab täisarvu (int).
|  | float |  |  | Sildi tüüp tagastab murdarvu (float).
|  | long |  |  | Sildi tüüp tagastab long.
|  | string |  |  | Sildi tüüp tagastab stringi (string).
version | string |  |  | mittekohustuslik | Määratleb keele versiooni, milles silt kehtib
extends | string |  |  | mittekohustuslik | Kehtib ainult siis, kui sildi tüüp on "klass". Antud klassi baasklassi nimi. (Ainult perekond 2.)
class | string |  |  | mittekohustuslik | Kehtib ainult siis, kui tüüp on "meetod". Määrab klassi nime, kuhu antud meetod kuulub. (Ainult perekond 2.)
common | tõeväärtus |  |  | mittekohustuslik | kui on "jah", määrab see silt üldise atribuudigrupi ning selle sildi sees esinevaid atribuute saab siduda suvalise muu sildiga (ainult perekond 1).
comment | string |  |  | mittekohustuslik | kommentaaristring on näha sildi nime juures lõpetamise kastis

##### label

Seab dialoogile pealdise. Teksti määrab silt <tekst >. See on puhta elemendi tüüpi element.

Eellane/eellased | Järglased
--- | ---
tag | text, location

##### attr

Määrab sildi atribuudi. See element esineb üks kord iga atribuudi kohta, määrates atribuudi nime ja tüübi. Samuti sisaldab see lisasilte, mis määravad, kuidas atribuuti esitatakse jne. See on puhta elemendi tüüpi element.

Eellane/eellased | Järglased
--- | ---
tag | location, list, tooltip, whatsthis, textlocation

Atribuut | Tüüp | Väärtused | Vaikimisi | Kasutamine | Kirjeldus
--- | --- | --- | --- | --- | ---
name | string |  |  | nõutav | Määrab defineeritava atribuudi nime.
type | string |  | input | nõutav | Määrat defineeritava atribuudi tüübi.
|  | input |  |  | See väli toetab mis tahes tekstikirjeid (tekstiväli).
|  | check |  |  | Väljal on tõeväärtus (märkekast).
|  | color |  |  | Välja väärtus on värv.
|  | url |  |  | Välja väärtus on &URL; (kohalik fail, millele viidatakse).
|  | list |  |  | Välja väärtus on element määratud nimekirjast.
status | string |  | mittekohustuslik | nõutav | Määrab, kas argument on nõutav või mitte (ainult perekond 2).
|  | mittekohustuslik |  |  | Argument on mittekohustuslik.
|  | nõutav |  |  | Argument on nõutav.
|  | implied |  |  | Argumenti eeldatakse.
source | string |  |  | mittekohustuslik | Määrab allika, mida kasutatakse atribuudikirje täitmisel sildi redigeerimise dialoogis ja atribuudipuus
|  | selection |  |  | Valitud teksti kasutatakse allikana
|  | dcop |  |  | DCOP-meetodi tulemust kasutatakse allikana
interface | string |  |  | mittekohustuslik | Nõutav on source="dcop". Allikandmete hankimiseks kasutatakse &quantaplus;is DCOP-liidest.
method | string |  |  | mittekohustuslik | Nõutav on source="dcop" ja liidese nimi. Allikandmete hankimiseks kasutatakse &quantaplus;is DCOP-liidest.
arguments | string |  |  | mittekohustuslik | Nõutav on source="dcop", liidese ja meetodi nimi. Argumendid edastatakse meetodile. See võib olla tühi või "%tagname%", mis tähendab aktiivse sildi nime.

##### tooltip

Defineerib dialoogi välja kohtspikri. See on puhta teksti tüüpi element.

Praegu on toetatud ainult puhas tekst (märkekeelt kasutada ei saa).

Eellane/eellased | Järglased
--- | ---
attr | PUUDUB

##### whatsthis

Defineerib dialoogi välja abivõimaluse 'Mis see on?' See on puhta teksti tüüpi element.

Praegu on toetatud ainult puhas tekst (märkekeelt kasutada ei saa).

Eellane/eellased | Järglased
--- | ---
attr | PUUDUB

##### list

Konteinersilt, mis koondab nimekirja elemendid. See tohib esineda ainult üks kord atribuudi kirjelduse kohta. See on puhta elemendi tüüpi element.

Eellane/eellased | Järglased
--- | ---
attr | item

##### item

Defineerib nimekirja elemendi. See on puhta teksti tüüpi element.

Eellane/eellased | Järglased
--- | ---
list | PUUDUB

##### textlocation

Määrab sildi atribuudi teksti asukoha dialoogis. See silt võib esineda ainult üks kord atribuudi kohta dialoogis (&ie; üks kord iga sildi <attr > kohta). See element on tühi.

Eellane/eellased | Järglased
--- | ---
attr | PUUDUB

Atribuut | Tüüp | Kasutamine | Kirjeldus
--- | --- | --- | ---
row | Mittenegatiivne täisarv | nõutav | Määrab dialoogis välja või pealdise rea.
col | Mittenegatiivne täisarv | nõutav | Määrab dialoogis välja või pealdise veeru.
rowspan | Mittenegatiivne täisarv | mittekohustuslik | Määrab ridade arvu, millele väli peab laienema.
colspan | Mittenegatiivne täisarv | mittekohustuslik | Määrab veergude arvu, millele väli peab laienema.

##### location

Määrab välja asukoha ja suuruse dialoogis. See väli tohib esinda üks kord iga dialoogi välja kohta (&ie; kord iga sildi <attr > ja <label > kohta). See element on tühi.

Eellane/eellased | Järglased
--- | ---
label, attr | PUUDUB

Atribuut | Tüüp | Kasutamine | Kirjeldus
--- | --- | --- | ---
row | Mittenegatiivne täisarv | nõutav | Määrab dialoogis välja või pealdise rea.
col | Mittenegatiivne täisarv | nõutav | Määrab dialoogis välja või pealdise veeru.
rowspan | Mittenegatiivne täisarv | mittekohustuslik | Määrab ridade arvu, millele väli peab laienema.
colspan | Mittenegatiivne täisarv | mittekohustuslik | Määrab veergude arvu, millele väli peab laienema.

##### text

Defineerib pealdise või märkekasti teksti. See on puhta teksti tüüpi element.

Eellane/eellased | Järglased
--- | ---
label, attr | PUUDUB

##### children

Defineerib elementide nimekirja, mis võivad esineda määratud sildi raames. See on puhta elemendi tüüpi element.

Eellane/eellased | Järglased
--- | ---
tag | child

##### child

Defineerib järglassildi. See element on tühi.

Eellane/eellased | Järglased
--- | ---
children | PUUDUB

Atribuut | Tüüp | Väärtused | Kasutamine | Kirjeldus
--- | --- | --- | --- | ---
name | string |  | nõutav | Määrab sildi, mis võib esineda teatud sildi raames.
kasutusala | string |  | mittekohustuslik | Määrab seose eellasega.
|  | nõutav |  | Eellasel peab olema vähemalt üks selle nimega järglane.

##### stoppingtags

Defineerbi elementide nimekirja, mis sunnivad peale sildi lõpetamise. See on puhta elemendi tüüpi element.

Eellane/eellased | Järglased
--- | ---
tag | stoppingtag

##### stoppingtag

Defineerib peatava sildi. See element on tühi.

Eellane/eellased | Järglased
--- | ---
stoppingtags | PUUDUB

Atribuut | Tüüp | Kasutamine | Kirjeldus
--- | --- | --- | ---
name | string | nõutav | Määrab, millised sildid sunnivad peale muu sildi lõpetamise.

#### TagXML kasutamine

Kõik TagXML-failid peavad algama &XML; deklaratsiooniga <?xml version="1.0" encoding="UTF-8"?> ning nad peavad olemas korralikult pesastatud ja suletud.

Tühikud segavat mõju ei avalda, kuid silma peaks peal pidama märkidel & ja <. On tõenäoline, et need asendatakse vastavalt märkidega &amp; ja &lt; sellistes elementides nagu <tooltip >, <whatsthis >, and <text >. See ei põhjusta vahest küll krahhi, kuid hulk sinu tööd ja vaeva võib küll kaduma minna.

#### TagXML kontrollimine

TagXML-failide kontrollimiseks klõpsa tööriistade hüpikdialoogil &quantaplus;i ülaosas ja vali TagXML kontrollimine. Ilmub dialoog, kus tuleb järgida väga lihtsaid ja arusaadavaid juhiseid.

Seda võimalust ei saa veel kasutada. Praegu on võimalik kontrollida ainult juhul, kui TagXML-fail on &quantaplus;is avatud.

#### TagXML näited

##### Perekond 1

Järgnev kujutab endast korrektset TagXML-faili (perekond 1). See kirjeldab, muide, &W3C; &XML; skeemi elementi <schema >. Selle TagXML-faili nimi peaks olema schema.tag. Lihtne, eks ju?

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE TAGS>
    <TAGS>
     <tag name="schema">
      <label>
       <text
    >id</text>
       <location col="0" row="0"/>
      </label>
      <attr name="id" type="input">
       <tooltip
    >Elemendi unikaalne ID.</tooltip>
       <whatsthis
    >Elemendi unikaalne ID.</whatsthis>
       <location col="1" row="0"/>
      </attr>

      <label>
       <text
    >version</text>
       <location col="0" row="1"/>
      </label>
      <attr name="version" type="input">
       <tooltip
    >Skeemi versioon.</tooltip>
       <whatsthis
    >Skeemi versioon.</whatsthis>
       <location col="1" row="1"/>
      </attr>

      <label>
       <text
    >targetNamespace</text>
       <location col="0" row="2"/>
      </label>
      <attr name="targetNamespace" type="input">
       <tooltip
    >Selle skeemi nimeruumi &URI; viide.</tooltip>
       <whatsthis
    >Selle skeemi nimeruumi &URI; viide.</whatsthis>
       <location col="1" row="2"/>
      </attr>

      <label>
       <text
    >xmlns</text>
       <location col="0" row="3"/>
      </label>
      <attr name="xmlns" type="input">
       <tooltip
    >Ühe või enama nimeruumi &URI; viide selle skeemi jaoks.
       Kui prefiksit ei kasutata, on võimalik selle nimeruumi komponentide mittekvalifitseeritud kasutamine.</tooltip>
       <whatsthis
    >Ühe või enama nimeruumi &URI; viide selle skeemi jaoks.
       Kui prefiksit ei kasutata, on võimalik selle nimeruumi komponentide mittekvalifitseeritud kasutamine.</whatsthis>
       <location col="1" row="3"/>
      </attr>

      <label>
       <text
    >attributeFormDefault</text>
       <location col="0" row="4"/>
      </label>
      <attr name="attributeFormDefault" type="list">
       <items>
        <item
    >qualified</item>
        <item
    >unqualified</item>
       </items>
       <tooltip
    >Selle skeemi kõigi atribuutide vaikimisi vorm.</tooltip>
       <whatsthis
    >Selle skeemi kõigi atribuutide vaikimisi vorm.</whatsthis>
       <location col="1" row="4"/>
      </attr>

      <label>
       <text
    >elementFormDefault</text>
       <location col="0" row="5"/>
      </label>
      <attr name="elementFormDefault" type="list">
       <items>
        <item
    >qualified</item>
        <item
    >unqualified</item>
       </items>
       <tooltip
    >Selle skeemi kõigi elementide vaikimisi vorm.</tooltip>
       <whatsthis
    >Selle skeemi kõigi elementide vaikimisi vorm.</whatsthis>
       <location col="1" row="5"/>
      </attr>

      <label>
       <text
    >blockDefault</text>
       <location col="0" row="6"/>
      </label>
      <attr name="blockDefault" type="input">
       <location col="1" row="6"/>
      </attr>

      <label>
       <text
    >finalDefault</text>
       <location col="0" row="7"/>
      </label>
      <attr name="finalDefault" type="input">
       <location col="1" row="7"/>
      </attr>
     </tag>
    </TAGS>

##### Perekond 2

Järgnev kujutab endast korrektset TagXML-faili (perekond 2). Juhtumisi on tegemist &PHP; ülekoormuse funktsiooniga. Selle TagXML-faili nimi peaks olema overload.tag.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE tags>
    <tags>
      <tag name="overload" type="function" returnType="void">
    <attr name="class_name" type="string" status="optional"/>
      </tag>
    </tags>

### &descriptionrc;

Ka &descriptionrc; on üsna lihtne ning sellele on isegi oma redaktor, mille saab avada menüükäsuga DTD Muuda DTD seadistusi. See võimaldab muuta nimekirjast valitud &DTEP; faili &descriptionrc;. Uue &DTEP; faili &descriptionrc; muutmiseks tuleb luua lihtne &descriptionrc; järgmiste kirjetega:

            [General]
            Version = Use 1 for &quantaplus; version <=3.1.2 and 2 for any version greater.
            Name = DTD definition string. (-//&W3C;//DTD HTML 4.01 Transitional//EN)
            NickName = The beautified name of the DTD. (HTML 4.01 Transitional). If not defined, Name is
            used as NickName.

Kui oled selle loonud, paiguta see sildifailide kõrvale, lae uus &DTEP; menüükäsuga DTD Laadi DTD pakett (DTEP) ning kui see on laetud, saad hakata &DTEP; seadistusi muutma. Uuri redaktoridialoogis kirjete kohtsipkreid ja "Mis see on?" abitekste, et saada aru, milleks iga kirje on mõeldud. Teine võimalus on muidugi lugeda lähtetekstiga kaasasolevat faili `quanta/data/dtep/dtd-description.txt`, milles kirjeldatakse vormingut.

## Kasutaja määratud toimingud

Toiminguid esineb igas rakenduses ja pole mingit kahtlust, et sa oled nendega nii või teisiti kokku puutunud. Klõps tööriistariba nupule, menüükirje valimine või kiirklahvi kasutamine käivitab tavaliselt mingi toimingu. &quantaplus; on toimingud viinud uuele tasemele. Rakenduse looja poolt juba lähtekoodi sisse kirjutatud toimingute asemel saavad nüüd ka tavalised kasutajad toiminguid luua ja muuta ning sel moel &quantaplus;ile uusi võimalusi lisada. Need ongi kasutaja määratud toimingud ning õigupoolest on ka paljud &quantaplus;i standardsed toimingud kasutaja määratud (ja muudetavad) toimingud.

Kasutaja määratud toiminguid on kolme tüüpi:

- Tekstitoimingud

- Silditoimingud

- Skriptitoimingud

### Toimingute loomine

Toimingut saab luua menüükäsuga Seadistused Toimingute seadistamine . Klõpsa nupule Uus toiming, mille järel avaneb selline dialoog:

Tüüp

  Määrab toimingu tüübi (Tekst, Silt, Skript).

Tekst

  Toimingu kasutajale nähtav nimi.

Nupp pealdise Tekst juures

  Toimingule omistatav ikoon. Parajasti kehtiva ikooni muutmiseks klõpsa sellele.

Kohtspikker

  Toimingu lühikirjeldus.

Kiirklahv

  Toimingule omistatav kiirklahv. Klõpsa kiirklahvi omistamiseks kirjele Kohandatud või selle juures asuvale nupule. Klõpsa kirjele Puudub, kui soovid parajasti kehtiva kiirklahvi eemaldada.

Konteiner-tööriistaribad

  Kasutaja määratud tööriistaribad, kus antud toiming on näha. Vaata .

Üksikasjalikud seadistused

  Erinevat tüüpi toimingute spetsiifilised seadistused. Vaata allpool.

### Tekstitoimingud

Lihtsaimad toimingud. Siin saad sektsiooni Üksikasjalikud seadistused sisestada mingi teksti ning seejärel lisatakse antud toimingu käivitamisel alati see tekst sinu dokumenti kursori asukohta. Vaata näidet allpool.

### Silditoimingud

Need on kasulikud XML-siltide lisamiseks, aga mõistagi saab neid ka muuks tarvitada.

<silt>

  Sildi nimi.

</tag>

  Sisselülitamisel lisatakse see tekst toimingu käivitamisel lõpetava sildina. Kui enne toimingu käivitamist on dokumendis valitud ala, lisatakse <tag> valitud ala ette ja </tag> selle järele.

Käivitatakse dialoog "Sildi muutmine" (kui võimalik)

  Sisselülitamisel näidatakse juhul, kui antud sildile on olemas tagXML-fail, enne sildi lisamist dokumenti sildi muutmise dialoogi, kus saab vajaduse korral sildi atribuute täpselt defineerida.

<silt> ja </silt> lisatakse nii, nagu sa need siin annad. Märke <, > või / ei lisata automaatselt.

### Skriptitoimingud

Kõige võimsam toimingutüüp. Selle toiminguga on võimalik käivitada välised rakendused (enamasti skriptid, aga võivad olla ka midagi muud), mis võivad muuta sinu dokumenti või kasutada seda täielikult või osaliselt sisendina. Näited otse &quantaplus;ist on kiirkäivituse dialoog ning mitmesugused Näita kasutades... toimingud (X)HTML DTEP-de jaoks.

Kõigepealt tuleb anda skripti nimi koos interpretaatoriga. Näide: `sh /home/minukodu/minuskript.sh`.

Kuigi kasutada võib ka absoluutseid asukohti, on soovitatav pruukida käsureal muutujat `%scriptdir`, näiteks `sh %scriptdir/minuskript.sh`. Sel juhul üritab &quantaplus; leida sinu skripti järgmistest kohtadest:

- globaalne skriptikataloog: ``$KDEDIR`/share/apps/quanta/scripts`

- kohalik skriptikataloog: ``$KDEHOME`/share/apps/quanta/scripts`

- sinu otsingutee: `$PATH`

Käsureal saab kasutada ka muid spetsiaalseid muutujaid:

- `%f` asendatakse aktiivse dokumendi URL-iga. Kohalike dokumentide korral kärbitakse dokumendist file:/.

- `%input` asendatakse valitud sisendiga. Vaata allpool.

- `%projectbase` asendatakse aktiivse projekti URL-iga. Kui projekti pole laetud, on tühi.

- `%pid` asendatakse töötava &quantaplus;i protsessi PID-ga. Kui &quantaplus; töötab unikaalses režiimis, lisatakse PID-i numbri ette tekst "unique ". Kasulik, kui kasutab DCOP-i &quantaplus;i juhtimiseks välise skriptiga.

- `%userarguments` on kasulik sündmuste korral. See kirje asendatakse sündmuse omadustega järgmises järjekorras:

  Esimene argument

    Skripti unikaalne ID

  Teine argument

    Sündmuse nimi

  Kolmas argument

    Sündmuse parameetrid, tavaliselt aktiivse dokumendi failinimi või projektifaili asukoht.

Lisaks mainitud meetoditele võib skript saada standardsisendis sisendi ka &quantaplus;ilt. Liitkastis Sisend saab valida, mida standardsisendisse saata. Võimalused on järgmised:

- Puudub: skriptile ei saadeta midagi.

- Aktiivne dokument: skriptile saadetakse kogu dokument.

- Valitud tekst: skriptile saadetakse dokumendi valitud ala. Muutuja `%input` kasutamine ongi enamasti mõttekas ainult antud juhul.

Sarnaselt sisendile võib ära kasutada ka käivitatud rakenduse väljundi. Väljund võib olla kaht laadi:

- tavaline väljund, mis saadetakse standardväljundisse;

- veateated, mis saadetakse standardsesse veaväljundisse.

Sinu määrata on see, mis juhtub standardväljundisse saadetud tekstiga. Seda saab teha liitkasti Väljund väärtust muutes:

- Puudub: rakenduse väljundit ignoreeritakse.

- Lisatakse kursori asukohta: väljund lisatakse aktiivsesse dokumenti kursori asukohta.

- Asendatakse valik: dokumendi valitud ala asendatakse väljundiga.

- Asendatakse valik: dokumendi valitud ala asendatakse väljundiga.

- Luuakse uus dokument: luuakse uus dokument, mis sisaldab kogu skripti väljundit.

- Asendatakse käesolev dokument: kogu dokument asendatakse väljundiga.

- Teateaken: väljundit näeb kaardil Teated.

Standardse veaväljundi korral (Viga) on valikud samasugused nagu tavalise väljundi puhul.

## Tööriistaribade loomine

Järgnevas selgitame, kuidas luua &DTEP; jaoks tööriistaribasid. Tööriistaribad on graafilised elemendid, mis on omistatud toimingutele. Toimingud kujutavad &quantaplus;is alust peaaegu kõigile laiendustele, mida &quantaplus; praegu või tulevikus kasutab. Sama mehhanism, mis defineerib &quantaplus;is toiminguid, võimaldab automaatset lõpetamist ning sildidialooge. Toimingute puhul sisuliselt puuduvad piirangud. Näitena kasutame siinkohal meie veebilehtedel &HTML; tidy't.

### Nullist peale

Alustuseks tuleb luua kasutaja tööriistariba. Vali menüükäsk Tööriistaribad Lisa kasutaja tööriistariba .

Kui märkekeeles on palju silte, on soovitatav jagada need loogilistesse gruppidesse. Igale grupile tuleb luua uus kasutaja tööriistariba. Antud juhul pole neid eriti palju, seepärast piirdume ühe tööriistaribaga ja anname sellele vastava märkekeele nime.

Kui kõik vajalikud tööriistaribad on loodud, tuleb neile lisada toimingud ja viimased seadistada. Selleks vali menüükäsk Seadistused Toimingute seadistamine .

Selles aknas peaks kõik iseenda eest kõnelema. Klõpsa akna allosas asuvale nupule >Uus toiming, mis avab redigeerimisrežiimi.

Täida kõik vajalikud väljad ja lisa silt vastavale tööriistaribale.

Nüüd tee sama muude toimingute ja siltidega ning kui sildil on atribuute ja sa kavatsed neid kasutada, märgi ära ka kast Käivitatakse dialoog "Sildi muutmine" (kui võimalik), et sinu käest iga kord vastava toimingu kasutamisel küsitaks.

Nüüd peaks sul olema midagi sellist.

Klõpsa nuppu Rakenda ja näed, kuidas toiming lisatakse valitud tööriistaribale.

Nähh! See ikoon on veidi imelik. Isegi mina ise ei pruugi mäletada, et see käib selle toimingu kohta, mis siis veel teistest rääkida! Vahetame selle enne välja, kui häda käes.

Antud toimingut paremini kirjeldava ikooni loomiseks kasutame rakendust &kiconedit;. Ava see käsuga &kmenu;st Graafika Muud rakendused (või kuidas iganes sinu distributsioon seda ei nimetaks).

&kiconedit; kasutab vaikesuurusena 32x32 pikslit, kuid meie soovime suurust 22x22. Muutmiseks kasuta menüükäsku Redigeerimine Muuda suurust .

Pea meeles, et sa lood ikooni, mis ei aita mitte ainult sul endal meeles pidada, milline toiming mida teeb, vaid tuleb samamoodi kasuks ka teistele &DTEP; kasutajatele.

Et silt, millele ma ikooni looma asusin, kannab nimetust start, siis otsustasin luua alustamismärgi. Roheline värv (mida sageli tarvitatakse tähenduses mine, alusta või jätka) annab või vähemalt peaks andma kasutajale märku, et sellele toimingule klõpsates asetatakse dokumenti silt <start>.

Nii, ikoon on valmis tehtud ja käes aeg see salvestada.

Kui oled ikooni(d) valmis teinud, tuleb need toiminguga siduda. Selleks ava uuesti Seadistused Toimingute seadistamine (&quantaplus;is mõistagi) ja vali toiming, mille jaoks ikooni lõid. Välja Tekst kõrval asub nupp. Vajuta sellele.

Vali Muud ikoonid ja seejärel klõpsa nupule Lehitse.

Mine nüüd kataloogi, kuhu ikooni salvestasid, vali ikoon ja klõpsa nupule OK.

Klõpsa nupule Rakenda ning jätka ikoonide seostamist muude siltidega või klõpsa OK, kui oled omadega valmis.

Oletame, et soovid lisada oma tööriistaribale mõned &quantaplus;i levinumad funktsioonid või arvad, et tööriistariba tuleks paremini organiseerida, näiteks see eraldajatega toimingute gruppidesse jagada. Ava selleks dialoog Tööriistaribade seadistamise dialoog ( Seadistused Tööriistaribade seadistamine ). Kontrolli, et soovitud tööriistariba oleks valitud.

Mina valisin oma tööriistaribale eraldaja (vasaku veeru ülaosast). Kui oled valinud elemendi, mida soovid tööriistaribale lisada, klõpsa paremale osutava noolega nupule, mis lisabki elemendi sinu tööriistaribale.

Ma arvan ka, et mulle meeldiks kiiresti kasutada võimalust Eelvaatlus Konqueroris, seega valin ka selle ja lisan tööriistaribale.

Vaata, kuidas eraldaja tuleb rühmitamisel kasuks. Muidu oleks võinud mõni, kes minu tööriistariba esimest korda näeb, arvata, et nupp &konqueror; on sama, mis alustamisnupp või lausa selle vastand.

Rakenda muudatused ja klõpsa lõpetamiseks nupule OK.

Ah, kui lahe uus tööriistariba! Igati käepärane ja mõnus.

Testi kindlasti oma tööriistariba, proovides klõpsata kõigile nuppudele, et näha, kas kõik teevad ikka seda, mida nad peavad tegema.

Seejärel salvesta tööriistariba: Tööriistaribad Salvesta tööriistaribad Salvestamine kohaliku tööriistaribana .

Salvesta see kindlasti õigesse kataloogi. Kuna NeXML-i ei ole veel olemas, on see mul mul tipptaseme kataloogis, aga sinu tööriistaribad tuleb salvestada korrektsesse kataloogi. Kohenda kindlasti ka faili &descriptionrc;, et tööriistariba(d) laetaks alati, kui lood uue selle tüübiga faili.

## Oma dokumentide loomine

Robert
Nickel

    robert@artnickel.com

Marek
Laane

    bald@starman.ee

Tõlge eesti keelde

## Oma dokumentide loomine

Võib-olla üks tavakasutajale kõige silmatorkavamaid lisandusi &quantaplus;is on võimalus lisada dokumentatsiooni endale meelepärase märgistus- või skriptikeele kohta. See peatükk selgitab, kuidas luua &PHP; dokumentatsioonipuu isiklikuks kasutamiseks.

Enne seda, kui asud looma omaenda dokumentatsiooni, võiksid kontrollida &quantaplus;i hoidlast, ega keegi juba midagi sellist teinud pole.

Loomisprotsess koosneb kahest osast. Esiteks tuleb hankida antud märgistus/skripti/&etc; keele olemasolev dokumentatsioon. Teiseks tuleb luua `docrc` fail. Esimene jääb su enda ülesandeks, teist asume järgnevalt kirjeldama.

Fail docrc näeb üldiselt välja selline:

    #KDE Config File
    [Tree]
    Doc dir=dokumentatsiooni html-failide asukoht antud faili suhtes &eg; php42/
    #top level elements
    Top Element=nende dokumentide kirjeldus &eg; &PHP; 4.2 documentation

    Section 1=Section1.html
    Section 2=#Sec2.1,#Sec2.2,#Sec2.3
    Sec2.1=Sec2.1.html
    Sec2.2=Sec2.2.html
    Sec2.3=Sec2.3.html
    ...

    [Context]
    ContextList=func1,func2,tag1,tag2,tag3
    func1=func1.html
    func2=func2.html
    tag1=tag1.html
    tag2=tag2.html
    tag3=tag3.html

Fail `docrc` jaguneb kaheks osaks: puu ja kontekst.

Puusektsioon määrab dokumentatsiooni esitamise dokumentatsiooni kaardil. Näiteks &PHP;-dokumentide korral võid näha midagi sellist:

Arvestades ülaltoodut, näeb minu &PHP; `docrc` välja selline:

    #KDE Config File

    [Tree]

    Doc dir=php42/

    #top level elements
    Top Element=PHP 4.2 documentation

    PHP 4.2 documentation=Table of Contents,#Getting Started,#Language Reference

    Table of Contents=index.html

    Getting Started=Introduction, ...
    Introduction=introduction.html
    ...

    Language Reference=Basic syntax, ...
    Basic syntax=language.basic-syntax.html
    ...

Pane tähele märki `#` kirjete Getting Started ja Language Reference ees. See näitab, et need on omaette ühikud puus, millel on omaenda sisu. Ma ei usu, et puu sügavusele oleks kusagil limiit seatud (kui jätta arvestamata kaine mõistuse määratu) — nii et kasuta siin oma paremat äranägemist.

Sisukord (Table of Contents) on otseviitega failile (ning seetõttu on see näha puuvaates viimasena — kataloogid esimesena!).

Tühikud segavat mõju ei avalda, kuid silma peaks peal pidama märkidel & ja <. On tõenäoline, et kõigis &XML;-põhistes &quantaplus;i ressursifailides asendatakse need vastavalt märkidega &amp; ja &lt;.

Faili docrc kontekstisektsiooni kasutatakse kontekstitundliku abi pakkumiseks. Oletame näiteks, et kirjutad &PHP; skripti ja tahad näha funktsiooni `mysql_fetch_array` dokumentatsiooni. Selleks tuleb lihtsalt funktsioon esile tõsta ja vajutada kontekstiabi saamiseks klahvikombinatsiooni &Ctrl;H . Kohe ilmubki nähtavale `mysql_fetch_array` dokumentatsioon. Siin on ainult kaks kirjetüüpi: ContextList ja failiassotsiatsiooni read.

ContextList

  See on päris lihtne: komadega eraldatud nimekiri kontekstielementidest, mis sinu arvates peaks olema kättesaadavad (&PHP; puhul on need mõistagi &PHP;-funktsioonid).

Failiassotsiatsiooni read

  Need on kujul kontekstielement=html-dokumendi lehekülg, &eg; acos=function.acos.html

Minu `docrc` omajagu kärbitud kontekstisektsioon on selline:

    #Kontekstiabi võtmesõnad
    [Context]
    ContextList=abs,acos,acosh,addcslashes,addslashes,...

    abs=function.abs.html
    acos=function.acos.html
    acosh=function.acosh.html
    addcslashes=function.addcslashes.html
    addslashes=function.addslashes.html
    ...

Nüüd võid faili `docrc` salvestada vastavalt sellele, kas soovid seda kasutada globaalselt või kohalikult, kataloogi `$`KDEDIR`/share/apps/quanta/doc` või `$`HOME`/.kde/share/apps/quanta/doc`. Seejärel loo failiga `docrc` samas kataloogis alamkataloog (seesama, mille määrasid failis `docrc`) ning kopeeri sinna oma &HTML;-dokumendid.

Kui nüüd taaskäivitad &quantaplus;i, võidki dokumente näha.

Kui oled kindel, et dokumendid on asjalikud, ning soovid neid ka teistega jagada, saada fail `docrc` koos kogu sinu arvates vajaliku infoga &quantaplus;i hoidlasse, kus neid saab kasutada ka ülejäänud &quantaplus;i kogukond. See ei tee sind küll rikkaks, kuid laseb tunda heameelt, et oled andnud oma panuse parimasse olemasolevasse veebiarendusplatvormi.

## Ressursside jagamine

&quantaplus;i kasutajana ei pruugi sa üksi olla. sul on võimalik jagada teistega mitmesuguseid ressursse (DTEP paketid, toimingutega tööriistaribad, skriptid, mallid). Seda saab teha kahel moel:

E-kirja saatmine

  Ressursse saab saata e-kirjaga sõpradele, partneritele või kellele tahes. Menüükäsku Saada e-postiga võib näha mitmel pool, näiteks DTD Saada DTD pakett (DTEP) e-postiga, Tööriistaribad Saada tööriistariba e-postiga, failide ja kataloogide kontekstimenüüs mallide ja skriptide puuvaates.

Üleslaadimine peaserverile

  Ressursse saab laadida meie peahoidlasse, kust neid saavad endale tõmmata teised &quantaplus;i kasutajad. Saadetised vaadatakse üle ja muudetakse kättesaadavaks ainult juhul, kui meie arendajate meeskond hindab need korrektseks ja kasulikuks. Üleslaadimise korrektsuse tagamiseks oleks mõttes need digitaalselt allkirjastada, milleks läheb vaja GPG/PGP võtit. Seda infot saavad ressursside ehtsuse kontrollimiseks kasutada nii meie arendajad kui ka hiljem allalaadijad.

  Ressursside tõmbamisest peaserverilt räägib .

  Üleslaadimisel palutakse sul sisestada oma salajase GPG võtme paroolifraas (paroolifraasi ei salvestata) või kui sul peaks olema rohkem salajasi võtmeid, siis valida see, mida soovid kasutada. Täida dialoogis Uue kuuma kraami jagamine kõik väljad (Eelvaaatluse URL võib jääda tühjaks) ning alusta üleslaadimist klõpsuga nupule OK.

  Üleslaadimise saab algatada menüüst DTD Lae DTD pakett (DTEP) üles, Tööriistaribad Lae tööriistariba üles, failide ja kataloogide kontekstimenüüst mallide ja skriptide puuvaates.

## Ressursside hankimine

&quantaplus;i on võimalik uuendada ka ilma uut versiooni hankimata lihtsalt uusi ressursse tõmmates: DTEP paketid, toimingutega tööriistaribad, mallid, skriptid, dokumentatsioon. Üks võimalus on saada neid e-postiga või tõmmata mõnelt veebiserverilt, millisel juhul need tuleb tavaliselt ise käsitsi paigaldada. Heal juhul saad kaasa ka paigaldamisskripti, mis võtab seda vaeva vähemaks. Kuid &quantaplus;il on ka asjalik server, mis sisaldab selliseid ressursse, mida ei ole kaasatud rakenduse põhipaketti kas suuruse või vähese kasutamisvajaduse tõttu või mida on kasutajad ise hiljem meile annetanud. Neid saab paigaldada juba automaatselt. Selliseid ressursse saab tõmmata mitmel pool menüüs esineva käsuga Lae alla. Täpsemalt leiab sellised käsud menüüst DTD Lae DTD pakett (DTEP) alla, Tööriistaribad Lae tööriistariba alla, failide ja kataloogide kontekstimenüüst mallide ja skriptide puuvaates.

Kui ressurss on tõmmatud, kontrollib &quantaplus; enne selle paigaldamist ressursi korrektsust ja signatuuri. Probleemide korral näidatakse sulle hoiatust ning sa saad otsustada, kas jätkata paigaldamist või mitte. Palun suhtu hoiatustesse tõsiselt ja loe need hoolikalt läbi. Kui ressursiga on kõik korras, ilmub lihtsalt infodialoog, kus saad näha, kes on ressursi loonud.

Kontrolli kindlasti, et paigaldad ressursse, eriti tööriistaribasid ja skripte, ainult usaldusväärsetest allikatest!

## DTD teisendamine &DTEP;-ks

Oma töös saab kasutada ka XML-keeli, mida &quantaplus; veel ei toeta, kui luua DTEP pakett. Selle loomine võib võtta siiski palju aega, sest kirja tuleb panna sadu sildifaile tagXML-vormingus. Seda saab küll ka märksa vähema vaevaga teha - nimelt DTD-d automaatselt DTEP paketiks teisendades.

Teisenduse saab käivitada menüükäsuga DTD Laadi ja teisenda DTD. Vali `.dtd`-fail, milles on defineeritud DTD, mida soovid kasutada, ning seejärel ilmub nähtavale selline dialoog:

Kirjed on järgmised:

- Sihtkataloogi nimi: selle nime all salvestatakse loodav &DTEP; kataloogi ``$KDEHOME`/share/apps/quanta/dtep`.

- Nimi: DTD nimi (definitsioonistring).

- Hüüdnimi: &DTEP; kasutajale nähtav nimi

- !DOCTYPE definitsiooni rida: string, mis peab esinema !DOCTYPE-sildis, näiteks HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"

- DTD URL:: DTD-failile osutav URL

- Vaikimisi laiend: laiend, mida kasutavad tavaliselt antud DTD-d pruukides kirja pandud failid

- Tõstutundlikud sildid ja atribuudid: see peaks olema enesestmõistetav ja on enamasti õige igasuguste XML-keele variantide korral

- DTEP täppishäälestus pärast teisendust: märkimisel avab &quantaplus; pärast teisendust &descriptionrc; redaktori, et saaksid kohe uue &DTEP; päris oma käe järgi sättida. Soovitatav on see valik sisse lülitada.