1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
|
<?xml version="1.0" encoding="UTF-8" ?>
<chapter id="extending-quanta-3-2">
<chapterinfo>
<title>Utöka &quantaplus;</title>
<authorgroup>
<author><firstname>Christopher</firstname> <surname>Hornbaker</surname> <affiliation> <address><email>[email protected]</email></address>
</affiliation>
</author>
<author><firstname>András</firstname> <surname>Mantia</surname> <affiliation> <address><email>[email protected]</email></address>
</affiliation>
</author>
<othercredit role="translator"><firstname>Stefan</firstname><surname>Asserhäll</surname><affiliation><address><email>[email protected]</email></address></affiliation><contrib>Översättare</contrib></othercredit>
</authorgroup>
</chapterinfo>
<title>Utöka &quantaplus;</title>
<para>Det här kapitlet beskriver hur &quantaplus; kan anpassas till just dina behov, och hur du kan hjälpa till att göra &quantaplus; bättre. </para>
<!--<sect1 id="kommander-3-2">
<title>Using Kommander With &quantaplus;</title>
<para>
Kommander, by Marc Britton.
</para>
</sect1> -->
<sect1 id="dtep-intro-3-2">
<title>Dokumenttyp-redigeringspaket (&DTEP;)</title>
<para>Dokumenttyp-redigeringspaket (&DTEP;) används i &quantaplus; för att lägga till stöd för taggar, skriptspråk och stilmallar. De tillåter &quantaplus; att tillhandahålla funktioner som automatisk komplettering och nodträd. Deras enkelhet och flexibilitet är vad som gör &quantaplus; en snabb, utvecklarvänlig integrerad uvecklingsmiljö för webbutvecklare. De gör &quantaplus; till en lättanvänd, produktiv miljö. </para>
<para>Det finns två varianter av &DTEP;, familj 1, som är taggar, och familj 2 som är skriptspråk och stilmallar. En &DTEP; består av två delar, taggkatalogen och verktygsraderna. Taggkataloger består av två filtyper, filerna &descriptionrc; och TagXML, som har ändelsen .tag. Verktygsrader är bekväma, ikonorienterade rader med knappar (ovanför redigeringsfönstret), som lägger till text i ett dokument snabbare än användaren kan skriva. </para>
<para>En &DTEP; kan skapas för hand (se nedan), <link linkend="download-resources">laddas ner</link> eller skapas automatiskt från en befintlig DTD. Se <xref linkend="converting-dtd"/> för information om konvertering. </para>
<para>Det här dokumentet beskriver hur filerna TagXML, &descriptionrc; och verktygsrader skapas. I korthet, en &DTEP;. </para>
<para>TagXML-filer (.tag) definerar både egenskaper specifika för en tagg, samt layout och innehåll i egenskapsdialogrutan som &quantaplus; visar för taggen. Filen &descriptionrc; tillhandahåller regler och information om en hel &DTEP;. Verktygsrader tillhandahåller ett snabbt sätt att lägga till taggar i ett dokument, utan att behöva bekymra sig om felstavningar eller liknande. </para>
<sect2 id="dtep-packaging-3-2">
<title>Paketering</title>
<para>Taggkataloger är just det, kataloger. De består bara av filerna &descriptionrc; och TagXML-filer. Taggkatalogerna bär taggspråkets namn och version, om det finns någon (till exempel html-4.01-strict). </para>
</sect2>
<sect2 id="tagxml-3-2">
<title>XML-taggar</title>
<para>Tabellen nedan listar elementen som definieras i XML-taggfiler, och anger om de krävs eller inte. Även om inte alla krävs, rekommenderas du att använda så många som du kan, så att andra användare får en bättre erfarenhet och mer information att arbeta med. </para>
<informaltable>
<tgroup cols="3">
<thead>
<row>
<entry>Element</entry>
<entry>Normal användning</entry>
<entry>Användningsområde</entry>
</row>
</thead>
<tbody>
<row>
<entry>TAGS</entry>
<entry>krävs</entry>
<entry>alltid</entry>
</row>
<row>
<entry>tag</entry>
<entry>krävs</entry>
<entry>alltid</entry>
</row>
<row>
<entry>label</entry>
<entry>valfri</entry>
<entry>krävs för att skapa en egenskapsdialogruta</entry>
</row>
<row>
<entry>attr</entry>
<entry>valfri</entry>
<entry>krävs för att definiera en egenskap</entry>
</row>
<row>
<entry>tooltip</entry>
<entry>valfri</entry>
<entry>krävs för att låta egenskapsdialogrutan visa ett verktygstips</entry>
</row>
<row>
<entry>whatsthis</entry>
<entry>valfri</entry>
<entry>krävs för att låta egenskapsdialogrutan visa <quote>Vad är det här</quote></entry>
</row>
<row>
<entry>list</entry>
<entry>valfri</entry>
<entry>krävs när en egenskap har typen <quote>list</quote></entry>
</row>
<row>
<entry>item</entry>
<entry>valfri</entry>
<entry>krävs när <list> används</entry>
</row>
<row>
<entry>textlocation</entry>
<entry>valfri</entry>
<entry>alltid</entry>
</row>
<row>
<entry>location</entry>
<entry>valfri</entry>
<entry>krävs när label används</entry>
</row>
<row>
<entry>text</entry>
<entry>valfri</entry>
<entry>krävs när label används</entry>
</row>
<row>
<entry>children</entry>
<entry>valfri</entry>
<entry>lista över taggar som kan finnas i taggen som definieras</entry>
</row>
<row>
<entry>child</entry>
<entry>krävs</entry>
<entry>en av posterna i children</entry>
</row>
<row>
<entry>stoppingtags</entry>
<entry>valfri</entry>
<entry>lista över taggar som talar om för en annan tag att den har nått slutet</entry>
</row>
<row>
<entry>stoppingtag</entry>
<entry>krävs</entry>
<entry>en av posterna i stoppingtags</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<sect3 id="dtep-element-descriptions-3-2">
<title>Elementbeskrivningar för XML-taggar</title>
<para>Följande avsnitt beskriver varje element i detalj. Alltfrån var de kan finnas, till vad som finns i dem presenteras på ett sätt som är enkelt att följa. </para>
<sect4 id="TAGS-3-2">
<title>TAGS</title>
<para>Det här är XML-taggdokumentets rotelement. Det får bara finnas en gång i ett dokument. Det kan innehålla definitionen av flera taggar. Det här är ett typelement med bara element. </para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry>
<entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry><emphasis>INGEN</emphasis></entry>
<entry>tag</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="tag-3-2">
<title>tag</title>
<para>Omgivning för taggen som definieras. Det här är ett typelement med bara element. </para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry>
<entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>TAGS</entry>
<entry>label, attr, stoppingtags</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<informaltable>
<tgroup cols="6">
<thead>
<row>
<entry>Egenskap</entry><entry>Typ</entry><entry>Värden</entry>
<entry>Standard</entry><entry>Användning</entry><entry>Beskrivning</entry>
</row>
</thead>
<tbody>
<row>
<entry>namn</entry><entry>sträng</entry><entry></entry><entry></entry>
<entry>krävs</entry><entry>Anger namnet på taggen som håller på att definieras.</entry>
</row>
<row>
<entry>single</entry><entry>Boolean</entry><entry></entry><entry></entry>
<entry>valfri</entry><entry>Anger om taggen kräver en avslutande tagg </(taggnamn)>.</entry>
</row>
<row>
<entry>type</entry><entry>sträng</entry><entry></entry><entry>xmltag</entry>
<entry>valfri</entry><entry>Anger typ för taggen som definieras.</entry>
</row>
<row>
<entry></entry><entry></entry><entry>xmltag</entry><entry></entry>
<entry></entry><entry>Typen för taggen är XML-baserad (bara familj 1).</entry>
</row>
<row>
<entry></entry><entry></entry><entry>entity</entry><entry></entry>
<entry></entry><entry>Taggen beskriver en post (bara familj 1).</entry>
</row>
<row>
<entry></entry><entry></entry><entry>egenskap</entry><entry></entry>
<entry></entry><entry>Typen för taggen är stilmallsrelaterad (bara familj 2).</entry>
</row>
<row>
<entry></entry><entry></entry><entry>funktion</entry><entry></entry>
<entry></entry><entry>Typen för taggen är en skriptfunktion. När det används blir <attr> funktionens argument (bara familj 2).</entry>
</row>
<row>
<entry></entry><entry></entry><entry>klass</entry><entry></entry>
<entry></entry><entry>Typen för taggen är en skriptklass (bara familj 2).</entry>
</row>
<row>
<entry></entry><entry></entry><entry>method</entry><entry></entry>
<entry></entry><entry>Typen för taggen är en klassmetod (bara familj 2).</entry>
</row>
<row>
<entry>returnType</entry><entry>sträng</entry><entry></entry><entry>void </entry>
<entry>valfri</entry><entry>Anger returtypen för taggen som definieras (bara familj 2).</entry>
</row>
<row>
<entry></entry><entry></entry><entry>void</entry><entry></entry>
<entry></entry><entry>Taggtypen returnerar ingenting.</entry>
</row>
<row>
<entry></entry><entry></entry><entry>int</entry><entry></entry>
<entry></entry><entry>Taggtypen returnerar ett heltal.</entry>
</row>
<row>
<entry></entry><entry></entry><entry>float</entry><entry></entry>
<entry></entry><entry>Taggtypen returnerar ett flyttal.</entry>
</row>
<row>
<entry></entry><entry></entry><entry>long</entry><entry></entry>
<entry></entry><entry>Taggtypen returnerar ett långt heltal.</entry>
</row>
<row>
<entry></entry><entry></entry><entry>sträng</entry><entry></entry>
<entry></entry><entry>Taggtypen returnerar en sträng.</entry>
</row>
<row>
<entry>version</entry><entry>sträng</entry><entry></entry><entry></entry>
<entry>valfri</entry><entry>Anger språkets version som taggen är giltig för</entry>
</row>
<row>
<entry>extends</entry><entry>sträng</entry><entry></entry><entry></entry>
<entry>valfri</entry><entry>Giltig bara om taggens typ är "class". Namnet på basklassen till den här klassen (bara familj 2).</entry>
</row>
<row>
<entry>klass</entry><entry>sträng</entry><entry></entry><entry></entry>
<entry>valfri</entry><entry>Giltig bara om typen är "method". Anger namnet på klassen som den här metoden hör till (bara familj 2).</entry>
</row>
<row>
<entry>common</entry><entry>Boolean</entry><entry></entry><entry></entry>
<entry>valfri</entry><entry>Om "yes", anger taggen en gemensam egenskapsgrupp, och egenskaperna inne i taggen kan kopplas till vilken annan tagg som helst (bara familj 1).</entry>
</row>
<row>
<entry>comment</entry><entry>sträng</entry><entry></entry><entry></entry>
<entry>valfri</entry><entry>kommentarsträngen visas intill taggnamnet i kompletteringsrutan</entry>
</row></tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="label-3-2">
<title>label</title>
<para>Placera en rubrik i dialogrutan. Texten anges av taggen <text>. Det här är ett typelement med bara element. </para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry>
<entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>tag</entry>
<entry>text, location</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="attr-3-2">
<title>attr</title>
<para>Definierar en egenskap för taggen. Elementet upprepas en gång för varje egenskap. Det definierar egenskapens namn och typ. Det innehåller också ytterligare taggar som anger hur egenskapen ska visas, etc. Det här är ett typelement med bara element. </para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry>
<entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>tag</entry>
<entry>location, list, tooltip, whatsthis, textlocation</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<informaltable>
<tgroup cols="6">
<thead>
<row>
<entry>Egenskap</entry><entry>Typ</entry><entry>Värden</entry>
<entry>Standard</entry><entry>Användning</entry><entry>Beskrivning</entry>
</row>
</thead>
<tbody>
<row>
<entry>namn</entry><entry>sträng</entry><entry></entry><entry></entry>
<entry>krävs</entry><entry>Anger namnet på egenskapen som håller på att definieras.</entry>
</row>
<row>
<entry>type</entry><entry>sträng</entry><entry></entry><entry>input</entry>
<entry>krävs</entry><entry>Anger typen för egenskapen som håller på att definieras.</entry>
</row>
<row>
<entry></entry><entry></entry><entry>input</entry><entry></entry>
<entry></entry><entry>Fältet stöder fri textinmatning (textfält).</entry>
</row>
<row>
<entry></entry><entry></entry><entry>check</entry><entry></entry>
<entry></entry><entry>Fältets värde är booleskt (kryssruta).</entry>
</row>
<row>
<entry></entry><entry></entry><entry>färg</entry><entry></entry>
<entry></entry><entry>Fältets värde är en färg.</entry>
</row>
<row>
<entry></entry><entry></entry><entry>webbadress</entry><entry></entry>
<entry></entry><entry>Fältets värde är en webbadress (lokal fil att hänvisa till).</entry>
</row>
<row>
<entry></entry><entry></entry><entry>list</entry><entry></entry>
<entry></entry><entry>Fältets värde kommer från en angiven lista.</entry>
</row>
<row>
<entry>status</entry><entry>sträng</entry><entry></entry><entry>valfri</entry>
<entry>krävs</entry><entry>Anger om argumentet krävs eller inte (bara familj 2).</entry>
</row>
<row>
<entry></entry><entry></entry><entry>valfri</entry><entry></entry>
<entry></entry><entry>Argumentet krävs inte.</entry>
</row>
<row>
<entry></entry><entry></entry><entry>krävs</entry><entry></entry>
<entry></entry><entry>Argumentet krävs.</entry>
</row>
<row>
<entry></entry><entry></entry><entry>underförstått</entry><entry></entry>
<entry></entry><entry>Argumentet är underförstått.</entry>
</row>
<row>
<entry>source</entry><entry>sträng</entry><entry></entry><entry></entry>
<entry>valfri</entry><entry>Anger källan som används för att fylla i egenskapens post i taggeditorns dialogruta och i egenskapsträdet</entry>
</row>
<row>
<entry></entry><entry></entry><entry>markering</entry><entry></entry>
<entry></entry><entry>Den markerade texten används som källa</entry>
</row>
<row>
<entry></entry><entry></entry><entry>dcop</entry><entry></entry>
<entry></entry><entry>Resultatet av DCOP-metoden används som källa</entry>
</row>
<row>
<entry>interface</entry><entry>sträng</entry><entry></entry><entry></entry>
<entry>valfri</entry><entry>Kräver source="dcop". DCOP-gränssnittet inne i &quantaplus; används för att hämta källdata.</entry>
</row>
<row>
<entry>method</entry><entry>sträng</entry><entry></entry><entry></entry>
<entry>valfri</entry><entry>Kräver source="dcop" och ett gränssnittsnamn. DCOP-metodnamnet inne i &quantaplus; används för att hämta källdata.</entry>
</row>
<row>
<entry>argument</entry><entry>sträng</entry><entry></entry><entry></entry>
<entry>valfri</entry><entry>Kräver source="dcop", ett gränssnittsnamn och ett metodnamn. Argumenten skickas till metoden. Den kan vara tom eller "%tagname%", vilket betyder den nuvarande taggens namn.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="tooltip-3-2">
<title>tooltip</title>
<para>Definierar verktygstipset för ett fält i dialogrutan. Elementet är bara text. </para>
<note>
<para>För närvarande stöds bara vanlig text (du kan inte använda några taggar). </para>
</note>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry>
<entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>attr</entry>
<entry><emphasis>INGEN</emphasis></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="whatsthis-3-2">
<title>whatsthis</title>
<para>Definierar 'Vad är det här'-hjälp för ett fält i dialogrutan. Elementet är bara text. </para>
<note>
<para>För närvarande stöds bara vanlig text (du kan inte använda några taggar). </para>
</note>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry>
<entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>attr</entry>
<entry><emphasis>INGEN</emphasis></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="list-3-2">
<title>list</title>
<para>En omgivande tagg som grupperar objekt i en lista tillsammans. Den kan bara finnas en gång för varje beskrivning av en egenskap. Det här är ett typelement med bara element. </para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry>
<entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>attr</entry>
<entry>item</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="item-3-2">
<title>item</title>
<para>Definierar ett objekt i en lista. Elementet är bara text. </para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry>
<entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>list</entry>
<entry><emphasis>INGEN</emphasis></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="textlocation-3-2">
<title>textlocation</title>
<para>Anger position för en taggs egenskapstext inne i en dialogruta. Taggen kan bara finnas en gång för varje egenskap i dialogrutan (dvs en gång för varje tagg <attr>). Det här elementet är tomt. </para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry>
<entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>attr</entry>
<entry><emphasis>INGEN</emphasis></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<informaltable>
<tgroup cols="4">
<thead>
<row>
<entry>Egenskap</entry><entry>Typ</entry>
<entry>Användning</entry><entry>Beskrivning</entry>
</row>
</thead>
<tbody>
<row>
<entry>row</entry><entry>positivt heltal</entry>
<entry>krävs</entry><entry>Anger raden i dialogrutans layout för ett fält eller en rubrik.</entry>
</row>
<row>
<entry>col</entry><entry>positivt heltal</entry>
<entry>krävs</entry><entry>Anger kolumnen i dialogrutans layout för ett fält eller en rubrik.</entry>
</row>
<row>
<entry>rowspan</entry><entry>positivt heltal</entry>
<entry>valfri</entry><entry>Anger antal rader som ett fält ska uppta.</entry>
</row>
<row>
<entry>colspan</entry><entry>positivt heltal</entry>
<entry>valfri</entry><entry>Anger antal kolumner som ett fält ska uppta.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="location-3-2">
<title>location</title>
<para>Anger position och storlek på ett fält i dialogrutan. Taggen ska finnas en gång för varje fält i dialogrutan (dvs en gång för varje tagg <attr> och <label>). Det här elementet är tomt. </para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry><entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>label, attr</entry><entry><emphasis>INGEN</emphasis></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<informaltable>
<tgroup cols="4">
<thead>
<row>
<entry>Egenskap</entry><entry>Typ</entry>
<entry>Användning</entry><entry>Beskrivning</entry>
</row>
</thead>
<tbody>
<row>
<entry>row</entry><entry>positivt heltal</entry>
<entry>krävs</entry><entry>Anger raden i dialogrutans layout för ett fält eller en rubrik.</entry>
</row>
<row>
<entry>col</entry><entry>positivt heltal</entry>
<entry>krävs</entry><entry>Anger kolumnen i dialogrutans layout för ett fält eller en rubrik.</entry>
</row>
<row>
<entry>rowspan</entry><entry>positivt heltal</entry>
<entry>valfri</entry><entry>Anger antal rader som ett fält ska uppta.</entry>
</row>
<row>
<entry>colspan</entry><entry>positivt heltal</entry>
<entry>valfri</entry><entry>Anger antal kolumner som ett fält ska uppta.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="text-3-2">
<title>text</title>
<para>Definierar texten för en rubrik eller kryssruta. Elementet är bara text. </para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry><entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>label, attr</entry><entry><emphasis>INGEN</emphasis></entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="children-3-2">
<title>children</title>
<para>Definierar en lista med element som kan finnas i taggen som anges. Det här är ett typelement med bara element. </para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry><entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>tag</entry><entry>child</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="child-3-2">
<title>child</title>
<para>Definierar en underliggande tagg. Det här elementet är tomt. </para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry><entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>children</entry><entry><emphasis>INGEN</emphasis></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<informaltable>
<tgroup cols="4">
<thead>
<row>
<entry>Egenskap</entry><entry>Typ</entry><entry>Värden</entry>
<entry>Användning</entry><entry>Beskrivning</entry>
</row>
</thead>
<tbody>
<row>
<entry>namn</entry><entry>sträng</entry><entry></entry>
<entry>krävs</entry><entry>Anger en tagg som kan finnas i en viss tagg.</entry>
</row>
<row>
<entry>usage</entry><entry>sträng</entry><entry></entry>
<entry>valfri</entry><entry>Anger förhållandet till överliggande objekt.</entry>
</row>
<row>
<entry></entry><entry></entry><entry>krävs</entry>
<entry></entry><entry>Det överliggande objektet måste ha minst ett underliggande objekt med det här namnet.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="stoppingtags-3-2">
<title>stoppingtags</title>
<para>Definierar en lista med element som tvingar en tagg att sluta. Det här är ett typelement med bara element. </para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry><entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>tag</entry><entry>stoppingtag</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
<sect4 id="stoppingtag-3-2">
<title>stoppingtag</title>
<para>Definierar en sluttagg. Det här elementet är tomt. </para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Överliggande</entry><entry>Underliggande</entry>
</row>
</thead>
<tbody>
<row>
<entry>stoppingtags</entry><entry><emphasis>INGEN</emphasis></entry>
</row>
</tbody>
</tgroup>
</informaltable>
<informaltable>
<tgroup cols="4">
<thead>
<row>
<entry>Egenskap</entry><entry>Typ</entry>
<entry>Användning</entry><entry>Beskrivning</entry>
</row>
</thead>
<tbody>
<row>
<entry>namn</entry><entry>sträng</entry>
<entry>krävs</entry><entry>Anger vilka taggar som tvingar en annan tagg att sluta.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</sect4>
</sect3>
<sect3 id="tagxml-usage-3-2">
<title>Användning av XML-taggar</title>
<para>Alla XML-taggfiler måste börja med &XML;-deklarationen: <?xml version="1.0" encoding="UTF-8"?> och måste vara hierarkiskt korrekta och avslutade. </para>
<important>
<para>Mellanslag påverkar ingenting negativt, men se upp med tecknen & och <. Dessa ska troligen ersättas med &amp; och &lt; i element som <tooltip>, <whatsthis>, och <text>. Att inte göra det orsakar ingen krasch, men du får delar av ditt arbete att försvinna om du inte gör det. </para>
</important>
</sect3>
<sect3 id="tagxml-validation-3-2">
<title>Validering av XML-taggar</title>
<para>För att validera XML-taggfiler, klicka helt enkelt på dialogrutan <quote>Verktyg</quote> längst upp i &quantaplus; och välj <quote>Validera XML-taggar</quote>. En dialogruta visas, och du behöver bara följa de enkla anvisningarna. </para>
<note>
<para>Den här funktionen finns inte för närvarande. För tillfället sker validering när XML-taggfilerna laddas i &quantaplus;. </para>
</note>
</sect3>
<sect3 id="tagxml-examples-3-2">
<title>Exempel på XML-taggar</title>
<sect4 id="family-one-3-2">
<title>Familj 1</title>
<para>Följande visar dig en korrekt familj 1 XML-taggfil. Filen råkar beskriva &W3C; &XML; Schemas element <schema>. Filnamnet på den här XML-taggfilen skulle vara schema.tag. Enkelt, inte sant? </para>
<informalexample>
<literallayout><markup>
<?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 unik identifikation för elementet </tooltip>
<whatsthis>En unik identifikation för 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 för schema.</tooltip>
<whatsthis>Version för schema.</whatsthis>
<location col="1" row="1"/>
</attr>
<label>
<text>targetNamespace</text>
<location col="0" row="2"/>
</label>
<attr name="targetNamespace" type="input">
<tooltip>Webbadressreferens till namnrymden för detta schema.</tooltip>
<whatsthis>Webbadressreferens till namnrymden för detta schema.</whatsthis>
<location col="1" row="2"/>
</attr>
<label>
<text>xmlns</text>
<location col="0" row="3"/>
</label>
<attr name="xmlns" type="input">
<tooltip>Webbadressreferens för en eller flera namnrymder för användning i detta schema.
Om inget prefix används, kan komponenterna i namnrymden användas utan kvalifikation </tooltip>
<whatsthis>Webbadressreferens för en eller flera namnrymder för användning i detta schema.
Om inget prefix används, kan komponenterna i namnrymden användas utan 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>Standardformulär för alla egenskaper i schema.</tooltip>
<whatsthis>Standardformulär för alla egenskaper 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>Standardformulär för alla element i schema.</tooltip>
<whatsthis>Standardformulär för alla element 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>
</markup>
</literallayout>
</informalexample>
</sect4>
<sect4 id="family-two-3-2">
<title>Familj 2</title>
<para>Följande visar dig en korrekt familj 2 XML-taggfil. Filen råkar beskriva &PHP;:s överlastningsfunktion. Filnamnet på den här XML-taggfilen skulle vara overload.tag. </para>
<informalexample>
<literallayout><markup>
<?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>
</markup>
</literallayout>
</informalexample>
</sect4>
</sect3>
</sect2>
<sect2 id="descriptionrc-3-2">
<title>&descriptionrc;</title>
<para>Filen &descriptionrc; är också mycket enkel, och en editor för den är tillgänglig med <menuchoice><guimenu>DTD</guimenu> <guimenuitem>Redigera DTD-inställningar</guimenuitem></menuchoice>. Det redigerar &descriptionrc; för en &DTEP; som du kan välja i en lista. För att redigera &descriptionrc; för en nyskapad &DTEP;, måste du skapa en enkel &descriptionrc; med följande poster: </para>
<para>
<informalexample>
<literallayout><markup>
[General]
Version = Använd 1 för &quantaplus; version <=3.1.2 och 2 för alla senare versioner.
Name = DTD-definitionssträng. (-//&W3C;//DTD HTML 4.01 Transitional//EN)
NickName = Det förskönade namnet på en DTD. (HTML 4.01 Transitional). Om inte definierat används Name
som NickName.
</markup>
</literallayout>
</informalexample>
</para>
<para>När du väl har skapat den och lagt vid sidan om taggfilerna, ladda din nyskapade &DTEP; med <menuchoice><guimenu>DTD</guimenu> <guimenuitem>Ladda DTD-paket (DTEP)</guimenuitem></menuchoice>. Efter det har laddats kan du fortsätta med att redigera inställningarna i din &DTEP;. Kontrollera posternas verktygstips och Vad är det här-texter i redigeringsdialogrutan för att förstå betydelsen hos varje post. Som ett alternativ kan du läsa <filename>quanta/data/dtep/dtd-description.txt</filename> i det komprimerade källkodsarkivet, som innehåller en beskrivning av formatet. </para>
</sect2>
</sect1>
<sect1 id="user-actions">
<title>Användardefinierade åtgärder</title>
<para>Åtgärder är mycket vanliga i alla program. Du behöver dem ofta när du använder vilket program som helst. Genom att klicka på en ikon i en verktygsrad, välja ett menyalternativ eller använda en snabbtangent utförs oftast en åtgärd. I &quantaplus; har åtgärder tagits till nästa nivå. Istället för hårdkodade åtgärder (som skapas av programmeraren på programmets källkodsnivå) är det möjligt för en vanlig användare att skapa och ändra åtgärder och på så sätt lägga till nya funktioner i &quantaplus;. De är användardefinierade åtgärder, och många av de vanliga åtgärderna i &quantaplus; är också användardefinierade (och ändringsbara) åtgärder. </para>
<para>Det finns tre typer av användardefinierade åtgärder: <itemizedlist>
<listitem><para><link linkend="text-actions">Textåtgärder</link></para></listitem>
<listitem><para><link linkend="tag-actions">Taggåtgärder</link></para></listitem>
<listitem><para><link linkend="script-actions">Skriptåtgärder</link></para></listitem>
</itemizedlist>
</para>
<sect2 id="creating-actions">
<title>Skapa åtgärder</title>
<para>Du kan skapa en åtgärd genom att gå till <menuchoice><guimenu>Inställningar</guimenu> <guimenuitem>Anpassa åtgärder</guimenuitem></menuchoice>. Klicka på <guibutton>Ny åtgärd</guibutton> så möts du av en liknande dialogruta: <mediaobject> <imageobject>
<imagedata fileref="dtep_doc_img7.png" format="PNG"/>
</imageobject>
</mediaobject>
<variablelist>
<varlistentry>
<term><guilabel>Typ</guilabel></term>
<listitem><para>Anger åtgärdens typ (<link linkend="text-actions">Text</link>, <link linkend="tag-actions">Tagg</link>, <link linkend="script-actions">Skript</link>).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Text</guilabel></term>
<listitem><para>Åtgärdens namn som syns för användaren.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Knappen intill etiketten <guilabel>Text</guilabel></term>
<listitem><para>Ikonen som tilldelas till åtgärden. Klicka på den för att ändra aktuell ikon.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Verktygstips</guilabel></term>
<listitem><para>Kort beskrivning av vad åtgärden gör.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Genväg</guilabel></term>
<listitem><para>Snabbtangenten som tilldelas till åtgärden. Klicka på <guilabel>Egen</guilabel> eller knappen intill <guilabel>Egen</guilabel> för att tilldela en genväg. Klicka på <guilabel>Ingen</guilabel> för att ta bort den för närvarande tilldelade genvägen.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Omgivande verktygsrader</guilabel></term>
<listitem><para>De användardefinierade verktygsraderna där åtgärden visas. Se <xref linkend="creating-toolbars-3-2"/>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Detaljerade inställningar</guilabel></term>
<listitem><para>Specifika inställningar för de olika åtgärdstyperna. Se nedan. </para></listitem>
</varlistentry>
</variablelist>
</para>
</sect2>
<sect2 id="text-actions">
<title>Textåtgärder</title>
<para>
<mediaobject><imageobject>
<imagedata fileref="text-action.png" format="PNG"/>
</imageobject></mediaobject> De enklaste åtgärderna. Du kan skriva in någon text i området <guilabel>Detaljerade inställningar</guilabel>, och så fort åtgärden utförs så infogas texten i dokumentet vid aktuell markörposition. Se exemplet nedan. </para>
</sect2>
<sect2 id="tag-actions">
<title>Taggåtgärder</title>
<para>Användbar för att infoga XML-taggar, men du kan förstås också använda dem för andra syften. <mediaobject><imageobject><imagedata fileref="tag-actions.png" format="PNG"/> </imageobject></mediaobject> <variablelist> <varlistentry> <term><guilabel><tagg></guilabel></term> <listitem><para>Namnet på taggen.</para></listitem> </varlistentry> <varlistentry> <term><guilabel></tagg></guilabel></term> <listitem><para>Om markerad, kommer den här texten infogas som avslutande tagg när åtgärden utförs. Om det finns ett markerat område i dokumentet innan du utför åtgärden, infogas <tagg> innan det markerade området, och </tagg> efter.</para></listitem> </varlistentry> <varlistentry> <term><guilabel>Kär dialogen för "Redigera tagg" om den finns</guilabel></term> <listitem><para>Om markerad, och det finns en tagXML-fil för taggen, visas en dialogruta för taggredigering innan taggen infogas i dokumentet, så att du kan finjustera taggens egenskaper.</para></listitem> </varlistentry> </variablelist> Taggarna <tagg> och </tagg> infogas som du skriver dem här. Tecknen <, > eller / läggs inte automatiskt till. </para>
</sect2>
<sect2 id="script-actions">
<title>Skriptåtgärder</title>
<para>
<mediaobject><imageobject>
<imagedata fileref="script-action.png" format="PNG"/>
</imageobject></mediaobject> Den mest kraftfulla åtgärdstypen. Med hjälp av den här åtgärden kan du köra externa program (oftast skript, men inte begränsat till skript), som kan ändra dokumentet eller använda dokumentet (eller en del av dokumentet) som indata. Exempel från &quantaplus; själv är dialogrutan <guibutton>Snabbstart</guibutton>, de olika åtgärderna <guilabel>Visa med...</guilabel> för varje (X)HTML DTEP. </para>
<para>Först måste du skriva in namnet på skriptet samt tolken. Till exempel: <command>sh /home/namn/mitt_skript.sh</command>. </para>
<para>Även om du kan använda fullständiga sökvägar, är det rekommenderade sättet att använda variabeln <command>%scriptdir</command> på kommandoraden, som <command>sh %scriptdir/mitt_skript.sh</command>. På så sätt försöker &quantaplus; hitta ditt skript på följande ställen: <itemizedlist> <listitem><para>den globala skriptkatalogen: <filename><envar>$TDEDIR</envar>/share/apps/quanta/scripts</filename></para> </listitem> <listitem><para>den lokala skriptkatalogen: <filename><envar>$TDEHOME</envar>/share/apps/quanta/scripts</filename></para></listitem> <listitem><para>din sökväg: <envar>$PATH</envar></para></listitem> </itemizedlist>. Det finns andra specialvariabler som kan användas på kommandoraden: <itemizedlist>
<listitem><para><command>%f</command>: Ersätts med webbadressen till det aktuella dokumentet. För lokala dokument tas file:/ bort från dokumentnamnet.</para></listitem>
<listitem><para><command>%input</command>: Ersätts med markerad inmatning. Se nedan.</para></listitem>
<listitem><para><command>%projectbase</command>: Ersätts med webbadressen till aktuellt projekt. Det är tomt om inget projekt är laddat.</para></listitem>
<listitem><para><command>%pid</command>: Ersätts med process-id för &quantaplus;-processen som kör. Om &quantaplus; kör i ensamt läge, inleds process-id numret med texten "unique". Användbart när du använder DCOP för att styra &quantaplus; från ett externt skript.</para></listitem>
<listitem><para><command>%userarguments</command>: Användbart i fallet med händelser. Posten ersätts av händelsens egenskaper i följande ordning: <variablelist>
<varlistentry>
<term>Första argument</term>
<listitem><para>Skriptets unika identifikation</para></listitem>
</varlistentry>
<varlistentry>
<term>Andra argumentet</term>
<listitem><para>händelsenamnet</para></listitem>
</varlistentry>
<varlistentry>
<term>Tredje argumentet</term>
<listitem><para>händelsens parameter, oftast det nuvarande dokumentets filnamn eller sökvägen till projektfilen.</para></listitem>
</varlistentry>
</variablelist>
</para></listitem>
</itemizedlist>
</para>
<para>Förutom ovanstående sätt kan skriptet ta emot indata från &quantaplus; via standardinmatningen. I kombinationsrutan <guilabel>Inmatning</guilabel> kan du välja vart standardinmatningen skickas. Alternativen är: <itemizedlist>
<listitem><para><guilabel>Ingen</guilabel>: Ingenting skickas till skriptet.</para></listitem>
<listitem><para><guilabel>Aktuellt dokument</guilabel>: Hela dokumentet skickas till skriptet.</para></listitem>
<listitem><para><guilabel>Markerad text</guilabel>: Det markerade området i dokumentet skickas till skriptet. Att använda variabeln <guilabel>%input</guilabel> är oftast bara vettigt när den här inställningen används.</para></listitem>
</itemizedlist>
</para>
<para>På ett liknande sätt som för <guilabel>Inmatning</guilabel> kan du fånga utmatningen från programmet som körs. Det finns två sorters utmatning: <itemizedlist><listitem><para>normal utmatning, som skrivs ut på standardutmatningen,</para> </listitem> <listitem><para>felmeddelanden, som skrivs ut på standardfelutmatningen.</para> </listitem> </itemizedlist> Du kan ange vad som ska hända med text som skrivs till standardutmatningen. Det kan göras genom att ändra på värdet i kombinationsrutan <guilabel>Utmatning</guilabel>: <itemizedlist>
<listitem><para><guilabel>Ingen</guilabel>: Utmatningen från programmet ignoreras.</para></listitem>
<listitem><para><guilabel>Infoga på markörens plats</guilabel>: Utmatningen infogas i aktuellt dokument vid markörens position.</para></listitem>
<listitem><para><guilabel>Ersätt markering</guilabel>: Det markerade området i dokumentet ersätts med utmatningen.</para></listitem>
<listitem><para><guilabel>Ersätt markering</guilabel>: Det markerade området i dokumentet ersätts med utmatningen.</para></listitem>
<listitem><para><guilabel>Skapa ett nytt dokument</guilabel>: Ett nytt dokument skapas som innehåller utmatningen från skriptet.</para></listitem>
<listitem><para><guilabel>Ersätt aktuellt dokument</guilabel>: Hela dokumentet ersätts med utmatningen.</para></listitem>
<listitem><para><guilabel>Meddelandefönster</guilabel>: Utmatningen visas i verktygsvyn <guilabel>Meddelanden</guilabel>.</para></listitem>
</itemizedlist>
</para>
<para>Alternativen för standardfelutmatningen (<guilabel>Fel</guilabel>) är samma som för normal utmatning.</para>
</sect2>
</sect1>
<sect1 id="creating-toolbars-3-2">
<title>Skapa verktygsrader</title>
<para>Det följande visar dig hur man skapar verktygsrader för en &DTEP;. Verktygsrader är grafiska element, som tilldelas åtgärder. I &quantaplus; är åtgärder grunden för nästan alla utökningar som &quantaplus; har, och kommer att få i framtiden. &quantaplus; erbjuder också automatisk komplettering och taggdialogrutor. Gränserna för vad du kan göra med åtgärder är nästan obegränsade. Som exempel, använder vi <ulink url="http://tidy.sf.net">&HTML; Tidy</ulink> på våra webbsidor. </para>
<sect2 id="from-scratch-to-complete-3-2">
<title>Från början till färdig verktygsrad</title>
<para>Till att börja med, måste du skapa en användarverktygsrad. Välj <menuchoice><guimenu>Verktygsrader</guimenu> <guimenuitem>Lägg till användarverktygsrad.</guimenuitem></menuchoice>. </para>
<para>Om det finns många taggar i språket, rekommenderas du att dela upp taggarna i logiska grupper. Du måste skapa en ny användarverktygsrad för varje grupp. I det här fallet finns det inte många, så vi skapar en verktygsrad och namnger den efter taggspråket. </para>
<para>Så snart alla verktygsrader har skapats, måste du lägga till och anpassa åtgärderna. För att göra det, välj <menuchoice><guimenu>Inställningar</guimenu> <guimenuitem>Anpassa åtgärder</guimenuitem></menuchoice>. </para>
<para>Delarna i fönstret är ganska rättframma. Tryck på knappen <guibutton>Ny åtgärd</guibutton> längst ner i fönstret för att komma till redigeringsläge. </para>
<para>Fyll i alla nödvändiga fält, och lägg till taggen i lämpliga verktygsrader. </para>
<para>Komplettera resten, och om taggarna har egenskaper som du alltid tänker använda, markera rutan <guilabel>Kör dialogen för "Redigera tagg" om den finns</guilabel>, så att du blir tillfrågad varje gång åtgärden används. </para>
<para>Du bör nu ha något som liknar följande: </para>
<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img7.png" format="PNG"/>
</imageobject>
</mediaobject>
<para>Tryck på knappen <guibutton>Verkställ</guibutton>, så ser du att åtgärden har lagts till i verktygsraderna du har markerat. </para>
<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img8.png" format="PNG"/>
</imageobject>
</mediaobject>
<para>Usch, då! Vilken hemsk ikon. Hur ska du själv och andra komma ihåg att den ikonen hör ihop med åtgärden. Låt oss ersätta den innan det uppstår problem. </para>
<para>För att skapa en ikon som bättre beskriver åtgärden, använder vi &tdeiconedit;. Välj det i K-menyn, <menuchoice><guisubmenu>Grafik</guisubmenu> <guisubmenu>Fler program</guisubmenu></menuchoice> (eller var din distribution än har placerat det). </para>
<para>&tdeiconedit; har standardstorleken 32 x 32 bildpunkter, men vi behöver 22 x 22. För att ändra det, välj <menuchoice><guimenu>Redigera</guimenu> <guimenuitem>Ändra storlek</guimenuitem></menuchoice>. </para>
<para>Kom ihåg att du skapar en ikon som inte bara ska hjälpa dig själv att komma ihåg vilken åtgärd som gör vad, utan också andra användare av denna &DTEP;. </para>
<para>Eftersom taggen vi skapar ikonen till, kallas <quote>start</quote>, bestämmer vi oss för att skapa ett <quote>start-tecken</quote>. Genom att använda grön färg (grönt tolkas ofta som <quote>kör</quote>, <quote>starta</quote> eller <quote>fortsätt</quote>) förmedlar vi, eller borde vi åtminstone förmedla, användaren informationen att genom ett klick på åtgärden placeras taggen <start> i det aktuella dokumentet. </para>
<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img15.png" format="PNG"/>
</imageobject>
</mediaobject>
<para>Nu när ikonen är färdigskapad, sparar vi den. </para>
<para>När vi är klara med att skapa ikoner, måste ikonen associeras med åtgärden. För att göra det, öppna fönstret <menuchoice><guimenu>Inställningar</guimenu> <guimenuitem>Anpassa åtgärder</guimenuitem></menuchoice> igen (i &quantaplus;) och välj åtgärden som ikonen skapades för. Intill fältet <guilabel>Text</guilabel>, finns en knapp. Klicka på den. </para>
<para>Välj <guilabel>Övriga ikoner</guilabel> och klicka sedan på knappen <guibutton>Bläddra...</guibutton>. </para>
<para>Gå till katalogen där du sparade ikonen, välj den och klicka på <guibutton>Ok</guibutton>. </para>
<para>Tryck på knappen <guibutton>Verkställ</guibutton>, och fortsätt antingen att göra samma sak med övriga taggar, eller klicka på <guibutton>Ok</guibutton> för att avsluta. </para>
<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img18.png" format="PNG"/>
</imageobject>
</mediaobject>
<para>Antag att vi vill lägga till några vanliga &quantaplus; funktioner i verktygsraden, eller kanske skulle verktygsraden vara bättre om den organiserades på ett annat sätt, med några avskiljare för att gruppera åtgärderna. Öppna dialogrutan <guilabel>Anpassa verktygsrader</guilabel> genom att välja <menuchoice><guimenu>Inställningar</guimenu> <guimenuitem>Anpassa verktygsrader</guimenuitem></menuchoice>. Försäkra dig om att vår verktygsrad är vald. </para>
<para>Vi väljer avskiljaren (längst upp i vänsterkolumnen) för verktygsraden. När man väl har valt objektet som ska läggas till i verktygsraden, trycker man på högerpilen. Då läggs den till i verktygsraden. </para>
<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img21.png" format="PNG"/>
</imageobject>
</mediaobject>
<para>Vi vill ha ett snabbt sätt att komma åt <guilabel>Visa med Konqueror</guilabel>. Välj den och lägg till i verktygsraden. </para>
<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img22.png" format="PNG"/>
</imageobject>
</mediaobject>
<para>Observera hur avskiljaren hjälper med gruppering. Någon som inte sett vår verktygsrad tidigare, skulle kunna tro att knappen &konqueror; liknade eller var motsatsen till start-knappen. </para>
<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img23.png" format="PNG"/>
</imageobject>
</mediaobject>
<para>Verkställ dina ändringar, och tryck på <guibutton>Ok</guibutton> när du är klar för att avsluta. </para>
<para>Titta på den fantastiska nya verktygsraden! Mycket bekvämare nu. </para>
<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img24.png" format="PNG"/>
</imageobject>
</mediaobject>
<para>Kom ihåg att prova verktygsraden, genom att klicka på knapparna, så att du vet att utmatningen är riktig. </para>
<mediaobject>
<imageobject>
<imagedata fileref="dtep_doc_img25.png" format="PNG"/>
</imageobject>
</mediaobject>
<para>För att nu spara verktygsraden, väljer vi <menuchoice><guimenu>Verktygsrader</guimenu> <guisubmenu>Spara verktygsrader</guisubmenu> <guimenuitem>Spara som lokal verktygsrad</guimenuitem></menuchoice>. </para>
<para>Spara den i rätt katalog. Eftersom NeXML inte finns, lägger vi den bara i toppnivåkatalogen, men verktygsrader ska sparas i rätt katalog. Försäkra dig om att du justerar &descriptionrc; så att verktygsraderna laddas när en ny fil av typen skapas. </para>
</sect2>
</sect1>
<sect1 id="creating-quanta-docs-3-2">
<sect1info>
<title>Skapa din egen dokumentation</title>
<authorgroup>
<author><firstname>Robert</firstname> <surname>Nickel</surname> <affiliation> <address><email>[email protected]</email></address>
</affiliation>
</author>
<othercredit role="translator"><firstname>Stefan</firstname><surname>Asserhäll</surname><affiliation><address><email>[email protected]</email></address></affiliation><contrib>Översättare</contrib></othercredit>
</authorgroup>
</sect1info>
<title>Skapa din egen dokumentation</title>
<para>Troligen är de mest anmärkningsvärda tilläggen till &quantaplus; för den vanliga användaren, tillägg av dokumentation för de tagg- eller skriptspråk som är mest omtyckta. Med detta syfte, förklarar det här kapitlet hur jag skapar &PHP;-dokumentationsträdet för min egen användning. </para>
<para>Innan du börjar skapa din egen dokumentation, vill du kanske titta på <ulink url="http://quanta.sf.net/main1.php?contfile=resource">&quantaplus;s arkiv</ulink> för att se om någon redan har gjort den här uppsättningen. </para>
<para>Det finns två delar i processen. Först måste du skaffa befintlig dokumentation för taggspråket, skriptspråket eller något annat språk som du är ute efter. Därefter måste du skapa <filename>docrc</filename>-filen. Det första får du klara själv, det andra är vad vi täcker här. </para>
<para>Den allmänna formen för docrc-filen är följande: </para>
<informalexample>
<literallayout>#KDE konfigurationsfil
[Tree]
Doc dir=<replaceable>sökväg, relativt denna filen, till dokumentationens HTML-filer</replaceable> t.ex. php42/
#toppnivåelement
Top Element=<replaceable>Din beskrivning av de här dokumenten</replaceable> t.ex. <acronym>PHP</acronym> 4.2 dokumentation
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
</literallayout>
</informalexample>
<para>Filen <filename>docrc</filename> är uppdelad i två avdelningar: Tree (träd) och Context (Sammanhang). </para>
<para>Avdelningen Tree definierar presentationsaspekter för dokumentet under dokumentationsfliken. Du ser till exempel att i &PHP;-dokumentationen, har du något som liknar det här: </para>
<mediaobject>
<imageobject>
<imagedata fileref="doc-view1.png" format="PNG"/>
</imageobject>
</mediaobject>
<para>Med referens till ovanstående, ser min &PHP; <filename>docrc</filename> ut så här: </para>
<informalexample>
<literallayout>#KDE konfigurationsfil
[Tree]
Doc dir=php42/
#toppnivåelement
Top Element=PHP 4.2 dokumentation
PHP 4.2 dokumentation=Innehållsförteckning,#Komma igång,#Språkreferens
Innehållsförteckning=index.html
Komma igång=Inledning, ...
Inledning=introduction.html
...
Språkreferens=Grundläggande syntax, ...
Grundläggande syntax=language.basic-syntax.html
...
</literallayout>
</informalexample>
<para>Observera <literal>#</literal> framför <quote>Komma igång</quote> och <quote>Språkreferens</quote>. Det anger att de är delinnehåll i trädet och har eget innehåll. Jag tror inte det finns en angiven gräns för djupet här (utom det som dikteras av sunt förnuft) - använd din egen bedömning. </para>
<para>För innehållsförteckningen, ser du att den direkt refererar till en fil (och som en konsekvens, visas den längst ner i trädvyn, kataloger kommer först). </para>
<important>
<para>Mellanslag påverkar ingenting negativt, men se upp med tecknen & och <. Dessa ska troligen ersättas med &amp; och &lt; i alla &quantaplus; &XML;-baserade resursfiler. </para>
</important>
<para>Sammanhangsavsnittet är avsnittet i docrc-filen som används för att möjliggöra sammanhangsberoende hjälp. Om du till exempel skriver ett &PHP;-skript och vill se dokumentationen för funktionen <function>mysql_fetch_array</function>, markerar du helt enkelt funktionen och trycker sedan <keycombo action="simul">&Ctrl;<keycap>H</keycap></keycombo> för sammanhangsberoende hjälp. Dokumentationen om <function>mysql_fetch_array</function> visas omedelbart. Det finns bara två typer av poster här: sammanhangslistan och filassociationsraderna. </para>
<variablelist>
<varlistentry>
<term>Sammanhangslista</term>
<listitem>
<para>Mycket enkel. Det här är bara en lista av sammanhangsposter åtskilda med kommatecken, som du vill ha tillgängliga (för &PHP; är det funktionerna i &PHP;). </para>
</listitem>
</varlistentry>
<varlistentry>
<term>Filassociationsrader</term>
<listitem>
<para>De är på formen sammanhangspost = HTML-dokumentsida. T.ex. acos=function.acos.html. </para>
</listitem>
</varlistentry>
</variablelist>
<para>En rensad version av mitt <filename>docrc</filename> sammanhangsavsnitt ser ut som följer: </para>
<informalexample>
<literallayout>#Nyckelord för sammanhangsberoende hjälp
[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
...
</literallayout>
</informalexample>
<para>Nu kan du bara spara din <filename>docrc</filename>-fil. Spara den i <filename class="directory">$<envar>HOME</envar>/.trinity/share/apps/quanta/doc</filename> eller <filename class="directory">$<envar>TDEDIR</envar>/share/apps/quanta/doc</filename> för lokal eller global användning. Skapa sedan en katalog (den som anges i <filename>docrc</filename>-filen) i samma katalog som <filename>docrc</filename>-filen finns, och kopiera &HTML;-sidorna dit. </para>
<para>Du måste starta om &quantaplus;, och då ser du dina egna dokument. </para>
<para>När du väl är säker på att de är bra, och värda att dela, skicka <filename>docrc</filename>-filen tillsammans med en beskrivning av passande information om vilka dokument du använde till <ulink url="http://quanta.sf.net/main1.php?contfile=resource">&quantaplus;s arkiv</ulink> för användning av &quantaplus;s gemenskap. Du blir inte rik, men du känner dig nöjd med vetskap om att du bidragit till den bästa webbutvecklingsmiljön som finns. </para>
</sect1>
<sect1 id="sharing-resources">
<title>Dela resurser</title>
<para>Du är inte ensam med &quantaplus;. Det är möjligt att dela olika resurser (DTEP-paket, verktygsrader med åtgärder, skript, mallar) med andra. Det finns två sätt att göra det: </para>
<variablelist>
<varlistentry>
<term>Skicka med e-post</term>
<listitem><para>Resurser kan skickas med e-post till vänner, kollegor eller till vem du vill. Du ser menyalternativet <guilabel>Skicka med e-post</guilabel> på olika ställen, som <menuchoice><guimenu>DTD</guimenu> <guimenuitem>Skicka DTD-paket (DTEP) med e-post</guimenuitem></menuchoice>, <menuchoice><guimenu>Verktygsrader</guimenu> <guimenuitem>Skicka verktygsrad med e-post</guimenuitem></menuchoice>, och i den sammanhangsberoende menyn för filer och kataloger i träden <guilabel>Mallar</guilabel> och <guilabel>Skript</guilabel>. </para></listitem>
</varlistentry>
<varlistentry>
<term>Ladda upp till huvudservern</term>
<listitem><para>Resurser kan laddas upp till vårt huvudarkiv, där alla andra användare av &quantaplus; kan ladda ner dem. Bidragen granskas och görs bara tillgängliga om vår grupp anser dem riktiga och användbara. För att skapa ett giltigt bidrag, föreslår vi att du signerar resursen. Därför behöver du en GPG/PGP-nyckel. Informationen används för att verifiera resursens ursprung, både av vår grupp och av de som laddar ner den.</para>
<para>Om hur resurser hämtas från huvudservern, se <xref linkend="download-resources"/>.</para>
<para>När du laddar upp blir du tillfrågad om att ange lösenordsfrasen för din hemliga GPG-nyckel (lösenordsfrasen lagras inte), och i fallet med flera hemliga nycklar, kommer du att kunna välja den du vill använda. Fyll i indatafälten i dialogrutan <guilabel>Dela heta nyheter</guilabel> (<guilabel>Webbadress för förhandsgranskning</guilabel> kan få förbli tom) och starta uppladdningen genom att klicka på <guilabel>Ok</guilabel>.</para>
<para>Uppladdningen kan startas från <menuchoice><guimenu>DTD</guimenu> <guimenuitem>Ladda upp DTD-paket (DTEP)</guimenuitem></menuchoice>, <menuchoice><guimenu>Verktygsrader</guimenu> <guimenuitem>Ladda upp verktygsrad</guimenuitem></menuchoice>, och i den sammanhangsberoende menyn för filer och kataloger i träden <guilabel>Mallar</guilabel> och <guilabel>Skript</guilabel>. </para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 id="download-resources">
<title>Hämta resurser</title>
<para>Det är möjligt att uppgradera &quantaplus; utan att skaffa en ny version, genom att hämta nya resurser som DTEP-paket, verktygsrader med åtgärder, mallar, skript och dokumentation. En möjlighet är att du fick resurser med e-post, eller har laddad ner dem från en webbserver. Då måste du oftast installera dem för hand. Om du har tur får du också ett installationsskript när du laddar ner resursen. Men &quantaplus; har en dedicerad server som lagrar resurser som antingen inte finns med i huvuddistributionen på grund av deras storlek eller att de sällan används, eller var senare bidrag av användare. Dessa resurser installeras automatiskt. Ladda ner sådana resurser i de olika menyalternativen <guilabel>Ladda ner</guilabel>. Du hittar dem under <menuchoice><guimenu>DTD</guimenu> <guimenuitem>Ladda ner DTD-paket (DTEP)</guimenuitem></menuchoice>, <menuchoice><guimenu>Verktygsrader</guimenu> <guimenuitem>Ladda ner verktygsrad</guimenuitem></menuchoice>, och i den sammanhangsberoende menyn i ett tomt område eller topnivåobjekt i träden <guilabel>Mallar</guilabel>, <guilabel>Skript</guilabel> och <guilabel>Dokumentation</guilabel>. </para>
<para>Efter en resurs har laddats ner, men innan den installeras, verifierar &quantaplus; om resursen är giltig genom att kontrollera integriteten och signaturen. I händelse av problem varnas du, och kan bestämma om du vill fortsätta eller inte. Läs varningsdialogrutorna noggrant. Om integriteten är riktig och resursen är rätt signerad, visas ändå en informationsdialogruta så att du kan se vem som skapade resursen. </para>
<para>
<caution><para>Försäkra dig om att du bara installerar resurser från pålitliga källor, särskilt verktygsrader och skript!</para></caution>
</para>
</sect1>
<sect1 id="converting-dtd">
<title>Konvertera en DTD till en &DTEP;</title>
<para>Det är möjligt att arbeta med XML-språk som för närvarande inte stöds av &quantaplus; genom att skapa ett DTEP-paket. Men det kan ta tid att skapa den, eftersom du kan behöva skriva hundratals taggfiler med <link linkend="tagxml-3-2">tagXML</link>-format. Det finns förstås ett trevligare sätt att göra det på, genom att automatiskt konvertera en DTD till ett DTEP-paket. </para>
<para>Konverteringen kan startas från menyn <menuchoice><guimenu>DTD</guimenu> <guimenuitem>Ladda och konvertera DTD</guimenuitem></menuchoice>. Välj <filename>.dtd</filename>-filen som definierar den DTD du vill använda, och därefter visas följande dialogruta: <mediaobject> <imageobject>
<imagedata fileref="dtd-conversion.png" format="PNG"/>
</imageobject>
</mediaobject>
</para>
<para>Posterna är:</para>
<itemizedlist>
<listitem><para><guilabel>Målkatalognamn:</guilabel> Den nyskapade &DTEP; kommer att få detta namn i katalogen <filename>$<envar>TDEHOME</envar>/share/apps/quanta/dtep</filename>. </para>
</listitem>
<listitem><para><guilabel>Namn:</guilabel> Namnet (definitionssträngen) på DTD:n</para></listitem>
<listitem><para><guilabel>Smeknamn:</guilabel> Namnet på en &DTEP; synligt för användaren</para></listitem>
<listitem><para><guilabel>!DOCTYPE-definitionsrad:</guilabel> Strängen som ska finnas i taggen !DOCTYPE, som HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"</para></listitem>
<listitem><para><guilabel>DTD-webbadress</guilabel>: Webbadressen som pekar på DTD-filen</para></listitem>
<listitem><para><guilabel>Standardändelse:</guilabel> Filändelsen som oftast används för filer som skrevs med denna DTD</para></listitem>
<listitem><para><guilabel>Skiftlägeskänsliga taggar och egenskaper</guilabel>: Självförklarande. Oftast sant för XML-språksvarianter</para></listitem>
<listitem><para><guilabel>Finjustera DTEP efter konvertering</guilabel>: Om markerad, öppnar &quantaplus; editorn för &descriptionrc; när konverteringen är klar, så att du kan finjustera din nyskapade &DTEP;. Det rekommenderas att alternativet lämnas markerat.</para></listitem>
</itemizedlist>
</sect1>
</chapter>
|