# Étendre &quantaplus;

Ce chapitre décrit comment adapter &quantaplus; à vos besoins particuliers et comment vous pouvez aider &quantaplus; à devenir meilleur.

## Paquet d'édition de type de document (&DTEP;)

Des paquets d'édition de type de document (&DTEP;) sont utilisés dans &quantaplus; pour ajouter la gestion des langages de balisage de script et des &CSS;. Ils permettent à &quantaplus; de fournir des fonctions comme l'autocomplètement et les nœuds d'arborescences. Leur simplicité et leur flexibilité sont ce qui fait de &quantaplus; un &IDE; rapide, facile à utiliser par les développeurs internet. Ils sont ce qui fait de &quantaplus; un environnement de production facile à utiliser.

Les &DTEP; existent en deux variétés, la famille 1, qui sont les langages de balisage et la famille 2, qui sont les langages de script et les &CSS;. Les &DTEP; sont constitués de deux parties : le dossier de balise et les barres d'outils. Les dossiers de balise sont composés de deux types de fichiers, les fichiers description.rc et les fichiers TagXML, qui portent l'extension .tag. Les barres d'outils sont les onglets et boutons orientés icônes (au-dessus de la fenêtre d'édition) qui place le texte dans un document plus rapidement que l'utilisateur peut le saisir.

Ce document décrit comment faire des fichiers TagXML, le fichier description.rc et des barres d'outils en bref, un &DTEP;

Les fichiers TagXML (.tag) définissent à la fois les attributs spécifiques à une balise, et la présentation et le contenu de la boîte de dialogue Propriétés que &quantaplus; affiche pour la balise. Le fichier description.rc fournit les règles et les informations sur le &DTEP; lui même. Les barres d'outils fournissent un moyen rapide pour ajouter des balises dans un document sans se soucier des erreurs d'orthographe et autres erreurs.

### Empaquetage

Les dossiers balise sont juste cela, des dossiers. Ils sont composés seulement des fichiers description.rc et TagXML. Les dossiers balise portent le nom du langage de balisage et la version, si elle s'applique ( par exemple, html4.01-strict).

### TagXML

Le tableau donné ci-dessous fournit les éléments définis dans le fichier TagXML et déclare s'ils sont requis ou non. Bien que tous ne soient pas requis, il est recommandé que vous en utilisiez le maximum de telle manière que les autres utilisateurs puissent avoir une meilleure expérience et plus d'informations pour travailler.

Élément | Utilisation par défaut | Utilisation de la casse
TAGS | requis | toujours
tag | requis | toujours
label | optionnel | requis pour créer une boîte de dialogue propriétés
attr | optionnel | requis pour définir un attribut
tooltip | optionnel | requis pour que la boîte de dialogue Propriétés affiche une astuce
whatsthis | optionnel | requis pour que la boîte de dialogue propriétés affiche « Qu'est ce que c'est ? »
list | optionnel | requis quand un attribut est du type « liste »
item | optionnel | requis quand < list > est utilisé
textlocation | optionnel | toujours
location | optionnel | requis quand un label est utilisée
text | optionnel | requis quand un label est utilisée
children | optionnel | liste de balises qui peuvent apparaître à l'intérieur de la balise en cours de définition
child | requis | une entrée enfants
stoppingtags | optionnel | liste de balises qui indiquent à une autre balise de s'arrêter
stoppingtag | requis | une entrée stoppingtags

#### Descriptions d'élément TagXml

Les section suivantes décrivent, en détail, chaque élément. Tout est présenté d'une manière facile à suivre de l'endroit où ils vont jusqu'à ce qui va à l'intérieur.

##### TAGS

Ceci est l'élément racine d'un document TagXML. Il peut apparaître une seule fois dans un document. Il peut contenir la définition de plusieurs balises. Il s'agit d'un type d'élément élément seul.

Parent(s) | Enfants
AUCUN | tag

##### tag

Contenant pour la balise en cours de définition. Il s'agit d'un type d'élément élément seul.

Parent(s) | Enfants
TAGS | label, attr, stoppingtags

Attribut | Type | Valeurs | Défaut | Utilisation | Description
name | chaîne de caractères |  |  | requis | Spécifie le nom de la balise en cours de définition.
single | booléen |  |  | optionnel | Spécifie si la balise a besoin ou non d'une balise de fermeture </(nom de balise) >.
type | chaîne de caractères |  | xmltag | optionnel | Spécifie le type de balise en cours de définition.
|  | xmltag |  |  | Le type de balise est fondé sur XML. (seulement la famille 1)
|  | property |  |  | Le type de balise est en relation avec les &CSS;. (famille 2 seulement)
|  | function |  |  | Le type de balise est une fonction de script. Quand il est utilisé, < attr > devient argument de la fonction (famille 2 seulement).
|  | class |  |  | Le type de balise est une classe de script. (famille 2 seulement).
returnType | chaîne de caractères |  | void | optionnel | Spécifie le type retour de la balise en cours de définition.(famille 2 seulement)
|  | void |  |  | Le type de balise renvoie un void
|  | int |  |  | Le type de balise renvoie un int
|  | float |  |  | Le type de balise renvoie un réel
|  | long |  |  | Le type de balise renvoie un long
|  | chaîne de caractères |  |  | Le type de balise renvoie une chaîne de caractères.

##### label

Placez une étiquette dans la boîte de dialogue. Le texte est spécifié par la balise <text >.Il s'agit d'un type d'élément élément seul.

Parent(s) | Enfants
tag | text, location

##### attr

Définit un attribut de la balise. Cet élément apparaît une fois pour chaque attribut. Il définit le nom et le type de l'attribut. Il contient également des balises additionelles qui spécifient comment cet attribut doit être affiché, etc. Il s'agit d'un type d'élément élément seul.

Parent(s) | Enfants
tag | location, list, tooltip, whatsthis, textlocation

Attribut | Type | Valeurs | Défaut | Utilisation | Description
name | chaîne de caractères |  |  | requis | Spécifie le nom de l'attribut en cours de définition.
type | chaîne de caractères |  | input | requis | Spécifie le type de l'attribut en cours de définition.
|  | input |  |  | Le champ gère les entrées en texte libre (champ texte).
|  | check |  |  | La valeur du champ est booléenne (case à cocher).
|  | color |  |  | La valeur du champ est une couleur
|  | url |  |  | La valeur du champ est une &URL;. (Fichier local auquel se référer)
|  | list |  |  | La valeur du champ est un article à partir d'une liste spécifiée.
status | chaîne de caractères |  | optionnel | requis | Spécifie si oui ou non l'argument est requis. (Famille 2 seulement)
|  | optionnel |  |  | L'argument est optionnel.
|  | requis |  |  | L'argument est requis
|  | implied |  |  | L'argument est implicite

##### tooltip

Définit l'astuce d'outil pour un champ dans la boîte de dialogue. Cet élément est composé seulement de texte.

Actuellement, seul le texte seul est géré (vous ne pouvez pas utiliser de langage de balisage).

Parent(s) | Enfants
attr | AUCUN

##### whatsthis

Défini l'aide de « qu'est ce que c'est » pour un champ dans la boîte de dialogue. Cet élément est composé seulement de texte.

Actuellement, seul le texte seul est géré (vous ne pouvez pas utiliser de langage de balisage).

Parent(s) | Enfants
attr | AUCUN

##### list

Une balise conteneur qui regroupe ensemble les articles dans une liste. Elle peut apparaître seulement une fois pour chaque description d'attribut. Il s'agit d'un type d'élément élément seul.

Parent(s) | Enfants
attr | item

##### item

Défini un article dans une liste. Cet élément est seulement du texte.

Parent(s) | Enfants
list | AUCUN

##### textlocation

Spécifie la position du texte d'un attribut de balise à l'intérieur d'une boîte de dialogue. Cette balise peut n'apparaître qu'une seule fois pour chaque attribut dans la boîte de dialogue (&cad; un pour chaque balise <attr >). Cet élément est vide.

Parent(s) | Enfants
attr | AUCUN

Attribut | Type | Utilisation | Description
row | nonNegativeInteger | requis | Spécifie la rangée dans la disposition de la boîte de dialogue d'un champ ou d'une étiquette.
col | nonNegativeInteger | requis | Spécifie la colonne dans la disposition de la boîte de dialogue d'un champ ou d'une étiquette.
rowspan | nonNegativeInteger | optionnel | Spécifie le nombre de rangées qu'un champ doit recouvrir.
colspan | nonNegativeInteger | optionnel | Spécifie le nombre de colonnes qu'un champ doit recouvrir.

##### location

Spécifie la position et la taille d'un champ dans la boîte de dialogue. Cette balise doit exister une fois pour chaque champ dans la boîte de dialogue (&pex; un pour chaque balise <attr > et <label >). Cet élément est vide.

Parent(s) | Enfants
label, attr | AUCUN

Attribut | Type | Utilisation | Description
row | nonNegativeInteger | requis | Spécifie la rangée dans la disposition de la boîte de dialogue d'un champ ou d'une étiquette.
col | nonNegativeInteger | requis | Spécifie la colonne dans la disposition de la boîte de dialogue d'un champ ou d'une étiquette.
rowspan | nonNegativeInteger | optionnel | Spécifie le nombre de rangées qu'un champ doit recouvrir.
colspan | nonNegativeInteger | optionnel | Spécifie le nombre de colonnes qu'un champ doit recouvrir.

##### text

Définit le texte pour une étiquette ou une case à cocher. Cet élément est seulement du texte.

Parent(s) | Enfants
label, attr | AUCUN

##### children

Définit une liste d'éléments qui peuvent apparaître à l'intérieur de la balise en cours de spécification. Il s'agit d'un type d'élément élément seul.

Parent(s) | Enfants
tag | child

##### child

Défini une balise enfant. Cet élément est vide.

Parent(s) | Enfants
children | AUCUN

Attribut | Type | Utilisation | Description
name | chaîne de caractères | requis | Spécifie une balise qui peut apparaître à l'intérieur d'une balise donnée.

##### stoppingtags

Défini une liste d'éléments qui forcent une balise a prendre fin. Il s'agit d'un type d'élément élément seul.

Parent(s) | Enfants
tag | stoppingtag

##### stoppingtag

Défini une balise d'arrêt. Cet élément est vide.

Parent(s) | Enfants
stoppingtags | AUCUN

Attribut | Type | Utilisation | Description
name | chaîne de caractères | requis | Spécifie quelles balises forcent l'arrêt d'une autre balise.

#### Utilisation de TagXML

Tous les fichiers TagXML doivent commencer par la déclaration &XML; <?xmlversion="1.0"encoding="UTF-8"?> et doivent être proprement imbriqués et fermés.

Les blancs n'affectent pas gravement quoi que ce soit, mais vous devez faire attention aux caractères & et <. Ceux-ci devraient être remplacés respectivement par un &amp et un &lt dans des éléments comme <tooltipl >, <whatsthis > et <text >. Ne pas faire ainsi ne causera pas d'incident , mais vous aurez des portions de votre travail qui disparaîtra si vous ne le faites pas.

#### Validation de TagXML

Pour valider vos fichiers TagXML, cliquez simplement sur « Outils » dans la boîte de dialogue contextuelle dans la partie supérieure de &quantaplus; et sélectionnez « Valider TagXML » . Une boîte de dialogue apparaît et vous n'avez qu'à suivre les indications.

Cette fonctionnalité n'est pas présente actuellement. À l'heure actuelle, la validation s'effectue quand les fichiers TagXML sont chargés dans &quantaplus;.

#### Exemples TagXML

##### Famille 1

Ce qui suit vous montre un fichier TagXML valide de famille 1. Ce fichier décrit l'élément schéma < schéma > du &W3C; &XML;. Le nom de fichier pour ce TagXML serait schema.tag. Simple n'est ce pas ?

    <?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
    >A unique ID for the element.</tooltip>
       <whatsthis
    >A unique ID for the element.</whatsthis>
       <location col="1" row="0"/>
      </attr>

      <label>
       <text
    >version</text>
       <location col="0" row="1"/>
      </label>
      <attr name="version" type="input">
       <tooltip
    >Version of the schema.</tooltip>
       <whatsthis
    >Version of the schema.</whatsthis>
       <location col="1" row="1"/>
      </attr>

      <label>
       <text
    >targetNamespace</text>
       <location col="0" row="2"/>
      </label>
      <attr name="targetNamespace" type="input">
       <tooltip
    >&URI; reference of the namespace of this schema.</tooltip>
       <whatsthis
    >&URI; reference of the namespace of this schema.</whatsthis>
       <location col="1" row="2"/>
      </attr>

      <label>
       <text
    >xmlns</text>
       <location col="0" row="3"/>
      </label>
      <attr name="xmlns" type="input">
       <tooltip
    >&URI; reference for one or more namespaces for use in this schema.
       If no prefix is used, then components of that namespace may be used unqualified.</tooltip>
       <whatsthis
    >&URI; reference for one or more namespaces for use in this schema.
       If no prefix is used, then components of that namespace may be used unqualified.</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
    >Default form for all attributes within this schema.</tooltip>
       <whatsthis
    >Default form for all attributes within this schema.</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
    >Default form for all elements within this schema.</tooltip>
       <whatsthis
    >Default form for all elements within this schema.</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>

##### Famille 2

Ce qui suit vous montre un fichier TagXML de famille 2 valide. Ce fichier décrit la fonction de surcharge de &PHP;. Le nom de ce fichier serait surcharge.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

Le fichier description.rc est aussi assez simple. Tout ce qui suit n'a pas besoin d'être utilisé. La structure de base d'un fichier description .rc est comme suit.

#### Structure de famille 1

    [General] - Information générique.
    Version = Utiliser 1 pour les versions <=3.1.2 et 2 de &quantaplus; ou pour toute version plus récente.
    Nom = définition de DTD. (-//&W3C;//DTD HTML 4.01 Transitional//EN)
    NickName = Le nom embelli de la DTD. (HTML 4.01 Transitional). S'il n'est pas défini, le nom est utilisé comme surnom

    &URL; = &URL; pointe vers la définition de la DTD. (http://www.w3.org/TR/html4/loose.dtd)
    DoctypeString = La chaîne de caractères qui doit apparaître dans la déclaration !DOCTYPE .
    (HTML PUBLIC "-//&W3C;//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd")
    hérite = Le nom de la DTD a partir duquel la DTD hérite de ses balises. (-//&W3C;//DTD HTML 4.01//EN)
    Extension par défaut = Les nouveaux fichiers sont créés avec cette extension. (html)
    Groupes = La liste des groupes d'attributs communs qui peuvent être present dans plus d'une balise.
    (Core, I18n, Script) Voir ci-dessous. (Groupe1, Groupe2...)
    Nombre de pages = Combien de pages possèdent une balise, en plus de la page contenant les attributs
    définis dans le fichier balise ? Voir ci-dessous. (Page1,...)
    Sensible à la casse = Sensibilité à la case de la DTD. (vrai|faux)
    Famille = 1 Ce type de DTEP est de famille 1, puisqu'il possède un balisage.

    [Toolbars] - Information sur la barre d'outils DTEP.
    Emplacement = Le nom du dossier dans $KDEDIR($KDEHOME)/share/apps/quanta/toolbars
    ou les barres d'outils pour ce DTEP sont placées.
    Noms = La liste des noms de barres d'outils, moins l'extension .toolbar.tgz
    qui sont chargées a partir de la DTEP a partir du dossier ci-dessus.

    [Groupe1] - Remplacer avec l'un des groupes listés ci-dessous.
    Attributs = La liste des attributs pour ce groupe. Actuellement, tous les attributs listés sont
    considérés comme des chaînes de caractères.
    Exemple :
    [Core]
    Attributs = id, class, style, title

    [Page1] - Description d'une page d'édition de balise.
    Titre = Le titre de cette page dans la boîte d'édition de la balise.
    Groupes = Liste des groupes apparaissant dans cette page. (Core, I18n)

    [Règles supplémentaires] - certaines règles non situées dans d'autres endroits.
    Attributs booléens = (simple|complexe)
    Exemple pour un : <tag booleanAttr
    > simple.
    Exemple pour un: <tag booleanAttr="1"
    > or <tag booleanAttr="true">
    Single Tag Style = (html|XML)
    Exemple pour du html: <single_tag>
    Exemple pour du XML:  <single_tag />
    StructGroupsCount = le nombre de groupe de structure. Voir ci-dessous.
    MinusAllowedInWords = Si vrai "ceci-est-un-mot" est traité comme un mot. Autrement , il est traité comme 4 mots,
    TagAutoCompleteAfter = CHAR. La boîte de dialogue d'auto-complètement apparaît automatiquement une fois que ce CHAR est entré ou ESPACE est pressé après ce CHAR. Pour le DTEP de famille 1,
    c'est ordinairement « < ». Le texte « aucun » au lieu de CHAR spécifie que la boîte de complément de balise ne doit pas apparaître automatiquement, sauf si l'utilisateur le demande.
    Séparateur d'attribut= CHAR. Ce CHAR signifie que le nom d'attibut est fini.
    c'est pour" XML DTEPs.
    TagSeparator = CHAR. Similaire a ci-dessus.

    [StructGroup_1] - Definition d'un groupe 1 de structure
    Nom = Le texte qui apparaît si il y a des balises qui correspondent aux réglages de ce groupe.
    No_Name = Le texte qui apparaît si il y a des balises NO correspondant aux réglages de ce groupe.
    Icone = Le nom de l'icône apparaissant avant les textes ci-dessus.
    Balise = nom de balise(attribut1, attribut2, ...). Les balises avec le nom nom de balise apparaissent sous
    ce groupe. L'article est "attribut1_valeur | attribut2_valeur| ..."
    Actuellement une seule balise peut être listée ici.
    possède un nom de fichier = (vrai|faux) Vrai, si l'article texte(au dessus des valeurs de l'attribut) contient un nom de fichier.
    Nom de fichierRx = Expression régulière pour enlever els caractères non nécessaires de l'article texte.

    [règles de validation] - Règles utilisées pour la validation du document.
    SpecialAreas = The beginning and ending string of special areas, separatted by a comma.
    Les zones spéciales ne sont pas analysés selon les régles des DTEP, mais selon leur propres règles.
    Une zone spéciale peut être une DTEP d'une autre famille, un commenataire, ou quelque chose du même effet.
    Eg. <!-- -->
    Nom de zones spéciales = Liste séparée par des virgules des noms de zones spéciales Eg. comment
    Balises spéciales = nom de balise (nom d'attribut) - Spécifie une balise qui défini le début d'une zone spéciale.
    peut contenir = Liste séparée par des virgules de DTEP de famille 2 qui peuvent être presentes dans le document.
    (php, css)

#### Structure de famille 2

    [General] - information générique.
    Version = Utiliser 1 pour les versions <=3.1.2 et 2 de &quantaplus; ou pour toute version plus récente .
    Nom = nom propre
    surnom =  s'il n'est pas défini, nom est utilisé comme surnom.
    hérite = Le nom de la DTEP a aprtir de laquelle ce DTEP hérite de ses balises. (le nom, pas le surnom)
    Extension par défaut= Les nouveaux fichiers sont créés avec cette extension. (php)
    nombre de pages = 0  Toujours zero parce qu'il n'y a aps de boîte de dialogue pour les DTEP de famille 2
    sensible a la casse = sensibilité à la casse de la DTEP. (vrai|faux)
    Famille = 2Ce type de DTEP appartient à la famille 2 puisqu'il n'a pas de balisage.

    [Barres d'outils] - Information sur els barres d'outils de DTEP .
    Emplacement = Le nom du dossier dans $KDEDIR($KDEHOME)/share/apps/quanta/toolbars
    ou les barres d'outils pour cette DTEP sont.
    Noms = La liste des noms de fichiers de barres d'outils, moins l'extension .toolbar.tgz qui sont chargées pour cette DTEP a partir du dossier ci-dessus.

    [règles supplémentaires] - certaines règles noon placées dans d'autres endroits.
    Attributs booléens = (simple|complexe)
    Exemple pour un simple: <tag booleanAttr
    >.
    Exemple pour un complexe: <tag booleanAttr="1"
    > ou <tag attribut booléen="vrai">
    StructGroupsCount = Le nombre de groupe de structure. Voir ci-dessous.
    MinusAllowedInWords = si vrai "ceci-est-un-mot"est traité comme un mot sinon, il est traité comme 4 motsTagAutoCompleteAfter = CHAR. La boîte de dialogue d'auto-complètement apparaît automatiquement
    une fois que ce CHAR est entré, ou que ESPACE est actionné après ce CHAR. Pour le DTEP de famille 1, c'est ordinairement « < ». Le texte « aucun » au lieu de CHAR qui spécifieque la balise de boîte de complètement ne doit pas apparaître automatiquement, seulement si l'utilisateur le demande.
    séparateur d'attribut = CHAR. ce CHAR signifie que le nom d'attribut est terminé.
    c'est pour " XML DTEPs.
    Séparateur de balise = CHAR. Similaire à ci-dessus
    AttributeAutoCompletionAfter = CHAR. Similaire à TagAutoCompletionAfter, mais
    pour les attributs de balises. c'est « ( » par défaut et « : » pour les CSS.

    [StructGroupe_1] - Définition du groupe 1 de structure .
    Nom = Le texte qui apparaît s'il y a des balises correspondant aux réglages de ce groupe.
    pas _de_nom = Le texte qui apparaît s'il y a des balises NO correspondant aux reglages de ce groupe.
    Icone = Le nom de l'icône apparaissant avant les textes ci-dessus.
    balise = nom de balise (attribut1, attribut2, ...). Les balises avec le nom nom de balise apparaissent
    sous ce groupe. L'article texte est « attribut1_valeur | attribut2_valeur | ... »
    actuellement, une seule une balise peut être listée ici.
    HasFileName = (vrai|faux) vrai, si l'article texte (au-dessus des valeurs de l'attribut) contient un nom de fichier.
    nom de fichierRx = expression réguliere pour enlever les caractères non nécessaires de l'article de texte.
    rechercheRx = expression régulière utilisée pour trouver du texte dans une DTEP de famille 2 qui appartient a ce groupe
    ClearRx = expression réguliere utilisée pour annuler le texte/chars non necessaire de ci-dessus
    résultat de la recherche. La chaîne nettoyée apparaît dans l'arbre de structure.

    [regles d'analyse] - règles utilisées lors de l'analyse du document.
    zones spéciales = le début et la fin des chaînes de caractères de zones speciales, separées par une virgule.
    les zones spéciales ne sont pas analysées selon les règles de cette DTEP, mais selon leur propres règles.
    une zone spéciale peut être une DTEP d'une autre famille, un commentaire ou quelque chose à cet effet.
    Eg. <!-- -->
    noms de zones spéciales = liste séparée par des virgules des noms de zones spéciales ci-dessus. ex. commentaire
    Balises Speciales = nom de balise(nom d'attribut) - Specifie une balise qui défini le début d'une zone spéciale.
    bordures de zone = liste séparée par des virgulesdes bordures de cette zone englobant cette DTEP de famille 2. Dans le cas
    de PHP, c'est : <? ?>, <* *
    >, <% %>
    balises = nom de balise( attribut).  Si la DTD parente (reelle) possede une balise avec un nom de balise et que
    la valeur de l'attribut de cette balise est égal au nom de la DTD , la zone de la balise est analysée selon les regles de cette DTD.
    Commentaires = liste séparée par des virgules des bordures de zones pour les commentaires.FDLsignifie Fin De ligne.
    ex. : //FDL, /* */
    StructKeywords = liste séparée par des points-virgules des mots clés de structure. Les structures sont traitées comme de nouveaux noeuds dans l'arbre de structure
    StructBeginStr = une chaîne de caractères spécifiant le début d'une structure (like {)
    StructEndStr = une chaîne de caractères spécifiant la fin d'une structure (like })
    StructRx = expression régulière contenant le début ou la fin de la zone de structure
    . ex. :  \\{ | \\} (la bordure de zone de structure peut être { or })

## Créer des barres d'outils

Ce qui suit vous explique comment créer des barres d'outils pour un &DTEP;. Les barres d'outils sont des éléments graphiques qui sont assignés à des actions. Les actions dans &quantaplus; sont la base de quasiment toutes les extensions que possède &quantaplus; et qui seront acquises dans l'avenir. Le même mécanisme qui définit une action dans &quantaplus; active aussi l'autocomplètement et les boîtes de dialogue de balises. Avec les actions, ce que vous pouvez faire est pratiquement sans limite. À titre d'exemple, nous utiliserons &HTML; tidy sur nos pages web.

### En partant de zéro

Pour commencer, vous avez besoin de créer une barre d'outils utilisateur. Sélectionnez Barres d'outils Ajouter une barre d'outils utilisateur .

S'il y a beaucoup de balises pour le langage de balisage, il est recommandé de diviser les balises en groupes logiques. Vous devez créer une barre utilisateur pour chaque groupe. Dans ce cas, il n'y en a pas beaucoup, nous faisons alors une barre d'outils et nous l'appelons du nom du langage de balisage.

Une fois que toutes les barres d'outils sont créées, vous devez ajoutez et configurer les actions. Pour faire ceci, sélectionnez Configuration Configurer les actions .

Les parties de cette fenêtre sont assez évidentes. Cliquez sur le bouton Nouvelle action en bas de la fenêtre pour entrer dans le mode édition.

Remplissez tous les champs nécessaires et ajoutez la balise à la barre d'outils appropriée.

Terminez le reste, si la balise possède des attributs et que vous prevoyez de toujours les utiliser, cochez la case Lancer la boîte de dialogue « Éditer les balises » si elle est disponible de telle manière que vous soyez averti à chaque fois que l'action est utilisée.

Vous devez avoir quelque chose ressemblant à ce qui suit.

Cliquez sur le bouton Appliquer et vous devez voir l'action ajoutée à la ou aux barre(s) d'outils que vous avez sélectionnée(s).

Outch ! C'est une horrible icône. Comment allez-vous vous souvenir que telle icône va avec telle action ? Remplaçons-la avant que les problèmes ne surviennent.

Pour créer une icône qui décrit plus précisement cette action, nous allons utiliser &kiconedit;. Sélectionnez-le dans &menuk;, Graphisme Autres applications (ou là où votre distribution l'a placé).

&kiconedit; par défaut est reglé sur 32x32 pixels, mais nous avons besoin de 22x22. Pour changer ceci, sélectionnez Édition Redimensionner... .

Gardez à l'esprit que vous êtes en train de créer une icône qui va vous aider, vous et les autres utilisateurs de la &DTEP; à vous souvenir quelle action fait quoi.

Puisque la balise pour laquelle nous créons une icône est appellée « démarrer », nous avons décidé de créer un « signal démarrer ». En utilisant la couleur verte ( le vert est souvent interprété comme « débuter », « démarrer », ou « poursuivre », cela va, ou au moins devrait, transmettre le message à l'utilisateur que cliquer sur cette action va placer la balise <démarrer> dans le document courant.

Maintenant que nous avons terminé la création de cette icône, nous l'enregistrons.

Une fois que vous avez terminé la création de la ou des icônes, vous devez associer l'icône avec les actions. Pour faire ceci, ouvrez de nouveau (dans &quantaplus;) Configuration Configurer les actions et sélectionnez l'action pour laquelle vous avez créé l'icone. À coté du champ Texte, vous allez voir un bouton. Cliquez dessus.

Sélectionnez Autres icônes et cliquez alors sur le bouton Parcourir.

Déplacez-vous dans de dossier dans lequel vous avez enregistré l'icône, sélectionnez-la et cliquez sur OK.

Cliquez sur le bouton Appliquer et faites la même chose avec les autres balises, s'il y en a, ou alors cliquez sur OK pour terminer.

Supposons que vous vouliez ajouter des fonctions communes de &quantaplus; à votre barre d'outils ou peut-être pensez-vous que la barre d'outils serait mieux organisée d'une manière différente avec des séparateurs pour grouper les actions. Ouvrez la boîte de dialogue Configurer les barres d'outils en allant sur Configuration Configurer les barres d'outils . Vérifiez que votre barre d'outils est sélectionnée.

Nous allons sélectionner le séparateur (haut de la colonne de gauche) pour notre barre d'outils. Une fois que vous avez sélectionné l'élément que vous souhaitez ajouter à votre barre d'outils, cliquez sur le bouton flèche à droite. Ceci va l'ajouter à votre barre d'outils.

Nous aimerions créer un accès rapide à la Prévisualisation dans Konqueror . Nous allons la sélectionner et l'ajouter à la barre d'outils.

Notez comment le séparateur aide dans le regroupement. Quelqu'un ne connaissant pas notre barre d'outils pourrait penser que le bouton &konqueror; est l'opposé du bouton démarrer.

Appliquez vos changements et lorsque vous avez terminé, cliquez sur OK.

Regardez maintenant cette fantastique nouvelle barre d'outils. Beaucoup plus pratique maintenant.

N'oubliez pas de tester votre barre d'outils, en cliquant sur tous les boutons, de façon à vérifier que le résultat en sortie est correct.

Maintenant, pour enregistrer la barre d'outils, nous allons sélectionner Barres d'outils Enregistrer les barres d'outils Enregistrer en tant que barre d'outils locale .

Enregistrez-la dans le dossier approprié. Puisque NeXML n'existe pas, nous le placerons dans le dossier de niveau supérieur, mais votre barre d'outils doit être enregistrée dans le dossier correct. Assurez-vous d'adapter votre description.rc pour qu'il charge votre (vos) barre (s) d'outils quand un nouveau fichier de ce type est crée.

## Créer votre propre documentation.

Probablement, les ajouts les plus notables à &quantaplus; pour l'utilisateur commun sont ceux de documentation pour le langage de balisage ou de script que vous préferez . Dans ce but, ce chapitre décrit comment créer l'arbre de documentation &PHP; pour votre usage personnel.

Avant de commencer à créer votre propre documentation, vous pouvez souhaiter visiter sur les archives de &quantaplus; pour voir si quelqu'un l'a déjà mené à bien.

Il y a deux parties à ce processus. Primo, vous devez obtenir la documentation existante pour le langage de balisage/de script/&etc; sur lequel vous travaillez. Secundo, vous devez créer le fichier `docrc`. Le premier est à votre initiative, le second est ce que nous allons couvrir ici.

La forme générale du fichier docrc est comme suit :

    #KDE Config File
    [Tree]
    Doc dir=chemin d'accès, relatif à ce fichier, des fichiers documentation html &pex; php42/
    #top level elements
    Top Element=votre description pour cette documentation &pex; &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

Le fichier `docrc` se répartit en deux sections : Tree et Context.

La section Tree définit l'aspect de présentation de la documentation dans l'onglet documentation. Par exemple, vous voyez que dans la documentation &PHP; vous avez quelque chose qui ressemble a ceci :

En se référerant à ce qui est écrit ci-dessus, notre `docrc` &PHP; ressemble a ceci :

    #KDE Config File

    [Tree]

    Doc dir=php42/

    #top level elements
    Top Element=PHP 4.2 documentation

    PHP 4.2 documentation=Table des matières,#Démarrer,#References du Langage

    Table des matières=index.html

    Démarrer=Introduction, ...
    Introduction=introduction.html
    ...

    Références du langage=Basic syntax, ...
    Syntaxe de base=language.basic-syntax.html
    ...

Notez le `#`devant « Démarrer » et « Références du langage ». Ceci indique que ce sont des sous-conteneurs dans l'arbre et qu'ils possèdent un contenu propre.

Pour la table des matières, vous notez qu'elle est référencée directement à un fichier (et par conséquent apparaît en bas de la vue de l'arbre les dossiers en premier).

Les espaces n'affectent rien, mais faites attention aux caractères & et <. Ils devraient être remplacés respectivement par &amp; et &lt dans tous les fichiers ressource de &quantaplus; fondés sur &XML;.

La section Context est la partie du fichier docrc qui est utilisée pour faciliter l'aide sensible au contexte. Par exemple, vous écrivez un script &PHP; et vous voudriez voir la documentation pour la fonction `mysql_fetch_array`. Vous mettez seulement la fonction en surbrillance, puis cliquez sur &Ctrl;H pour l'aide contextuelle. La documentation pour `mysql_fetch_array` va s'afficher immédiatement. Il y a seulement deux entrées ici : la liste de contexte et les lignes d'association de fichier.

Liste de contexte

- C'est très simple, il s'agit juste d'une liste séparée par des virgules des articles de contexte que vous souhaitez avoir de disponible (pour &PHP; ce sont les fonctions pour &PHP;).

Lignes d'association de fichier

- Elles sont de la forme article de contexte= page de doc html. &pex; acos=fonction.acos.html

Une version réduite de la section Contexte de notre fichier `docrc` est comme suit :

    #Mots-clés pour l'aide contextuelle
    [Contexte]
    ContextList=abs,acos,acosh,addcslashes,addslashes,...

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

Maintenant, vous pouvez enregistrer votre fichier `docrc` dans `$`HOME`/.kde/share/apps/quanta/doc` ou `$`KDEDIR`/share/apps/quanta/doc` pour respectivement un usage local ou général. Puis créez un dossier (celui spécifié dans votre fichier `docrc`) dans le même dossier que votre fichier `docrc` et copiez vos pages &HTML; dedans.

Vous aurez à redémarrer &quantaplus; pour voir votre documentation.

Une fois que vous êtes sûr que vos documentations sont bonnes et valent la peine d'être partagées, envoyez le fichier `docrc` avec une description de toute information pertinente sur quelle documentation vous avez utilisé à l'archive &quantaplus; pour être utilisé par la communauté &quantaplus;. Vous ne deviendrez pas riche, mais vous aurez le grand sentiment d'avoir contribué à la meilleure plate-forme de développement web disponible.