# &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 arendajatesõ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: description.rc 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.

Käesolev käsiraamat kirjeldab, kuidas luua TagXML faile, faili description.rc 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 description.rc sisaldab reeglid ja info &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 description.rc ja TagXML failidest. Sildikataloogidel on võimalusekorral 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.

Vanem(ad) | Järglased
PUUDUB | tag

##### tag

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

Vanem(ad) | 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).
|  | 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).
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 ujukomaarvu (float).
|  | long |  |  | Sildi tüüp tagastab long.
|  | string |  |  | Sildi tüüp tagastab stringi (string).

##### label

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

Vanem(ad) | 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.

Vanem(ad) | 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.

##### tooltip

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

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

Vanem(ad) | 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).

Vanem(ad) | 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.

Vanem(ad) | Järglased
attr | item

##### item

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

Vanem(ad) | 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.

Vanem(ad) | 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.

Vanem(ad) | 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.

Vanem(ad) | Järglased
label, attr | PUUDUB

##### children

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

Vanem(ad) | Järglased
tag | child

##### child

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

Vanem(ad) | Järglased
children | PUUDUB

Atribuut | Tüüp | Kasutamine | Kirjeldus
name | string | nõutav | Määrab sildi, mis võib esineda teatud sildi raames.

##### stoppingtags

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

Vanem(ad) | Järglased
tag | stoppingtag

##### stoppingtag

Defineerib peatava sildi. See element on tühi.

Vanem(ad) | 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>

### description.rc

Ka fail description.rc on üsna lihtne. Sugugi mitte kõike järgnevat ei ole vaja kasutada. Faili description.rc põhistruktuur on järgmine.

#### Perekond 1 struktuur

    [General] - Üldine info.
    Version = 1 &quantaplus;i versioon <=3.1.2 ja 2 mis tahes uuema versiooni jaoks.
    Name = DTD definitsiooni string. (-//&W3C;//DTD HTML 4.01 Transitional//EN)
    NickName = DTD kaunim nimetus. (HTML 4.01 Transitional). Kui ei ole määratud,
    kasutatakse väärtust Name.
    URL = DTD definitsioonile osutav &URL;. (http://www.w3.org/TR/html4/loose.dtd)
    DoctypeString = String, mis peaks esinema !DOCTYPE deklaratsioonis.
    (HTML PUBLIC "-//&W3C;//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd")
    Inherits = DTD nimi, millelt see DTD pärib oma sildid. (-//&W3C;//DTD HTML 4.01//EN)
    DefaultExtension = Uued failid luuakse selle laiendiga. (html)
    Groups = Tavaliste atribuudigruppide nimekiri, mis võivad esineda enam kui ühes sildis.
    (Core, I18n, Script) Vaata allpool. (Group1, Group2...)
    NumOfPages = Määrab, mitu lehekülge on sildidialoogil lisaks leheküljele, mis sisaldab
    sildifailis defineeritud atribuute. Vaata allpool. (Page1,...)
    CaseSensitive = DTD tõstutundlikkus. (true|false)
    Family = 1See DTEP tüüp kuulub perekonda 1, sest on märkekeeles.

    [Toolbars] - Info DTEP tööriistaribade kohta.
    Location = Kataloogi nimi katalogis $KDEDIR($KDEHOME)/share/apps/quanta/toolbars,
    kus asetsevad selle DTEP tööriistaribad.
    Names = Tööriistaribade failinimede nimekiri (ilma laiendita .toolbar.tgz), mis
    laetakse selle DTEP jaoks ülalmääratud kataloogist.

    [Group1] - Asendub mõnega alltoodud gruppidest.
    Attributes = Selle grupi atribuutide nimekiri. Praegu koheldakse kõiki loetletud atribuute
     stringidena.
    Näide:
    [Core]
    Attributes = id, class, style, title

    [Page1] - Sildi redaktori lehekülje kirjeldus.
    Title = Selle lehekülje tiitel sildi muutmise dialoogis.
    Groups = Sellel leheküljel leiduvate gruppide nimekiri. (Core, I18n)

    [Extra rules] - Mõned reeglid, mis mujale ei sobi.
    BooleanAttributes = (simple|complex)
    Näide simple kohta: <tag booleanAttr
    >.
    Näide complex kohta: <tag booleanAttr="1"
    > või <tag booleanAttr="true">
    Single Tag Style = (html|XML)
    Näide html kohta: <single_tag>
    Näide XML kohta:  <single_tag />
    StructGroupsCount = Struktuuri gruppide arv. Vaata allpool.
    MinusAllowedInWords = Kui on tõene, koheldakse "see-on-sõna" kui sõna, vastasel
    juhul koheldakse seda kui kolme sõna.
    TagAutoCompleteAfter = SÜMBOL. Automaatse lõpetamise kast ilmub kohe, kui
    vajutatakse SÜMBOLI klahvi või vajutatakse tühikuklahvi pärast SÜMBOLI vajutamist.
    DTEP (perekond 1) jaoks on see tavaliselt "<" Kui SÜMBOLI asemel on sõna "puudub",
    ei avata lõpetamise kasti automaatselt, vaid ainult kasutaja konkreetse soovi peale.
    AttributeSeparator = SÜMBOL. See SÜMBOL tähendab, et atribuudi nimi lõppes. Sellele vastab
    märk " XML DTEP-des.
    TagSeparator = SÜMBOL. Sarnane eelkirjeldatuga.

    [StructGroup_1] - Struktuuri grupi 1 definitsioon.
    Name = Tekst, mis ilmub siis, kui on selle grupi seadistustele sobivaid silte.
    No_Name = Tekst, mis ilmub siis, kui EI ole selle grupi seadistustele sobivaid silte.
    Icon = Enne ülaltoodud tekste ilmuva ikooni nimi.
    Tag = tagname(attribute1, attribute2, ...). Sildid nimega tagname on näha
    selles grupis. Elemendi tekstiks on "atribuut1_väärtus | atribuut2_väätus | ..."
    Praegu võib siin olla ainult üks silt.
    HasFileName = (true|false) Tõene, kui elemendi tekst (ülal, atribuudi väärtused) sisaldab faili nime.
    FileNameRx = Regulaaravaldis, millega eemaldatakse ebavajalikud sümbolid elemendi tekstist.

    [Parsing rules] - Dokumendi parsimisel kasutatavad reeglid.
    SpecialAreas = Eripiirkondade algus- ja lõpustring, eraldajaks koma.
    Eripiirkondi ei parsita mitte vastavalt DTEP, vaid nende enda reeglitele.
    Eripiirkond võib olla teise perekonna DTEP, kommentaar või midagi sarnast.
    Nt. <!-- -->
    SpecialAreaNames = Ülalmainitud eripiirkondade nimekiri, eraldajaks komad. Nt. comment
    SpecialTags = tagname(attributename) - Määrab sildi, mis defineerib eripiirkonna alguse.
    MayContain = Käesolevas dokumendis esinevate DTEP-de (perekond 2) nimekiri, eraldajaks komad.
    (php, css)

#### Perekond 2 struktuur

    [General] - Üldine info.
    Version = 1 &quantaplus;i versiooni <=3.1.2 ja 2 mis tahes uuema versiooni jaoks.
    Name = DTD definitsiooni string. (-//&W3C;//DTD HTML 4.01 Transitional//EN)
    NickName = DTD kaunim nimi. (HTML 4.01 Transitional). Kui ei ole defineeritud, kasutatakse
    selle asemel väärtust Name.
    URL = DTD definitsioonile osutav URL. (http://www.w3.org/TR/html4/loose.dtd)
    DoctypeString = String, mis peaks esinema !DOCTYPE deklaratsioonis.
    (HTML PUBLIC "-//&W3C;//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd")
    Inherits = DTD nimi, millelt see DTD pärib oma sildid. (-//&W3C;//DTD HTML 4.01//EN)
    DefaultExtension = Uued failid luuakse selle laiendiga. (html)
    NumOfPages = 0   Alati 0, sest DTEP (perekond 2) puhul puudub sildi  muutmise dialoog.
    CaseSensitive = DTD tõstutundlikkus. (true|false)
    Family = 2See DTEP on perekonnast 2, sest see ei ole märkekeeles.

    [Toolbars] - Info DTEP tööriistaribade kohta.
    Location = Kataloogi nimi kataloogis $KDEDIR($KDEHOME)/share/apps/quanta/toolbars,
    kus asetsevad selle DTEP tööriistaribad.
    Names = Tööriistaribade failinimede nimekiri (ilma laiendita .toolbar.tgz), mis
    laetakse selle DTEP jaoks ülalmääratud kataloogist.

    [Extra rules] - Mõned reeglid, mis mujale ei sobi.
    BooleanAttributes = (simple|complex)
    Näide simple kohta: <tag booleanAttr
    >.
    Näide complex kohta: <tag booleanAttr="1"
    > või <tag booleanAttr="true">
    Single Tag Style = (html|XML)
    Näide html kohta: <single_tag>
    Näide XML kohta:  <single_tag />
    StructGroupsCount = Struktuuri gruppide arv. Vaata allpool.
    MinusAllowedInWords = Kui on tõene, koheldakse "see-on-sõna" kui sõna, vastasel
    juhul koheldakse seda kui kolme sõna.
    TagAutoCompleteAfter = SÜMBOL. Automaatse lõpetamise kast ilmub kohe, kui
    vajutatakse SÜMBOLI klahvi või vajutatakse tühikuklahvi pärast SÜMBOLI vajutamist.
    DTEP (perekond 1) jaoks on see tavaliselt "<" Kui SÜMBOLI asemel on sõna "puudub",
    ei avata lõpetamise kasti automaatselt, vaid ainult kasutaja konkreetse soovi peale.
    AttributeSeparator = SÜMBOL. See SÜMBOL tähendab, et atribuudi nimi lõppes. Sellele vastab
    märk " XML DTEP-des.
    TagSeparator = SÜMBOL. Sarnane eeltooduga.
    AttributeAutoCompletionAfter = SÜMBOL. Sarnane TagAutoCompletionAfter-iga, kuid
    sildi atribuutide jaoks. See on "(" vaikimisi ja ":" CSS jaoks.

    [StructGroup_1] - Struktuuri grupi 1 definitsioon.
    Name = Tekst, mis ilmub, kui selle grupi seadistustele vastab silte.
    No_Name = Tekst, mis ilmub, kui selle grupi seadistustele EI vasta silte.
    Icon = Ülaltoodud tekstide ees ilmuva ikooni nimi.
    Tag = tagname(attribute1, attribute2, ...). Sildid nimega tagname ilmuvad
    selles grupis. Elemendi tekst on "atribuut1_väärtus | atribuut2_väärtus | ..."
    Praegu saab siin olla ainult üks silt.
    HasFileName = (true|false) Tõene, kui tekst (ülal, atribuudi väärtused) sisaldab failinime.
    FileNameRx = Regulaaravaldis, millega eemaldatakse mittevajalikud sümbolid elemendi tekstist.
    SearchRx = regulaaravaldis, millega leitakse tekstialad DTEP-s (perekond 2), mis
    kuuluvad sellesse gruppi
    ClearRx = regulaaravaldis, millega puhastatakse soovimatu tekst/sümbolid ülaltoodud
    otsingu tulemustest. Puhastatud string on näha struktuuripuus.

    [Parsing rules] - Dokumendi parsimisel kasutatavad reeglid.
    SpecialAreas = Eripiirkondade algus- ja lõpustring, eraldajaks koma.
    Eripiirkondi ei parsita mitte vastavalt DTEP, vaid nende enda reeglitele.
    Eripiirkond võib olla teise perekonna DTEP, kommentaar või midagi sarnast.
    Nt. <!-- -->
    SpecialAreaNames = Ülalmainitud eripiirkondade nimekiri, eraldajaks komad. Nt. comment
    SpecialTags = tagname(attributename) - Määrab sildi, mis defineerib eripiirkonna alguse.
    AreaBorders = Komadega eraldatud alapiiride nimekiri, mis kapseldavad selle perekond 2 DTEP. PHP
    korral on selleks: <? ?>, <* *
    >, <% %>
    Tags = tagname(attribute). Kui vanem-(reaalne)DTD on sildiga tagname ja
    selle sildi atribuudi väärtus võrdub DTD nimega, parsitakse sildiala
    vastavalt selle DTD reeglitele.
    Comments = komadega eraldatud alapiiride nimekiri kommentaaride jaoks. EOL tähendab realõppu (end-of-line).
    Nt.: // EOL, /* */
    StructKeywords = semikoolonitega eraldatud struktuuri võtmesõnade nimekiri. Struktuure
    koheldakse uute sõlmedena struktuuripuus.
    StructBeginStr = Struktuuri algust määrav string (näiteks {)
    StructEndStr = Struktuuri lõppu määrav string (näiteks })
    StructRx = Regulaaravaldis, mis sisaldab struktuuriala algust või lõppu.
    Nt. \\{ | \\} (struktuuriala piir võib olla { või })

## Tööriistaribade loomine

Järgnevas selgitame, kuidas luua &DTEP; jaoks tööriistaribasid. Tööriistaribad on graafilised elemendi, mis on omistatud toimingutele. Toimingud kujutavad &quantaplus;is alust peaaegu kõigile laiendustele, mida &quantaplus; praegu või tulevikus kasutab. Sama mehhanism, mis defineerib &quanta;s 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 ma ise ei pruugi mäletada, et see käib selle toimingu kohta, mis siis veel teistest rääkida! Vahetame selle enne välja, kui mingi häda kätte jõuab.

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 description.rc, et tööriistariba(d) laetaks alati, kui lood uue selle tüübiga faili.

## 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 selle 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 ⪚ php42/
    #top level elements
    Top Element=nende dokumentide kirjeldus ⪚ &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, ⪚ 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.