Udvidelse af Quanta Plus

Christopher Hornbaker

András Mantia

Oversætter: Rune Rønde Laursen

Indholdsfortegnelse

Dokumenttype-redigeringspakke (DTEP)
Indpakning
TagXML
description.rc
Brugerdefinerede handlinger
At oprette handlinger
Teksthandlinger
Mærkehandlinger
Scripthandlinger
Opret værktøjslinjer
Fra begyndelsen til en færdig værktøjslinje
Opret din egen dokumentation
Del ressourcer
Hent ressourcer
Konvertér en DTD til en DTEP

Dette kapitel beskriver hvordan Quanta Plus kan tilpasses netop dine behov, og hvordan du kan hjælpe til med at gøre Quanta Plus bedre.

Dokumenttype-redigeringspakke (DTEP)

Dokumenttype-redigeringspakken (DTEP) bruges i Quanta Plus til at tilføje understøttelse for mærker, scriptsprog og stilskabeloner. De tillader Quanta Plus at levere funktioner såsom automatisk komplettering og knudetræ. Deres enkelhed og fleksibilitet er det der gør Quanta Plus til et hurtig, udviklervenlig integreret udviklingsmiljø for internet-udviklere. De gør Quanta Plus til et letanvendeligt, produktivt miljø.

Der findes to varianter af DTEP, familie 1, som er opmarkeringer, og familie 2 som er scriptsprog og stilskabeloner. En DTEP består af to dele, mærkemappen og værktøjslinjerne. Mærkemapper består af to filtyper, filerne description.rc og XML-mærker, som har endelsen .tag. Værktøjslinjer er bekvemme, ikonorienterede linjer med knapper (ovenfor redigeringsvinduet), som tilføjer til tekst til et dokument hurtigere end brugeren kan skrive.

En DTEP kan laves manuelt (se nedenfor), downloades eller laves automatisk ud fra en eksisterende DTD. Se “Konvertér en DTD til en DTEP for information om konvertering.

Dette dokument beskriver hvordan XML-mærkefiler, filen description.rc og værktøjslinjer laves. I korthed, en DTEP.

XML-mærkefiler (.tag) definerer både egenskaber specifikke for et mærke, samt layout og indhold i egenskabsdialogen som Quanta Plus viser for mærket. Filen description.rc sørger for regler og information om en hel DTEP. Værktøjslinjer sørger for en hurtig måde at tilføje mærker til et dokument, uden at behøve bekymre sig om fejlstavninger eller lignende.

Indpakning

Mærkemapper er netop det, mapper. De består kun af filerne description.rc og XML-mærkefiler. Mærkemapperne bærer mærkesprogets navn og version, hvis der findes en (for eksempel html-4.01-strict).

TagXML

Tabellen nedenfor har en liste af elementer som defineres i XML-mærkefiler, og angiver om de kræves eller ej. Selv om ikke alle kræves, anbefales du at anvende så mange som du kan, så andre brugere får en bedre oplevelse og mere information at arbejde med.

ElementNormal brugSpeciel brug
TAGSkrævesaltid
tagkrævesaltid
labelvalgfrikræves for at oprette en egenskabsdialog
attrvalgfrikræves for at definere en egenskab
tooltipvalgfrikræves for at lade egenskabsdialogen vis et værktøjstips
whatsthisvalgfrikræves for at få egenskabsdialogen til at vise “Hvad er dette
listvalgfrikræves når en egenskab har typen “list
itemvalgfrikræves når <list> bruges
textlocationvalgfrialtid
locationvalgfrikræves når label bruges
textvalgfrikræves når label bruges
childrenvalgfriliste over mærker som kan findes indeni mærket som defineres
childkrævesen af indgangene i children
stoppingtagsvalgfriliste over mærker som fortæller et andet mærke at det har nået slutningen
stoppingtagkrævesen af indgangene i stoppingtags

Elementbeskrivelser for XML-mærker

Følgende afsnit beskriver hvert element i detalje. Alt fra hvor de kan findes, til hvad som findes i dem præsenteres på en måde som er enkel at følge.

TAGS

Dette er XML-mærkedokumentets rodelement. Det må kun findes en gang i et dokument. Det kan indeholde definitionen af flere mærker. Dette er et typeelement med kun element.

OverliggendeUnderliggende
INGENtag
tag

Omgivelse for mærket som defineres. Dette er et typeelement kun med element.

OverliggendeUnderliggende
TAGSlabel, attr, stoppingtags
EgenskabTypeVærdierStandardBrugBeskrivelse
navnstreng  krævesAngiver navnet på mærken som bliver defineret.
singleboolean  valgfriAngiver om mærket kræver et afsluttende mærke </(mærkenavn)>.
typestreng xmltagvalgfriAngiver typen af mærket som defineres.
  xmltag  Typen for mærket er XML-baseret (kun familie 1).
  entitet  Mærket beskriver en entitet (kun familie 1).
  egenskab  Typen for mærket er CSS™ (kun familie 2).
  funktion  Typen for mærket er en scriptfunktion. Når dette bruges bliver <attr> funktionens argument (kun familie 2).
  klasse  Typen for mærket er en scriptklasse (kun familie 2).
  method  Typen for mærket er en klassemetode (kun familie 2).
returnTypestreng void valgfriAngiver returtypen for mærket som defineres (kun familie 2).
  void  Mærketypen returnerer ingenting.
  int  Mærketypen returnerar et heltal.
  float  Mærketypen returnerer et decimaltal.
  long  Mærketypen returnerer et langt heltal.
  streng  Mærketypen returnerer en streng.
versionstreng  valgfriAngiver sprogets version som mærket er gyldig for
extendsstreng  valgfriKun gyldig hvis typen for mærket er "klasse". Navnet på basisklassen for denne klasse (kun familie 2).
klassestreng  valgfriKun gyldig hvis typen er "method". Angiver navnet på klassen som denne metoden tilhører (kun familie 2).
commonboolean  valgfriHvis "yes", angiver mærket en fælles egenskabsgruppe, og egenskaberne inde i mærket kan kobles til et hvilket som helst andet mærke (kun familie 1).
commentstreng  valgfrikommentarstrengen vises ved siden af mærke taggnavnet i kompletteringsfeltet
label

Placér en rubrik i dialogen. Teksten angives af mærket <text>. Dette er et typeelement kun med element.

OverliggendeUnderliggende
tagtext, location
attr

Definerer en egenskab for mærket. Elementet forekommer en gang for hver egenskab. Det definerer egenskabens navn og type. Det indeholder også yderligere mærker som angiver hvordan egenskaben skal vises, osv. Dette er et typeelement med kun element.

OverliggendeUnderliggende
taglocation, list, tooltip, whatsthis, textlocation
EgenskabTypeVærdierStandardBrugBeskrivelse
navnstreng  krævesAngiver navnet på egenskaben som er ved at blive defineres.
typestreng inputkrævesAngiver typen for egenskaben som er ved at blive defineres.
  input  Feltet understøtter frie tekstindgange (tekstfelt).
  check  Feltets værdi er boolesk (afkrydsningsfelt).
  farve  Feltets værdi er en farve.
  url  Feltets værdi er en URL (Lokal fil at henvise til).
  list  Feltets værdi kommer fra en given liste.
statusstreng valgfrikrævesAngiver om argumentet kræves eller ej (Kun familie 2).
  valgfri  Argumentet kræves ikke.
  kræves  Argumentet kræves.
  underforstået  Argumentet er underforstået.
sourcestreng  valgfriAngiver kilden som bruges til at udfylde egenskabens indgang i mærkeeditorens dialog og i egenskabstræet
  selection  Den markerede tekst bruges som kilde
  dcop  Resultatet af DCOP-metoden bruges som kilde
interfacestreng  valgfriKræver source="dcop". DCOP-grænsefladen inde i Quanta Plus bruges til at hente kildedata.
methodstreng  valgfriKræver source="dcop" og et grænsefladenavn. DCOP-metodenavnet inde i Quanta Plus bruges til at hente kildedata.
argumentsstreng  valgfriKræver source="dcop", et grænsefladenavn og et metodenavn. Argumenterne sendes til metoden. Den kan være tom eller "%tagname%", hvilket betyder det nuværende mærkes navn.
tooltip

Definerer værktøjsvinket for et felt i dialogen. Dette element er kun tekst.

Bemærk

For nuværende understøttes kun almindelig tekst (du kan ikke bruge opmarkering).

OverliggendeUnderliggende
attrINGEN
whatsthis

Definerer 'Hvad er dette'-hjælp for et felt i dialogen. Elementet er kun tekst.

Bemærk

For nuværende understøttes kun almindelig tekst (du kan ikke bruge opmarkering).

OverliggendeUnderliggende
attrINGEN
list

Et omgivelsesmærke som grupperer punkterne i en liste sammen. Det kan kun findes én gang for hver beskrivelse af en egenskab. Dette er et typeelement kun med element.

OverliggendeUnderliggende
attritem
item

Definerer et objekt i en liste. Elementet er kun tekst.

OverliggendeUnderliggende
listINGEN
textlocation

Angiver positionen for et mærkes egenskabstekst inde i en dialog. Dette mærke kan kun findes én gang for hver egenskab i dialogen (dvs. en gang for hver <attr>-mærke). Dette element er tomt.

OverliggendeUnderliggende
attrINGEN
EgenskabTypeBrugBeskrivelse
rowpositivt heltalkrævesAngiver linjen i dialogens layout for et felt eller en etiket.
colpositivt heltalkrævesAngiver søjlen i dialogens layout for et felt eller en etiket.
rowspanpositivt heltalvalgfriAngiver antal linjer som et felt skal optage.
colspanpositivt heltalvalgfriAngiver antal søjler som et felt skal optage.
location

Angiver position og størrelse på et felt i dialogen. Dette mærke skal findes én gang for hvert felt i dialogen (dvs. én gang for hvert <attr>- og <label>-mærke). Dette element er tomt.

OverliggendeUnderliggende
label, attrINGEN
EgenskabTypeBrugBeskrivelse
rowpositivt heltalkrævesAngiver linjen i dialogens layout for et felt eller en etiket.
colpositivt heltalkrævesAngiver søjlen i dialogens layout for et felt eller en etiket.
rowspanpositivt heltalvalgfriAngiver antal linjer som et felt skal optage.
colspanpositivt heltalvalgfriAngiver antal søjler som et felt skal optage.
text

Definerer teksten for en etiket eller et afkrydsningsfelt. Dette element er kun tekst.

OverliggendeUnderliggende
label, attrINGEN
children

Definerer en liste med elementer som kan findes i mærket som angives. Dette er et typeelement kun med element.

OverliggendeUnderliggende
tagchild
child

Definerer et underliggende mærke. Dette element er tomt.

OverliggendeUnderliggende
childrenINGEN
EgenskabTypeVærdierBrugBeskrivelse
navnstreng krævesAngiver et mærke som kan findes indeni et vist mærke.
usagestreng valgfriAngiver forholdet til det overliggende objekt.
  kræves Det overliggende objekt skal have mindst et underliggende objekt med dette navn.
stoppingtags

Definerer en liste med elementer som tvinger et mærke til at slutte. Dette er et typeelement kun med element.

OverliggendeUnderliggende
tagstoppingtag
stoppingtag

Definerer et slutmærke. Dette element er tomt.

OverliggendeUnderliggende
stoppingtagsINGEN
EgenskabTypeBrugBeskrivelse
navnstrengkrævesAngiver hvilke mærker som tvinger et andet mærke til at slutte.

Brug af XML-mærker

Alle XML-mærkefiler skal begynde med XML™-deklarationen: <?xml version="1.0" encoding="UTF-8"?> og skal være hierarkisk indlejrede og afsluttede.

Vigtigt

Mellemrum påvirker ingenting negativt, men pas på med tegnene & og <. Disse skal formodentlig erstattes med henholdsvis &amp; og &lt; i elementer såsom <tooltip>, <whatsthis>, og <text>. Hvis dette ikke gøres forårsager det ikke noget sammenbrud, men du vil få dele af dit arbejde til at forsvinde hvis du ikke gør det.

Validering af XML-mærker

For at validere XML-mærkefiler, klik helt enkelt på dialogen “Værktøj” længst oppe i Quanta Plus og vælg “Validér XML-mærker”. En dialog vises, og du behøver kun at følge de enkle anvisninger.

Bemærk

Denne funktion findes ikke for øjeblikket. For øjeblikket sker valideringen når XML-mærkefilerne indlæses i Quanta Plus.

Eksempel på XML-mærker

Familie 1

Følgende viser dig en korrekt familie 1 XML-mærkefil. Filen beskriver tilfældigvis W3C® XML™ farvesammensætningselement <schema>. Filnavnet på denne XML-mærkefil ville være schema.tag. Enkelt, ikke sandt?

<?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>En entydig identifikation for elementet </tooltip> <whatsthis>En entydig identifikation for elementet </whatsthis> <location col="1" row="0"/> </attr> <label> <text>version</text> <location col="0" row="1"/> </label> <attr name="version" type="input"> <tooltip>Version for schema.</tooltip> <whatsthis>Version for schema.</whatsthis> <location col="1" row="1"/> </attr> <label> <text>targetNamespace</text> <location col="0" row="2"/> </label> <attr name="targetNamespace" type="input"> <tooltip>Internet-adressereference for navnerummet for dette schema.</tooltip> <whatsthis>Interneta-dressreference for navnerummet for dette schema.</whatsthis> <location col="1" row="2"/> </attr> <label> <text>xmlns</text> <location col="0" row="3"/> </label> <attr name="xmlns" type="input"> <tooltip>Internet-adressereference for et eller flere navnerum for anvendelse i dette schema. Hvis intet præfiks bruges, kan komponenterne i navnerummet anvendes uden kvalifikation </tooltip> <whatsthis>Internet-adressereference for et eller flere navnerum for anvendelse i dette schema. Hvis intet præfiks bruges, kan komponenterne i navnerummet anvendes uden kvalifikation </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>Standardformular for alle egenskaber i schema.</tooltip> <whatsthis>Standardformular for alle egenskaber i 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>Standardformular for alle elementer i schema.</tooltip> <whatsthis>Standardformular for alle elementer i 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>

Familie 2

Følgende viser dig en korrekt familie 2 XML-mærkefil. Filen beskriver tilfældigvis PHPs overbelastningsfunktion. Filnavnet på denne XML-mærkefil ville være 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>

Filen description.rc er også meget enkel, og en editor for den er tilgængelig med DTD->Redigér DTD-indstillinger. Det redigerer description.rc for en DTEP som du kan vælge i en liste. For at redigere description.rc for en nyoprettet DTEP, skal du oprette en enkel description.rc med følgende indgange:

[General] Version = Anvend 1 for Quanta Plus version <=3.1.2 og 2 for alle senere versioner. Name = DTD-definitionsstreng. (-//W3C®//DTD HTML 4.01 Transitional//EN) NickName = Det forskønade navnet på en DTD. (HTML 4.01 Transitional). Hvis ikke defineret bruges Name som NickName.

Når du har oprettet den og lagt den ved siden af mærkefilerne, indlæses din nyoprettete DTEP med DTD->Indlæs DTD-pakke (DTEP). Efter det er indlæst kan du fortsætte med at redigere indstillingerne i din DTEP. Tjek indgangenes værktøjsvink og Hvad er dette-tekster i redigeringsdialogen for at forstå betydningen af hver post. Som et alternativ kan du læse quanta/data/dtep/dtd-description.txt i det komprimerede kildekodearkiv, som indeholder en beskrivelse af formatet.