/usr/share/help/el/gtk-doc-manual/index.docbook is in gtk-doc-tools 1.27-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 | <?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xml" href="params.xsl"?>
<!-- vim: set ai tw=80 ts=3 sw=3: -->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "
http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY FDL SYSTEM "fdl-appendix.xml">
<!ENTITY FDLlink "<link linkend='fdl'>included</link>">
]>
<!-- =============Document Header ============================= -->
<book id="index" lang="el">
<bookinfo>
<title>Εγχειρίδιο GTK-Doc</title>
<edition>1.24.1</edition>
<abstract role="description"><para>Εγχειρίδιο χρήστη για προγραμματιστές με οδηγίες για τη χρήση του GTK-Doc.</para></abstract>
<authorgroup>
<author><firstname>Chris</firstname> <surname>Lyttle</surname> <affiliation> <address> <email>chris@wilddev.net</email> </address> </affiliation></author>
<author><firstname>Dan</firstname> <surname>Mueth</surname> <affiliation> <address> <email>d-mueth@uchicago.edu</email> </address> </affiliation></author>
<author><firstname>Stefan</firstname> <surname>Sauer (Kost)</surname> <affiliation> <address> <email>ensonic@users.sf.net</email> </address> </affiliation></author>
</authorgroup>
<publisher role="maintainer"><publishername>Έργο GTK-Doc</publishername> <address><email>gtk-doc-list@gnome.org</email></address></publisher>
<copyright><year>2000, 2005</year> <holder>Dan Mueth και Chris Lyttle</holder></copyright>
<copyright><year>2007-2015</year> <holder>Stefan Sauer (Kost)</holder></copyright>
<!-- translators: uncomment this:
<copyright>
<year>2000</year>
<holder>ME-THE-TRANSLATOR (Latin translation)</holder>
</copyright>
-->
<legalnotice>
<para>Χορηγείται άδεια αντιγραφής, διανομής και/ή τροποποίησης του παρόντος εγγράφου υπό τους όρους της έκδοσης 1.1 της <citetitle>Ελεύθερης Άδειας Τεκμηρίωσης GNU (GFDL)</citetitle>, ή οποιασδήποτε μεταγενέστερης έκδοσής αυτής από το Ίδρυμα Ελεύθερου Λογισμικού (FSF), χωρίς αμετάβλητα τμήματα, κείμενα εξωφύλλου και κείμενα οπισθοφύλλου. Συμπεριλαμβάνεται <link linkend="fdl">αντίγραφο της άδειας</link>.</para>
<para>Πολλές από τις ονομασίες που χρησιμοποιούνται από εταιρείες για την διαφοροποίηση των προϊόντων και υπηρεσιών τους έχουν καταχωρισθεί ως εμπορικά σήματα. Σε όποιο σημείο της τεκμηρίωσης GNOME τυχόν εμφανίζονται αυτές οι ονομασίες, και εφόσον τα μέλη του Έργου τεκμηρίωσης GNOME έχουν λάβει γνώση αυτών των εμπορικών σημάτων, οι ονομασίες ή τα αρχικά αυτών θα γράφονται με κεφαλαίους χαρακτήρες.</para>
</legalnotice>
<revhistory>
<revision>
<revnumber>1.27</revnumber>
<date>07 Dec 2017</date>
<authorinitials>ss</authorinitials>
<revremark>fine tuning of the python port</revremark>
</revision>
<revision>
<revnumber>1.26</revnumber>
<date>11 Aug 2017</date>
<authorinitials>ss</authorinitials>
<revremark>port all tools from perl/bash to python</revremark>
</revision>
<revision><revnumber>1.25</revnumber> <date>21 Μαρτίου 2016</date> <authorinitials>ss</authorinitials> <revremark>διορθώσεις σφαλμάτων, εκαθάρριση δοκιμαστικού κώδικα</revremark></revision>
<revision><revnumber>1.24</revnumber> <date>29 Μαΐου 2015</date> <authorinitials>ss</authorinitials> <revremark>διόρθωση σφαλμάτων</revremark></revision>
<revision><revnumber>1.23</revnumber> <date>17 Μαΐου 2015</date> <authorinitials>ss</authorinitials> <revremark>διόρθωση σφαλμάτων</revremark></revision>
<revision><revnumber>1.22</revnumber> <date>07 Μαΐου 2015</date> <authorinitials>ss</authorinitials> <revremark>διορθώσεις σφαλμάτων, απόρριψη παρωχημένων λειτουργιών</revremark></revision>
<revision><revnumber>1.21</revnumber> <date>17 Ιουλ 2013</date> <authorinitials>ss</authorinitials> <revremark>διορθώσεις σφαλμάτων, απόρριψη παρωχημένων λειτουργιών</revremark></revision>
<revision><revnumber>1.20</revnumber> <date>16 Φεβ 2014</date> <authorinitials>ss</authorinitials> <revremark>διορθώσεις σφαλμάτων, υποστήριξη markdown, και βελτιώσεις στυλ</revremark></revision>
<revision><revnumber>1.19</revnumber> <date>05 Ιουν 2013</date> <authorinitials>ss</authorinitials> <revremark>διόρθωση σφαλμάτων</revremark></revision>
<revision><revnumber>1.18</revnumber> <date>14 Σεπτ 2011</date> <authorinitials>ss</authorinitials> <revremark>διορθώσεις σφαλμάτων, επιταχύνσεις, υποστήριξη markdown</revremark></revision>
<revision><revnumber>1.17</revnumber> <date>26 Φεβ 2011</date> <authorinitials>sk</authorinitials> <revremark>επείγουσα διόρθωση σφάλματος</revremark></revision>
<revision><revnumber>1.16</revnumber> <date>14 Ιαν 2011</date> <authorinitials>sk</authorinitials> <revremark>διορθώσεις σφαλμάτων και βελτιώσεις διάταξης</revremark></revision>
<revision><revnumber>1.15</revnumber> <date>21 Μαίου 2010</date> <authorinitials>sk</authorinitials> <revremark>διορθώσεις σφαλμάτων και αναδρομής</revremark></revision>
<revision><revnumber>1.14</revnumber> <date>28 Μαρτίου 2010</date> <authorinitials>sk</authorinitials> <revremark>διορθώσεις σφαλμάτων και βελτιώσεις επίδοσης</revremark></revision>
<revision><revnumber>1.13</revnumber> <date>18 Δεκεμβρίου 2009</date> <authorinitials>sk</authorinitials> <revremark>ανανέωση κατεστραμμένου συμπιεσμένου αρχείου</revremark></revision>
<revision><revnumber>1.12</revnumber> <date>18 Δεκεμβρίου 2009</date> <authorinitials>sk</authorinitials> <revremark>νέα χαρακτηριστικά εργαλείων και διορθώσεις σφαλμάτων</revremark></revision>
<revision><revnumber>1.11</revnumber> <date>16 Νοεμβρίου 2008</date> <authorinitials>mal</authorinitials> <revremark>Μετάβαση σε GNOME doc-utils</revremark></revision>
</revhistory>
<othercredit class="translator">
<personname>
<firstname>Ελληνική μεταφραστική ομάδα GNOME</firstname>
</personname>
<email>team@gnome.gr</email>
</othercredit>
<copyright>
<year>2009-2016</year>
<holder>Ελληνική μεταφραστική ομάδα GNOME</holder>
</copyright>
<othercredit class="translator">
<personname>
<firstname>Τζένη Πετούμενου</firstname>
</personname>
<email>epetoumenou@gmail.com</email>
</othercredit>
<copyright>
<year>2009</year>
<holder>Τζένη Πετούμενου</holder>
</copyright>
<othercredit class="translator">
<personname>
<firstname>Θάνος Τρυφωνίδης</firstname>
</personname>
<email>tomtryf@gnome.org</email>
</othercredit>
<copyright>
<year>2012</year>
<year>2015</year>
<year>2016</year>
<holder>Θάνος Τρυφωνίδης</holder>
</copyright>
<othercredit class="translator">
<personname>
<firstname>Δημήτρης Σπίγγος</firstname>
</personname>
<email>dmtrs32@gmail.com</email>
</othercredit>
<copyright>
<year>2013-2015</year>
<holder>Δημήτρης Σπίγγος</holder>
</copyright>
<othercredit class="translator">
<personname>
<firstname>Μαρία Θουκυδίδου</firstname>
</personname>
<email>marablack3@gmail.com</email>
</othercredit>
<copyright>
<year>2014</year>
<holder>Μαρία Θουκυδίδου</holder>
</copyright>
<othercredit class="translator">
<personname>
<firstname>Μαρία Μαυρίδου</firstname>
</personname>
<email>mavridou@gmail.com</email>
</othercredit>
<copyright>
<year>2014</year>
<holder>Μαρία Μαυρίδου</holder>
</copyright>
</bookinfo>
<!-- ======== Chapter 1: Introduction ======================== -->
<chapter id="introduction">
<title>Εισαγωγή</title>
<para>Αυτό το κεφάλαιο αποτελεί μια εισαγωγή στο GTK-Doc. Περιγράφει το GTK-Doc και τον τρόπο χρήσης του.</para>
<sect1 id="whatisgtkdoc">
<title>Τι είναι το GTK-Doc;</title>
<para>Το GTK-Doc χρησιμοποιείται για την τεκμηρίωση κώδικα C. Συνήθως, χρησιμοποιείται για την τεκμηρίωση του δημόσιου API βιβλιοθηκών όπως η GTK+ και η GNOME. Μπορεί όμως να χρησιμοποιηθεί και για την τεκμηρίωση κώδικα εφαρμογών.</para>
</sect1>
<sect1 id="howdoesgtkdocwork">
<title>Πώς λειτουργεί το GTK-Doc;</title>
<para>Το GTK-Doc χρησιμοποιεί την τεκμηρίωση συναρτήσεων που έχει συμπεριληφθεί στα πηγαία αρχεία (εντός μπλοκ σχολίων με ειδική μορφή), ή την τεκμηρίωση που έχει προστεθεί στα πρότυπα αρχεία που χρησιμοποιεί το GTK-Doc (σημειώστε όμως ότι το GTK-Doc παράγει τεκμηρίωση μόνο για τις συναρτήσεις που δηλώνονται σε αρχεία κεφαλίδας· δεν παράγει τεκμηρίωση για στατικές συναρτήσεις).</para>
<para>
GTK-Doc consists of a number of python scripts, each performing a different step
in the process.
</para>
<para>Η διαδικασία περιλαμβάνει 5 κύρια στάδια:</para>
<orderedlist>
<listitem>
<para><guilabel>Συγγραφή της τεκμηρίωσης</guilabel> Ο συγγραφέας συμπληρώνει τα πηγαία αρχεία με τεκμηρίωση για όλες τις συναρτήσεις, μακροεντολές, ενώσεις κτλ. (Στο παρελθόν, οι πληροφορίες συμπληρώνονταν σε πρότυπα αρχεία που παράγονταν αυτόματα, αλλά αυτός ο τρόπος δεν συνιστάται πλέον.)</para>
</listitem>
<listitem>
<para><guilabel>Συλλέγοντας πληροφορίες για τον κώδικα.</guilabel> Το <application>gtkdoc-scan</application> σαρώνει τα αρχεία κεφαλίδων του κώδικα ψάχνοντας για δηλώσεις συναρτήσεων, μακροεντολές, enums, δομές και ενώσεις. Δημιουργεί το αρχείο <filename><module>-decl-list.txt</filename> που περιέχει μια λίστα με τις δηλώσεις, και τις τοποθετεί σε ενότητες αναλόγως με το αρχείο κεφαλίδας στο οποίο βρίσκονται. Από την πρώτη εκτέλεση του προγράμματος το αρχείο αντιγράφεται στο <filename><module>-sections.txt</filename>. Ο συγγραφέας μπορεί να τακτοποιεί τις ενότητες και τη σειρά των δηλώσεων, για να παραγάγει το επιθυμητό τελικό αποτέλεσμα. Το δεύτερο αρχείο δημιουργεί το <filename><module>-decl.txt</filename>. Το αρχείο αυτό περιέχει τις πλήρεις δηλώσεις που βρέθηκαν από τον σαρωτή.Αν για κάποιο λόγο θέλετε μερικά σύμβολα να εμφανίζονται στην τεκμηρίωση, όπου η πλήρης δήλωση δεν μπορεί να βρεθεί από τον σαρωτή, ή πρέπει να εμφανίζεται διαφορετικά, μπορεί κάποιος να τοποθετήσει οντότητες παρόμοιες με αυτές <filename><module>-decl.txt</filename> στο αρχείο <filename><module>-overrides.txt</filename>.</para>
<para>Το <application>gtkdoc-scanobj</application> μπορεί επίσης να χρησιμοποιηθεί για να κάνει δυναμική αναζήτηση σε μια βιβλιοθήκη για ενδεχόμενες υποκλάσεις GObject. Αποθηκεύει τις πληροφορίες για τη θέση κάθε αντικειμένου στην ιεραρχία κλάσεων καθώς και για τις ιδιότητες και σήματα GObject που περιέχει.</para>
<para>Το <application>gtkdoc-scanobj</application> δεν πρέπει να χρησιμοποιείται πλέον. Χρειαζόταν στο παρελθόν όταν το GObject ήταν ακόμα GtkObject μέσα στη gtk+.</para>
</listitem>
<listitem>
<para><guilabel>Δημιουργία του XML και του HTML/PDF</guilabel>. Το <application>gtkdoc-mkdb</application> μετατρέπει τα αρχεία προτύπων σε αρχεία XML στον υποκατάλογο <filename class="directory">xml/</filename>. Αν ο πηγαίος κώδικας περιέχει τεκμηρίωση συναρτήσεων, χρησιμοποιώντας τις ειδικές ομάδες σχολίων, συγχωνεύεται εδώ. Αν δεν υπάρχουν χρησιμοποιούμενα αρχεία tmpl, διαβάζει μόνο έγγραφα από τα δεδομένα πηγών και αυτοελέγχου.</para>
<para>Το <application>gtkdoc-mkhtml</application> μετατρέπει τα αρχεία XML σε αρχεία HTML στον υποκατάλογο <filename class="directory">html/</filename>. Ομοίως, το <application>gtkdoc-mkpdf</application> μετατρέπει τα αρχεία XML σε ένα έγγραφο PDF που ονομάζεται <filename><package>.pdf</filename>.</para>
<para>Τα αρχεία στους καταλόγους <filename class="directory">xml/</filename> και <filename class="directory">html/</filename> αντικαθίστανται πάντα. Επομένως, δεν πρέπει να τα επεξεργάζεστε απευθείας.</para>
</listitem>
<listitem>
<para><guilabel>Διόρθωση διασταυρούμενων παραπομπών μεταξύ εγγράφων</guilabel> Μετά την εγκατάσταση των αρχείων HTML, μπορείτε να εκτελέσετε το <application>gtkdoc-fixxref</application> για να διορθώσετε τυχόν διασταυρούμενες παραπομπές σε διαφορετικά έγγραφα. Για παράδειγμα, η τεκμηρίωση του GTK+ περιέχει πολλές παραπομπές σε τύπους που επεξηγούνται στο εγχειρίδιο του GLib. Όταν ετοιμάζετε πακέτα κώδικα για διανομή, μπορείτε να χρησιμοποιείτε το <application>gtkdoc-rebase</application> για να μετατρέπετε όλους τους εξωτερικούς συνδέσμους σε διαδικτυακούς συνδέσμους. Κατά την εγκατάσταση της τεκμηρίωσης που περιλαμβάνεται στον διανεμηθέντα κώδικα (παράγεται αυτόματα), η ίδια εφαρμογή θα προσπαθήσει να μετατρέψει ξανά τους συνδέσμους σε τοπικούς συνδέσμους (προς τις τοποθεσίες όπου είναι εγκατεστημένη η τεκμηρίωση).</para>
</listitem>
</orderedlist>
</sect1>
<sect1 id="gettinggtkdoc">
<title>Λήψη GTK-Doc</title>
<sect2 id="requirements">
<title>Απαιτήσεις</title>
<para>
<guilabel>python 2/3</guilabel> - the main scripts are written in python.
</para>
<para><guilabel>xsltproc</guilabel> - το πρόγραμμα xslt processor από τη βιβλιοθήκη libxslt <ulink url="http://xmlsoft.org/XSLT/" type="http">xmlsoft.org/XSLT/</ulink></para>
<para><guilabel>docbook-xsl</guilabel> - τα φύλλα στυλ docbook xsl <ulink url="http://sourceforge.net/projects/docbook/files/docbook-xsl/" type="http">sourceforge.net/projects/docbook/files/docbook-xsl</ulink></para>
<para>Ένα από τα <guilabel>source-highlight</guilabel>, <guilabel>highlight</guilabel> ή <guilabel>vim</guilabel> - προαιρετικά - που χρησιμοποιούνται για την επισήμανση της σύνταξης στα παραδείγματα</para>
</sect2>
</sect1>
<sect1 id="aboutgtkdoc">
<title>Περί GTK-Doc</title>
<para>(ΠΡΟΣ ΔΙΟΡΘΩΣΗ)</para>
<para>(Ιστορικό, συγγραφείς, ιστοσελίδες, λίστα αλληλογραφίας, άδεια, μελλοντικά σχέδια, σύγκριση με άλλα παρόμοια συστήματα.)</para>
</sect1>
<sect1 id="aboutthismanual">
<title>Περί του εγχειριδίου</title>
<para>(ΠΡΟΣ ΔΙΟΡΘΩΣΗ)</para>
<para>(σε ποιους απευθύνεται, πού θα το βρείτε, άδεια)</para>
</sect1>
</chapter>
<chapter id="settingup">
<title>Δημιουργώντας το δικό σας έργο</title>
<para>Οι επόμενες ενότητες περιγράφουν τα βήματα που απαιτούνται για να ενσωματώσετε το GTK-Doc στο έργο σας. Αυτές οι ενότητες προϋποθέτουν ότι εργάζεσθε σε ένα έργο που λέγεται 'meep'. Το έργο περιέχει τη βιβλιοθήκη 'libmeep' και την εφαρμογή 'meeper' για τον τελικό χρήστη. Θεωρούμε επίσης, ότι θα χρησιμοποιείτε το autoconf και το automake. Επιπλέον, η ενότητα <link linkend="plain_makefiles">αρχεία makefiles ή άλλα συστήματα ανάπτυξης</link> θα περιγράψει τα βασικά στοιχεία που απαιτούνται για να εργαστείτε σε μια διαφορετική δόμηση ρυθμίσεων.</para>
<sect1 id="settingup_docfiles">
<title>Δημιουργία του σκελετού τεκμηρίωσης</title>
<para>Εντός του ριζικού καταλόγου του έργου δημιουργήστε το φάκελο docs/reference (ώστε να μπορείτε να χρησιμοποιήσετε το όνομα docs/help για την τεκμηρίωση του τελικού χρήστη). Συνιστάται να δημιουργήσετε έναν ακόμη υποκατάλογο με το όνομα του πακέτου τεκμηρίωσης. Αυτό δε χρειάζεται για πακέτα που περιλαμβάνουν μόνο μία βιβλιοθήκη.</para>
<para>Αυτό θα φαίνεται, λοιπόν, όπως εμφανίζεται παρακάτω: <example><title>Παράδειγμα δομής καταλόγου</title>
<programlisting>
meep/
docs/
reference/
libmeep/
meeper/
src/
libmeep/
meeper/
</programlisting>
</example></para>
</sect1>
<sect1 id="settingup_autoconf">
<title>Ενσωμάτωση στο autoconf</title>
<para>Πολύ εύκολα! Απλά προσθέτετε μία γραμμή στη δέσμη ενεργειών <filename>configure.ac</filename>.</para>
<para>
<example><title>Ενσωμάτωση στο autoconf</title>
<programlisting>
# έλεγχος για gtk-doc
GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
</programlisting>
</example>
</para>
<para>Αυτό απαιτεί από όλους τους προγραμματιστές να έχουν εγκατεστημένο το gtk-doc. Αν είναι εντάξει για το έργο σας να έχετε μια επιπλέον δόμηση ρυθμίσεων για το api-doc, μπορείτε να το επιλύσετε όπως αναφέρεται παρακάτω. Αφήστε το ως έχει, όσο το gtkdocize αναζητά την αρχή της σειράς για το <function>GTK_DOC_CHECK</function>. <example><title>Προαιρετικά διατηρήστε το gtk-doc</title>
<programlisting>
# έλεγχος για gtk-doc
m4_ifdef([GTK_DOC_CHECK], [
GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
],[
AM_CONDITIONAL([ENABLE_GTK_DOC], false)
])
</programlisting>
</example></para>
<para>Το πρώτο όρισμα χρησιμοποιείται για έλεγχο του gtkdocversion κατά τη ρύθμιση. Το δεύτερο, προαιρετικό όρισμα χρησιμοποιείται από το <application>gtkdocize</application>. Η μακροεντολή <symbol>GTK_DOC_CHECK</symbol> επίσης προσθέτει αρκετούς διακόπτες ρύθμισης:</para>
<orderedlist>
<listitem><para>--with-html-dir= PATH : διαδρομή προς την εγκατεστημένη τεκμηρίωση</para></listitem>
<listitem><para>--enable-gtk-doc : χρήση gtk-doc για τη δόμηση τεκμηρίωσης [προεπιλογή=no]</para></listitem>
<listitem><para>--enable-gtk-doc-html : δόμηση τεκμηρίωσης σε μορφή html [προεπιλογή=yes]</para></listitem>
<listitem><para>--enable-gtk-doc-pdf : δόμηση τεκμηρίωσης σε μορφή pdf [προεπιλογή=no]</para></listitem>
</orderedlist>
<important>
<para>Το GTK-Doc είναι απενεργοποιημένο από προεπιλογή! Να θυμάστε να χρησιμοποιείτε την επιλογή <option>'--enable-gtk-doc'</option> στην επόμενη εκτέλεση του <filename>configure</filename>. Διαφορετικά, εγκαθίσταται η προπαραχθείσα τεκμηρίωση (δυνατότητα χρήσιμη για τον χρήστη, αλλά όχι για τον προγραμματιστή).</para>
</important>
<para>
Furthermore it is recommended that you have the following line inside
your <filename>configure.ac</filename> script.
This allows <application>gtkdocize</application> to automatically copy the
macro definition for <function>GTK_DOC_CHECK</function> to your project.
</para>
<para>
<example><title>Προετοιμασία για το gtkdocize</title>
<programlisting>
AC_CONFIG_MACRO_DIR(m4)
</programlisting>
</example>
</para>
<para>Όταν όλες οι αλλαγές στο <filename>configure.ac</filename> έχουν γίνει, ενημερώστε το αρχείο <filename>configure</filename>. Αυτό μπορείτε να το κάνετε επανεκετελώντας το <code>autoreconf -i</code> ή το <code>autogen.sh</code>.</para>
</sect1>
<sect1 id="settingup_automake">
<title>Ενσωμάτωση στο automake</title>
<para>Πρώτα αντιγράψτε το <filename>Makefile.am</filename> από τον υποκατάλογο με τα <filename class="directory">παραδείγματα</filename> των <ulink url="https://git.gnome.org/browse/gtk-doc/tree/examples/Makefile.am">gtkdoc-sources</ulink> στον κατάλογο της τεκμηρίωσης API του έργου σας ( <filename class="directory">./docs/reference/<package></filename>). Ένα τοπικό αντίγραφο θα πρέπει να είναι διαθέσιμο π.χ. στο <filename>/usr/share/doc/gtk-doc-tools/examples/Makefile.am</filename>. Αν έχετε πολλά doc-packages επαναλάβετε αυτό το βήμα για το καθένα απο αυτά.</para>
<para>Το επόμενο βήμα είναι να τροποποιήσετε τις ρυθμίσεις στο <filename>Makefile.am</filename>. Πριν από κάθε ρύθμιση υπάρχει ένα σχόλιο που εξηγεί τη χρησιμότητά της. Οι περισσότερες είναι σημαίες που στέλνονται στα αντίστοιχα εργαλεία. Κάθε εργαλείο διαθέτει μια μεταβλητή της μορφής <option><TOOLNAME>_OPTIONS</option>. Όλα τα εργαλεία υποστηρίζουν την επιλογή <option>--help</option> για την παραγωγή λίστας με τις υποστηριζόμενες παραμέτρους.</para>
<!-- FIXME: explain options ? -->
</sect1>
<sect1 id="settingup_autogen">
<title>Ενσωμάτωση στο autogen</title>
<para>Τα περισσότερα έργα διαθέτουν ένα σενάριο <filename>autogen.sh</filename> για τη δόμηση υποδομών μετά από έναν έλεγχο από το σύστημα ελέγχου εκδόσεων (π.χ., cvs/svn/git). Το GTK-Doc διαθέτει το εργαλείο <filename>gtkdocize</filename>, το οποίο μπορεί να χρησιμοποιηθεί για ένα τέτοιο σενάριο. Θα πρέπει να εκτελείται πριν το autoheader, το automake ή το autoconf.</para>
<para>
<example><title>Εκτέλεση του gtkdocize από το autogen.sh</title>
<programlisting>
gtkdocize || exit 1
</programlisting>
</example>
</para>
<para>Κατά την εκτέλεσή του, το <filename>gtkdocize</filename> αντιγράφει το <filename>gtk-doc.make</filename> στο ριζικό κατάλογο του έργου σας (ή στον κατάλογο που ορίζει η επιλογή <option>--docdir</option>). Επίσης, ελέγχει τη δέσμη ενεργειών configure για να βρει την κλήση στο <function>GTK_DOC_CHECK</function>.</para>
<para>Αρχικά, το GTK-Doc δημιουργούσε αρχεία προτύπων εκεί που οι προγραμματιστές εισήγαγαν την τεκμηρίωση. Δυστυχώς, αυτή η προσέγγιση δεν ήταν ιδιαίτερα επιτυχής (π.χ η ανάγκη για παραγωγή αρχείων στο σύστημα ελέγχου εκδόσεων). Από την έκδοση 1.9 και μετά, τα πρότυπα αρχεία δεν είναι πλέον απαραίτητα. Σας συνιστούμε να διατηρείτε την τεκμηρίωση στον κώδικα. To <application>gtkdocize</application> υποστηρίζει πλέον την επιλογή <option>--flavour no-tmpl</option> που επιλέγει ένα αρχείο makefile που δεν χρησιμοποιεί καθόλου πρότυπα tmpl. Πέρα από την άμεση προσθήκη της επιλογής στην κλήση της εντολής, μπορεί να προστεθεί και σε μια μεταβλητή περιβάλλοντος που ονομάζεται <symbol>GTKDOCIZE_FLAGS</symbol> ή να ορισθεί ως δεύτερη παράμετρος στη μακροεντολή <symbol>GTK_DOC_CHECK</symbol> στο σενάριο configure. Αν δεν έχετε κάνει ποτέ αλλαγές με το χέρι σε αρχεία προτύπων και μεταβαίνετε από μια παλιότερη έκδοση του gtkdoc, παρακαλώ αφαιρέστε τον κατάλογο (π.χ. από το σύστημα ελέγχου εκδόσεων).</para>
</sect1>
<sect1 id="settingup_firstrun">
<title>Εκτέλεση της δόμησης τεκμηρίωσης</title>
<para>Αφού ολοκληρωθούν τα προηγούμενα βήματα, προχωρήστε στην δόμηση. Πρώτα, θα πρέπει να εκτελεσθεί εκ νέου το <filename>autogen.sh</filename>. Αν το σενάριο εκτελεί και το configure, προσθέστε την επιλογή <option>--enable-gtk-doc</option>. Διαφορετικά, εκτελέστε εσείς το<filename>configure</filename> με αυτή την επιλογή.</para>
<para>Η πρώτη εκτέλεση του make δημιουργεί μια σειρά από πρόσθετα αρχεία στους καταλόγους της τεκμηρίωσης. Τα σημαντικά είναι τα: <filename><package>.types</filename>, <filename><package>-docs.xml</filename> (στο παρελθόν .sgml), <filename><package>-sections.txt</filename>.</para>
<para>
<example><title>Εκτέλεση της δόμησης τεκμηρίωσης</title>
<programlisting>
./autogen.sh --enable-gtk-doc
make
</programlisting>
</example>
</para>
<para>Τώρα, μπορείτε να εμφανίσετε το <filename>docs/reference/<package>/index.html</filename> στον περιηγητή σας. Είναι αλήθεια ότι προς το παρόν το αποτέλεσμα είναι μάλλον απογοητευτικό. Μην ανησυχείτε όμως. Στο επόμενο κεφάλαιο θα μάθετε πώς μπορείτε να ζωντανέψετε τις σελίδες σας.</para>
</sect1>
<sect1 id="settingup_vcs">
<title>Ενσωμάτωση σε συστήματα ελέγχου εκδόσεων</title>
<para>Ο εμπειρικός κανόνας είναι ότι αυτά τα αρχεία που επεξεργασθήκατε πρέπει να περάσουν από τον έλεγχο έκδοσης. Για τυπικά έργα, πρόκειται για τα αρχεία: <filename><package>.types</filename>, <filename><package>-docs.xml</filename> (στο παρελθόν .sgml), <filename><package>-sections.txt</filename>, <filename>Makefile.am</filename>.</para>
<para>Αρχεία στους καταλόγους <filename>xml/</filename> και <filename>html/</filename> δεν θα πρέπει να υποβληθούν σε έλεγχο έκδοσης. Ούτε και αρχεία <filename>xml/</filename> and <filename>html/</filename>.</para>
</sect1>
<sect1 id="plain_makefiles">
<title>Ενσωμάτωση στα αρχεία makefiles ή άλλα συστήματα δόμησης</title>
<para>Στην περίπτωση που κάποιος δε θέλει να χρησιμοποιήσει το automake και, επομένως, το <filename>gtk-doc.mak</filename> θα χρειαστεί να καλέσει τα εργαλεία του gtkdoc στη σωστή σειρά στα makefiles (ή άλλα εργαλεία δόμησης).</para>
<para>
<example><title>Βήματα δόμησης τεκμηρίωσης</title>
<programlisting>
DOC_MODULE=meep
// sources have changed
gtkdoc-scan --module=$(DOC_MODULE) --source-dir=...
gtkdoc-scangobj --module=$(DOC_MODULE)
gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml
// xml files have changed
mkdir html
cd html && gtkdoc-mkhtml $(DOC_MODULE) ../meep-docs.xml
gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html
</programlisting>
</example>
</para>
<para>Πρέπει να κοιτάξετε στα αρχεία <filename>Makefile.am</filename> και <filename>gtk-doc.mak</filename> για να επιλέξετε τις ρυθμίσεις που χρειάζονται.</para>
</sect1>
<sect1 id="cmake">
<title>Ενσωμάτωση με συστήματα δόμησης CMake</title>
<para>Το GTK-Doc παρέχει το άρθρωμα <filename>GtkDocConfig.cmake</filename> (και το αντίστοιχο άρθρωμα <filename>GtkDocConfigVersion.cmake</filename>). Επίσης παρέχει την εντολή <literal>gtk_doc_add_module</literal> την οποία μπορείτε να ορίσετε στο αρχείο <filename>CMakeLists.txt</filename>.</para>
<para>Το ακόλουθο παράδειγμα δείχνει πως να χρησιμοποιήσετε την εντολή. <example><title>Παράδειγμα χρήσης του GTK-Doc από το CMake</title>
<programlisting>
find_package(GtkDoc 1.25 REQUIRED)
# Create the doc-libmeep target.
gtk_doc_add_module(
libmeep ${CMAKE_SOURCE_DIR}/libmeep
XML meep-docs.xml
LIBRARIES libmeep
)
# Build doc-libmeep as part of the default target. Without this, you would
# have to explicitly run something like `make doc-libmeep` to build the docs.
add_custom_target(documentation ALL DEPENDS doc-libmeep)
# Install the docs. (This assumes you're using the GNUInstallDirs CMake module
# to set the CMAKE_INSTALL_DOCDIR variable correctly).
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libmeep/html
DESTINATION ${CMAKE_INSTALL_DOCDIR})
</programlisting>
</example></para>
</sect1>
</chapter>
<chapter id="documenting">
<title>Τεκμηρίωση κώδικα</title>
<para>Το GTK-Doc χρησιμοποιεί σχόλια με ειδική σύνταξη για την προσθήκη τεκμηρίωσης στον κώδικα. Παράλληλα, ανακαλεί πληροφορίες για τη δομή του έργου σας από άλλες πηγές. Στην επόμενη ενότητα περιέχονται όλες οι λεπτομέρειες για τη σύνταξη αυτών των σχολίων.</para>
<note>
<title>Τοποθέτηση τεκμηρίωσης</title>
<para>Στο παρελθόν, η τεκμηρίωση έπρεπε να συμπληρώνεται σε αρχεία του καταλόγου <filename>tmpl</filename>. Αυτή η προσέγγιση εμφανίζει το μειονέκτημα ότι οι πληροφορίες δεν ενημερώνονται συχνά, καθώς και το ότι προκύπτουν περιοδικές συγκρούσεις με τα συστήματα ελέγχου εκδόσεων.</para>
<para>Για να αποφύγετε αυτά τα προβλήματα, σας προτείνουμε να ενσωματώνετε την τεκμηρίωση στον πηγαίο κώδικα. Αυτή είναι και η μόνη μέθοδος που θα περιγράψουμε σε αυτό το εγχειρίδιο.</para>
</note>
<para>Ο σαρωτής μπορεί να χειρισθεί άνετα την πλειοψηφία των κεφαλίδων C. Σε περίπτωση που παίρνετε προειδοποιήσεις από τον σαρωτή οι οποίες μοιάζουν με έναν ειδικό χαρακτήρα, μπορείτε να υποδείξετε στο GTK-Doc να τους παραλείψει. <example><title>Μπλοκ σχολίου GTK-Doc</title>
<programlisting>
#ifndef __GTK_DOC_IGNORE__
/* unparseable code here */
#endif
</programlisting>
</example></para>
<note>
<title>Περιορισμοί</title>
<para>Σημειώστε, ότι το GTK-Doc υποστηρίζει το <code>#ifndef(__GTK_DOC_IGNORE__)</code>, αλλά όχι το <code>#if !defined(__GTK_DOC_IGNORE__)</code> ή άλλους συνδυασμούς.</para>
</note>
<!-- -->
<sect1 id="documenting_syntax">
<title>Σχόλια τεκμηρίωσης</title>
<para>Ένα σχόλιο πολλαπλών γραμμών που διαθέτει ένα επιπλέον «*» στην αρχή αποτελεί ένα μπλοκ τεκμηρίωσης που λαμβάνεται υπόψη από τα εργαλεία του GTK-Doc. <example><title>Μπλοκ σχολίου GTK-Doc</title>
<programlisting>
/**
* identifier:
* documentation ...
*/
</programlisting>
</example></para>
<para>Το 'αναγνωριστικό' είναι μία γραμμή που περιέχει το όνομα του στοιχείου στο οποίο αναφέρεται το σχόλιο. Η σύνταξή του εξαρτάται από τον τύπο του στοιχείου. (ΜΕΛΛΟΝΤΙΚΑ: να προστεθεί πίνακας με τα αναγνωριστικά)</para>
<para>Η ομάδα 'τεκμηρίωσης' επίσης διαφέρει ανάλογα με τον τύπο συμβόλου. Για τους τύπους συμβόλων που δέχονται παραμέτρους όπως συναρτήσεις ή μακροεντολές προηγείται η περιγραφή των παραμέτρων και ακολουθεί μια κενή γραμμή (μόνο '*'). Ακολουθεί η λεπτομερής περιγραφή. Όλες οι γραμμές (εκτός από τις λίστες προγράμματος και τις ενότητες CDATA) που περιέχουν μόνο ένα ' *' (διάστημα-αστερίσκο) μετατρέπονται σε αλλαγές παραγράφου. Αν δεν επιθυμείτε αλλαγή παραγράφου, αλλάξτε το σε ' * ' (διάστημα-αστερίσκος-διάστημα-διάστημα). Αυτό είναι χρήσιμο σε προδιαμορφωμένο κείμενο (λίστες κώδικα).</para>
<tip>
<para>Όταν τεκμηριώνετε κώδικα, περιγράψτε δύο πλευρές: <itemizedlist>
<listitem>
<para>Τι είναι: Το όνομα της κλάσης ή της συνάρτησης μπορεί μερικές φορές να είναι παραπλανητικό για ανθρώπους που δεν έχουν τεχνογνωσία στο θέμα.</para>
</listitem>
<listitem>
<para>Τι κάνει: Αναφέρει τις κοινές χρήσεις και τις βάζει σε σχέση με άλλο API.</para>
</listitem>
</itemizedlist></para>
</tip>
<para>Ένα πλεονέκτημα της χρήσης υπερκειμένου αντί για απλό κείμενο, είναι η δυνατότητα προσθήκης συνδέσμων στο έγγραφο. Ωστόσο, η συγγραφή της σωστής επισήμανσης για έναν σύνδεσμο μπορεί να είναι αρκετά κουραστική διαδικασία. Το GTK-Doc σας βοηθάει, παρέχοντάς σας μια σειρά από χρήσιμες συντομεύσεις. <itemizedlist>
<listitem>
<para>Χρησιμοποιήστε το function() για να αναφερθείτε σε συναρτήσεις ή μακροεντολές που δέχονται ορίσματα.</para>
</listitem>
<listitem>
<para>Χρησιμοποιήστε το @param για να αναφερθείτε σε παραμέτρους. Επίσης, χρησιμοποιήστε αυτή τη γραφή για να αναφερθείτε σε παραμέτρους άλλων συναρτήσεων, σχετικών με την περιγραφόμενη.</para>
</listitem>
<listitem>
<para>Χρησιμοποιήστε το %constant για να αναφερθείτε σε σταθερές, π.χ. %G_TRAVERSE_LEAFS.</para>
</listitem>
<listitem>
<para>Χρησιμοποιήστε το #symbol για να αναφερθείτε σε άλλους τύπους συμβόλων, π.χ. δομές, αριθμήσεις και μακροεντολές που δε δέχονται ορίσματα.</para>
</listitem>
<listitem>
<para>Χρησιμοποιήστε το #Object::signal για να αναφερθείτε σε ένα σήμα GObject.</para>
</listitem>
<listitem>
<para>Χρησιμοποιήστε το #Object::property για να αναφερθείτε σε μία ιδιότητα GObject.</para>
</listitem>
<listitem>
<para>Χρησιμοποιήστε το #Struct.field για να αναφερθείτε σε ένα πεδίο μέσα σε μια δομή και #GObjectClass.foo_bar() για να αναφερθείτε σε μια vmethod.</para>
</listitem>
</itemizedlist></para>
<tip>
<para>Αν θέλετε να χρησιμοποιήσετε τους ειδικούς χαρακτήρες «<», «>», «()», «@», «%» ή «#» στην τεκμηρίωση, χωρίς να φοβάστε ότι θα τους αλλάξει το GTK-Doc, μπορείτε να χρησιμοποιήσετε τις οντότητες XML «&lt;», «&gt;», «&lpar;», «&rpar;», «&commat;», «&percnt;» και «&num;», αντίστοιχα, ή να χρησιμοποιήσετε την ανάποδη κάθετο «\» ως χαρακτήρα διαφυγής.</para>
</tip>
<para>Το DocBook μπορεί να κάνει παραπάνω από απλούς συνδέσμους. Μπορεί κάποιος να έχει και λίστες, παραδείγματα, κεφαλίδες και εικόνες. Από την έκδοση 1.20 και μετά, ο προτιμώμενος τρόπος είναι με τη χρήση ενός υποσυνόλου της βασικής σύνταξης για μορφοποίηση κειμένου που ονομάζεται <ulink url="http://daringfireball.net/projects/markdown/">Markdown</ulink>. Σε παλιότερες εκδόσεις GTK-Doc οποιαδήποτε τεκμηρίωση που περιλαμβάνει Markdown θα αποδίδεται ως έχει. Για παράδειγμα, οι καταχωρήσεις της λίστας θα εμφανίζονται σαν γραμμές που αρχίζουν με μια παύλα.</para>
<para>Αν και τώρα προτιμάται η Markdown μπορεί κάποιος να αναμείξει και τις δύο. Ένας περιορισμός εδώ είναι ότι κάποιος μπορεί να χρησιμοποιήσει το docbook xml μέσα στο markdown, αλλά το markdown μέσα στο docbook xml δεν υποστηρίζεται.</para>
<para>Σε παλιότερες εκδόσεις του GTK-Doc, αν χρειάζεστε υποστήριξη για πρόσθετη μορφοποίηση, θα πρέπει να ενεργοποιήσετε τη χρήση των ετικετών docbook XML μέσα στα doc-comments θέτοντας το <option>--xml-mode</option> (ή το <option>--sgml-mode</option>) στη μεταβλητή <symbol>MKDB_OPTIONS</symbol> μέσα στο <filename>Makefile.am</filename>.</para>
<para>
<example><title>Μπλοκ σχολίου GTK-Doc χρησιμοποιώντας Markdown</title>
<programlisting>
/**
* ταυτοποιητής:
*
* παράγραφος τεκμηρίωσης ...
*
* # Δευτερεύουσα επικεφαλίδα #
*
* ## Δεύτερη δευτερεύουσα επικεφαλίδα
*
* # Δευτερεύουσα επικεφαλίδα με μια άγκυρα συνδέσμου # {#επικεφαλίδα-δύο}
*
* περισσότερη τεκμηρίωση:
*
* - στοιχείο 1 καταλόγου
*
* Παράγραφος μέσα σε ένα στοιχείο καταλόγου.
*
* - στοιχείο καταλόγου 2
*
* 1. αριθμημένο στοιχείο καταλόγου
*
* 2. άλλο αριθμημένο στοιχείο καταλόγου
*
* Μια άλλη παράγραφος. [Ένας σύνδεσμος στην ιστοσελίδα GNOME](http://www.gnome.org/)
*
* ![μια ενσωματωμένη εικόνα ](plot-result.png)
*
* [Ένας σύνδεσμος στην από πάνω άγκυρα επικεφαλίδας][επικεφαλίδα-δύο]
*
* Ένα παράδειγμα γλώσσας C:
* |[<!-- language="C" -->
* GtkWidget *label = gtk_label_new ("Gorgeous!");
* ]|
*/
</programlisting>
</example>
</para>
<para>Μπορείτε να βρείτε περισσότερα παραδείγματα για το ποιες ετικέτες markdown υποστηρίζονται στη διεύθυνση <ulink url="https://wiki.gnome.org/Projects/GTK%2B/DocumentationSyntax/Markdown">GTK+ Documentation Markdown Syntax Reference</ulink>.</para>
<tip>
<para>Όπως αναφέρθηκε και προηγουμένως το GTK-Doc στοχεύει στην τεκμηρίωση του δημόσιου API. Άρα, δεν μπορεί κάποιος να γράψει τεκμηρίωση για στατικά σύμβολα. Παρόλα αυτά, συνιστάται ο σχολιασμός και αυτών των συμβόλων, γιατί βοηθά στην κατανόηση του κώδικα. Σας προτείνουμε λοιπόν να τα σχολιάζετε χρησιμοποιώντας κανονικά σχόλια (χωρίς το δεύτερο «*» στην πρώτη γραμμή). Αν αργότερα χρειαστεί να μετατραπεί η συνάρτηση σε δημόσια, το μόνο που θα πρέπει να γίνει είναι να προστεθεί άλλο ένα «*» στο μπλοκ του σχολίου, και να εισαχθεί το όνομα του συμβόλου στην κατάλληλη θέση του αρχείου ενοτήτων.</para>
</tip>
</sect1>
<sect1 id="documenting_sections">
<title>Τεκμηρίωση ενοτήτων</title>
<para>Κάθε ενότητα της τεκμηρίωσης περιέχει πληροφορίες για μια κλάση ή ένα άρθρωμα. Για να εισάγετε το συστατικό μπορείτε να γράψετε ένα μπλοκ σχολίου ενότητας. Η σύντομη αυτή περιγραφή χρησιμοποιείται και για τον πίνακα περιεχομένων. Όλα τα πεδία @fields είναι προαιρετικά.</para>
<para>
<example><title>Μπλοκ σχολίου ενότητας</title>
<programlisting>
/**
* SECTION:meepapp
* @short_description: the application class
* @title: Meep application
* @section_id:
* @see_also: #MeepSettings
* @stability: Stable
* @include: meep/app.h
* @image: application.png
*
* The application class handles ...
*/
</programlisting>
</example>
</para>
<variablelist>
<varlistentry>
<term>SECTION:<name></term>
<listitem>
<para>
The name links the section documentation to the respective part in
the <filename><package>-sections.txt</filename> file. The
name given here should match the <FILE> tag in the
<filename><package>-sections.txt</filename> file.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>@short_description</term>
<listitem>
<para>Περιγραφή της ενότητας σε μια γραμμή, η οποία θα εμφανίζεται, στη συνέχεια, μετά από τους συνδέσμους του πίνακα περιεχομένων και στην αρχή της σελίδας της ενότητας.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>@title</term>
<listitem>
<para>Ο τίτλος της ενότητας από προεπιλογή έχει όνομα <name> από τη δήλωση SECTION. Μπορεί να παρακαμφθεί με το πεδίο @title.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>@section_id</term>
<listitem>
<para>Παρακάμπτει τη χρήση του τίτλου ως αναγνωριστικό της ενότητας. Για αντικείμενα GOBject το <title> χρησιμοποιείται ως section_id και για άλλες ενότητες είναι <MODULE>-<title>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>@see_also</term>
<listitem>
<para>Λίστα συμβόλων σχετικών με αυτή την ενότητα.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>@stability</term>
<listitem>
<para>Άτυπη περιγραφή του επιπέδου σταθερότητας του συγκεκριμένου API. Σας συνιστούμε τη χρήση ενός από τους ακόλουθους όρους: <itemizedlist>
<listitem>
<para>Σταθερή - Μια σταθερή διεπαφή επιτρέπει σε τρίτους να αναπτύσσουν εφαρμογές για τις διεπαφές αυτές, να τις δημοσιεύουν και να είναι βέβαιοι ότι οι εφαρμογές θα τρέχουν σε όλες τις ελάσσονες εκδόσεις του προϊόντος (οι οποίες θα είναι μεταγενέστερες της διεπαφής και θα ανήκουν στην ίδια μείζονα έκδοση). Ακόμη και όταν πρόκειται για μείζονες νέες εκδόσεις, οι ασυμβατότητες αναμένεται να είναι σπάνιες και να οφείλονται σε σοβαρούς λόγους.</para>
</listitem>
<listitem>
<para>Ασταθής - Ασταθείς είναι οι πειραματικές ή μεταβατικές διεπαφές. Συνήθως χρησιμοποιούνται για να παρέχουν σε τρίτους πρώιμη πρόσβαση σε νέες ή διαρκώς εξελισσόμενες τεχνολογίες, ή ως ενδιάμεσες λύσεις για προβλήματα για τα οποία αναμένεται μια γενικότερη λύση. Δεν υφίσταται καμία εγγύηση συμβατότητας μεταξύ μιας ελάσσονας έκδοσης και της επόμενης.</para>
</listitem>
<listitem>
<para>Ιδιωτική - Διεπαφή που μπορεί να χρησιμοποιηθεί εντός της στοίβας του GNOME, αλλά δε διαθέτει τεκμηρίωση που να απευθύνεται στους τελικούς χρήστες. Τέτοιου είδους συναρτήσεις μπορούν να χρησιμοποιούνται μόνο στο πλαίσιο σαφώς καθορισμένων και τεκμηριωμένων διαδικασιών.</para>
</listitem>
<listitem>
<para>Εσωτερική - Μια διεπαφή που είναι εσωτερική σε ένα άρθρωμα και δεν απαιτεί την ύπαρξη τεκμηρίωσης για τον τελικό χρήστη. Οι συναρτήσεις που δεν περιέχουν τεκμηρίωση εκλαμβάνονται ως εσωτερικές.</para>
</listitem>
</itemizedlist></para>
</listitem>
</varlistentry>
<varlistentry>
<term>@include</term>
<listitem>
<para>Αρχεία <literal>#include</literal> που εμφανίζονται στη συνοπτική παρουσίαση των ενοτήτων (λίστα αρχείων που χωρίζονται με κόμματα), αντικαθιστώντας την καθολική τιμή στο <link linkend="metafiles_sections">αρχείο ενότητας</link> ή στη γραμμή εντολών. Πρόκειται για προαιρετικό στοιχείο.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>@image</term>
<listitem>
<para>Η εικόνα που θα εμφανίζεται στο πάνω μέρος της σελίδας αναφοράς για αυτή την ενότητα. Αυτή συχνά θα είναι κάποιου είδους διάγραμμα για την απεικόνιση μια κλάσης ή ενός διαγράμματος της σχέσης της με άλλες κλάσεις. Αυτή η καταχώρηση είναι προαιρετική.</para>
</listitem>
</varlistentry>
</variablelist>
<tip>
<para>Για να μη χρειαστεί να κάνετε εκ νέου μεταγλώττιση μετά από αλλαγές στην τεκμηρίωση, σας προτείνουμε να ενσωματώνετε την τεκμηρίωση των ενοτήτων στο αρχείο του πηγαίου κώδικα, όπου αυτό είναι δυνατό.</para>
</tip>
</sect1>
<sect1 id="documenting_symbols">
<title>Τεκμηρίωση συμβόλων</title>
<para>Κάθε σύμβολο (συνάρτηση, μακροεντολή, δομή, αρίθμηση, σήμα, ιδιότητα) τεκμηριώνεται σε ξεχωριστή ομάδα. Η καταλληλότερη θέση για τις ομάδες είναι δίπλα στους ορισμούς των συμβόλων, γιατί διευκολύνει το έργο συγχρονισμού. Επομένως, η τεκμηρίωση των συναρτήσεων συνήθως βρίσκεται στο αρχείο του πηγαίου κώδικα, ενώ των μακροεντολών, δομών και αριθμήσεων στο αρχείο κεφαλίδας.</para>
<sect2><title>Γενικές ετικέτες</title>
<para>Μπορείτε να προσθέσετε πληροφορίες εκδόσεων σε όλα τα στοιχεία της τεκμηρίωσης για να πείτε πότε εισήχθηκε ένα API, ή πότε καταργήθηκε.</para>
<variablelist><title>Εκδόσεις Ετικετών</title>
<varlistentry><term>Από:</term>
<listitem>
<para>Περιγραφή οπό ποια έκδοση του κώδικα και μετά είναι διαθέσιμο το API.</para>
</listitem>
</varlistentry>
<varlistentry><term>Παρωχημένη:</term>
<listitem>
<para>Παράγραφος που επισημαίνει ότι θα πρέπει να σταματήσει η χρήση της συνάρτησης. Η περιγραφή θα πρέπει να παραπέμπει τον αναγνώστη στο νέο API.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Μπορείτε επίσης να προσθέσετε πληροφορίες σταθερότητας σε όλα τα στοιχεία της τεκμηρίωσης για να δείξετε αν η σταθερότητα API είναι εγγυημένη για αυτά για όλες τις μελλοντικές δευτερεύουσες εκδόσεις του έργου.</para>
<para>Το επίπεδο προεπιλεγμένης σταθερότητας για όλα τα στοιχεία τεκμηρίωσης μπορούν να οριστούν μεταφέροντας το όρισμα <option>--default-stability</option> στην <application>gtkdoc-mkdb</application> με μια άπω τις παρακάτω τιμές.</para>
<variablelist><title>Ετικέτες σταθερότητας</title>
<varlistentry><term>Σταθερότητα: σταθερό</term>
<listitem>
<para>Σημείωση του στοιχείου ως σταθερού. Αυτό είναι για δημόσια APIs που είναι βέβαια ότι παραμένουν σταθερά για όλες τις μελλοντικές δευτερεύουσες εκδόσεις του έργου.</para>
</listitem>
</varlistentry>
<varlistentry><term>Σταθερότητα: ασταθές</term>
<listitem>
<para>Σημείωση του στοιχείου ως ασταθούς. Αυτό είναι για τα δημόσια APIs που εκδίδονται ως μια προεπισκόπηση πριν να σταθεροποιηθούν.</para>
</listitem>
</varlistentry>
<varlistentry><term>Σταθερότητα: προσωπική</term>
<listitem>
<para>Σημείωση του στοιχείου ως προσωπικό. Αυτό είναι για διεπαφές που μπορούν να χρησιμοποιηθούν με σφικτά συνδυασμένες ενότητες, αλλά όχι από ελεύθερα τρίτα μέρη.</para>
</listitem>
</varlistentry>
</variablelist>
<example><title>Γενικές ετικέτες</title>
<programlisting>
/**
* foo_get_bar:
* @foo: some foo
*
* Retrieves @foo's bar.
*
* Returns: @foo's bar
*
* Since: 2.6
* Deprecated: 2.12: Use foo_baz_get_bar() instead.
*/
Bar *
foo_get_bar(Foo *foo)
{
...
</programlisting>
</example>
</sect2>
<sect2><title>Σχόλια</title>
<para>Οι ομάδες τεκμηρίωσης μπορούν να περιέχουν ετικέτες σχολιασμού. Αυτές οι ετικέτες θα αποδοθούν με συμβουλές οθόνης που περιγράφουν το νόημά τους. Οι ετικέτες χρησιμοποιούνται από το gobject-introspection για τη δημιουργία των συνδέσεων γλώσσας. Ένας λεπτομερής κατάλογος των υποστηριζόμενων ετικετών μπορεί να βρεθεί στο <ulink url="http://live.gnome.org/GObjectIntrospection/Annotations" type="http">η βίκι</ulink>.</para>
<example><title>Σχόλια</title>
<programlisting>
/**
* foo_get_bar: (σχόλιο)
* @foo: (σχόλιο): some foo
*
* Ανακτά @foo's bar.
*
* Επιστρέφει: (σχόλιο): @foo's bar
*/
...
/**
* foo_set_bar_using_the_frobnicator: (σχόλιο) (ένα άλλο σχόλιο)
* (και ένα άλλο σχόλιο)
* @foo: (σχόλιο) (ένα άλλο σχόλιο): some foo
*
* Ορίζει γραμμή στο @foo.
*/
</programlisting>
</example>
</sect2>
<sect2><title>Ομάδα σχολίων συνάρτησης</title>
<para>Παρακαλούμε να θυμηθείτε να: <itemizedlist>
<listitem>
<para>Τεκμηριώστε κατά πόσο τα επιστρεφόμενα αντικείμενα, λίστες, συμβολοσειρές, κ.λπ, θα πρέπει να ελευθερώνονται, να μην ελευθερώνονται ή να απορρίπτονται.</para>
</listitem>
<listitem>
<para>Τεκμηριώσετε κατά πόσο οι παράμετροι μπορούν να είναι μηδενικές (NULL) και τι συμβαίνει αν είναι.</para>
</listitem>
<listitem>
<para>Αναφέρετε ενδιαφέρουσες προ-καταστάσεις και μετα-καταστάσεις όπου χρειάζεται.</para>
</listitem>
</itemizedlist></para>
<para>Το Gtk-doc θεωρεί ότι όλα τα σύμβολα (μακροεντολές, συναρτήσεις, κτλ.) που ξεκινούν με '_' είναι ιδιωτικά και τα μεταχειρίζεται σαν στατικές συναρτήσεις.</para>
<example><title>Ομάδα σχολίων συνάρτησης</title>
<programlisting>
/**
* function_name:
* @par1: description of parameter 1. These can extend over more than
* one line.
* @par2: description of parameter 2
* @...: a %NULL-terminated list of bars
*
* The function description goes here. You can use @par1 to refer to parameters
* so that they are highlighted in the output. You can also use %constant
* for constants, function_name2() for functions and #GtkWidget for links to
* other declarations (which may be documented elsewhere).
*
* Returns: an integer.
*
* Since: 2.2
* Deprecated: 2.18: Use other_function() instead.
*/
</programlisting>
</example>
<variablelist><title>Ετικέτες συναρτήσεων</title>
<varlistentry><term>Επιστροφές:</term>
<listitem>
<para>Παράγραφος που περιγράφει το επιστρεφόμενο αποτέλεσμα.</para>
</listitem>
</varlistentry>
<varlistentry><term>@...:</term>
<listitem>
<para>Σε περίπτωση που η συνάρτηση μπορεί να δεχθεί μεταβλητό αριθμό ορισμάτων (variadic), πρέπει να χρησιμοποιήσετε αυτή την ετικέτα (η ετικέτα @Varargs: λειτουργεί επίσης, για ιστορικούς λόγους).</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2><title>Ομάδα σχολίων ιδιότητας</title>
<example><title>Ομάδα σχολίων ιδιότητας</title>
<programlisting>
/**
* SomeWidget:some-property:
*
* Here you can document a property.
*/
g_object_class_install_property (object_class, PROP_SOME_PROPERTY, ...);
</programlisting>
</example>
</sect2>
<sect2><title>Ομάδα σχολίων σήματος</title>
<para>Παρακαλούμε να θυμηθείτε να: <itemizedlist>
<listitem>
<para>Τεκμηριώστε πότε εκπέμπεται το σήμα και κατά πόσο εκπέμπεται πριν ή μετά από άλλα σήματα.</para>
</listitem>
<listitem>
<para>Τεκμηριώστε τι μπορεί να κάνει μια εφαρμογή στον διαχειριστή σημάτων.</para>
</listitem>
</itemizedlist></para>
<example><title>Ομάδα σχολίων σήματος</title>
<programlisting><![CDATA[
/**
* FooWidget::foobarized:
* @widget: the widget that received the signal
* @foo: some foo
* @bar: some bar
*
* The ::foobarized signal is emitted each time someone tries to foobarize @widget.
*/
foo_signals[FOOBARIZED] =
g_signal_new ("foobarized",
...
]]></programlisting>
</example>
</sect2>
<sect2><title>Ομάδα σχολίων δομής</title>
<example><title>Ομάδα σχολίων δομής</title>
<programlisting>
/**
* FooWidget:
* @bar: some #gboolean
*
* This is the best widget, ever.
*/
typedef struct _FooWidget {
GtkWidget parent_instance;
gboolean bar;
} FooWidget;
</programlisting>
</example>
<para>Χρησιμοποιήστε το <code>/*< private >*/</code> πριν από πεδία ιδιωτικών δομών που θέλετε να αποκρύψετε. Χρησιμοποιήστε το <code>/*< public >*/</code>για την αντίστροφη συμπεριφορά.</para>
<para>Αν το πρώτο πεδίο είναι "g_iface", "parent_instance" ή "parent_class" θα θεωρηθεί αυτόματα ιδιωτικό και δεν θα χρειαστεί να αναφερθεί στην περιοχή των σχολίων.</para>
<para>Οι ομάδες σχολίων μιας δομής μπορούν επίσης να χρησιμοποιηθούν για GObjects και για GObjectClasses. Είναι συνήθως καλή ιδέα να προσθέτετε μία ομάδα σχολίου για μια κλάση, εάν έχει vmethods (γιατί έτσι μπορούν να τεκμηριωθούν). Για το ίδιο το GObject μπορείτε να χρησιμοποιήσετε τα σχετικά έγγραφα τμημάτων, έχοντας μία ξεχωριστή ομάδα για το στιγμιότυπο δομής θα ήταν χρήσιμο εάν το στιγμιότυπο έχει δημόσια πεδία. Ένα μειονέκτημα εδώ είναι ότι θα δημιουργηθούν δύο καταχωρήσεις δεικτών για το ίδιο όνομα (για την δομή και για το τμήμα).</para>
</sect2>
<sect2><title>Ομάδα σχολίων Enum</title>
<example><title>Ομάδα σχολίων Enum</title>
<programlisting>
/**
* Something:
* @SOMETHING_FOO: something foo
* @SOMETHING_BAR: something bar
*
* Enum values used for the thing, to specify the thing.
*/
typedef enum {
SOMETHING_FOO,
SOMETHING_BAR,
/*< private >*/
SOMETHING_COUNT
} Something;
</programlisting>
</example>
<para>Χρησιμοποιήστε το <code>/*< private >*/</code> πριν από ιδιωτικές τιμές enum που θέλετε να αποκρύψετε. Χρησιμοποιήστε το <code>/*< public >*/</code> για την αντίστροφη συμπεριφορά.</para>
</sect2>
</sect1>
<sect1 id="documenting_inline_program">
<title>Inline program documentation</title>
<para>
You can document programs and their commandline interface using inline
documentation.
</para>
<variablelist>
<title>Tags</title>
<varlistentry><term>PROGRAM</term>
<listitem>
<para>
Defines the start of a program documentation.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>@short_description:</term>
<listitem>
<para>
Defines a short description of the program. (Optional)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>@synopsis:</term>
<listitem>
<para>
Defines the arguments, or list of arguments that the program can take.
(Optional)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>@see_also:</term>
<listitem>
<para>
See Also manual page section. (Optional)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>@arg:</term>
<listitem>
<para>
Argument(s) passed to the program and their description. (Optional)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Description:</term>
<listitem>
<para>
A longer description of the program.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Επιστροφές:</term>
<listitem>
<para>
Specificy what value(s) the program returns. (Optional)
</para>
</listitem>
</varlistentry>
</variablelist>
<sect2>
<title>Example of program documentation.</title>
<example><title>Program documentation block</title>
<programlisting><![CDATA[
/**
* PROGRAM:test-program
* @short_description: A test program
* @synopsis: test-program [*OPTIONS*...] --arg1 *arg* *FILE*
* @see_also: test(1)
* @--arg1 *arg*: set arg1 to *arg*
* @--arg2 *arg*: set arg2 to *arg*
* @-v, --version: Print the version number
* @-h, --help: Print the help message
*
* Long description of program.
*
* Returns: Zero on success, non-zero on failure
*/
int main(int argc, char *argv[])
{
return 0;
}
]]></programlisting>
</example>
</sect2>
</sect1>
<sect1 id="documenting_docbook">
<title>Χρήσιμες ετικέτες DocBook</title>
<para>Ακολουθούν ορισμένες ετικέτες DocBook, ιδιαίτερα χρήσιμες για την τεκμηρίωση του κώδικα.</para>
<para>Για να συνδεθείτε με μια άλλη ενότητα στην τεκμηρίωση GTK: <informalexample>
<programlisting>
<link linkend="glib-Hash-Tables">Hash Tables</link>
</programlisting>
</informalexample> Ο προορισμός είναι το αναγνωριστικό του SGML/XML στο πρώτο στοιχείο της σελίδας στην οποία παραπέμπει ο σύνδεσμος. Για τις περισσότερες σελίδες είναι το ("gtk", "gdk", glib"), ακολουθούμενο από τον τίτλο της σελίδας ("Πίνακες Hash"). Για τα γραφικά συστατικά είναι το όνομα της κλάσης. Τα διαστήματα και τα «_» μετατρέπονται σε «-» για να υπάρχει συμμόρφωση με το SGML/XML.</para>
<para>Αναφορά σε εξωτερική συνάρτηση, π.χ. τυποποιημένη συνάρτηση C: <informalexample>
<programlisting>
<function>...</function>
</programlisting>
</informalexample></para>
<para>Συμπερίληψη παραδειγμάτων κώδικα: <informalexample>
<programlisting>
<example>
<title>Using a GHashTable.</title>
<programlisting>
...
</programlisting>
</example>
</programlisting>
</informalexample> ή, ενδεχομένως, για πολύ σύντομο κώδικα που δεν χρειάζεται τίτλο: <informalexample>
<programlisting>
<informalexample>
<programlisting>
...
</programlisting>
</informalexample>
</programlisting>
</informalexample>. Στην τελευταία περίπτωση το GTK-Doc υποστηρίζει επίσης μια συντόμευση: |[ ... ]|</para>
<para>Συμπερίληψη λιστών με κουκκίδες: <informalexample>
<programlisting>
<itemizedlist>
<listitem>
<para>
...
</para>
</listitem>
<listitem>
<para>
...
</para>
</listitem>
</itemizedlist>
</programlisting>
</informalexample></para>
<para>Συμπερίληψη σημειώσεων που ξεχωρίζουν από το υπόλοιπο κείμενο: <informalexample>
<programlisting>
<note>
<para>
Make sure you free the data after use.
</para>
</note>
</programlisting>
</informalexample></para>
<para>Για να αναφερθείτε σε έναν τύπο: <informalexample>
<programlisting>
<type>unsigned char</type>
</programlisting>
</informalexample></para>
<para>Για να αναφερθείτε σε μια εξωτερική δομή (που δεν περιγράφεται στην τεκμηρίωση GTK): <informalexample>
<programlisting>
<structname>XFontStruct</structname>
</programlisting>
</informalexample></para>
<para>Για να αναφερθείτε σε ένα πεδίο μιας δομής: <informalexample>
<programlisting>
<structfield>len</structfield>
</programlisting>
</informalexample></para>
<para>Για να αναφερθείτε σε ένα όνομα κλάσης, θα μπορούσατε να χρησιμοποιήσετε το : <informalexample>
<programlisting>
<classname>GtkWidget</classname>
</programlisting>
</informalexample>, αλλά μάλλον θα χρησιμοποιήσετε το #GtkWidget (για αυτόματη δημιουργία συνδέσμου προς τη σελίδα GtkWidget, δείτε <link linkend="documenting_syntax">τις συντομεύσεις</link>).</para>
<para>Χρήση έντονων χαρακτήρων: <informalexample>
<programlisting>
<emphasis>This is important</emphasis>
</programlisting>
</informalexample></para>
<para>Για ονόματα αρχείων χρησιμοποιήστε: <informalexample>
<programlisting>
<filename>/home/user/documents</filename>
</programlisting>
</informalexample></para>
<para>Για να αναφερθείτε σε κλειδιά χρησιμοποιήστε: <informalexample>
<programlisting>
<keycombo><keycap>Control</keycap><keycap>L</keycap></keycombo>
</programlisting>
</informalexample></para>
</sect1>
</chapter>
<chapter id="metafiles">
<title>Συμπλήρωση των επιπλέον αρχείων</title>
<para>Υπάρχουν ορισμένα επιπλέον αρχεία που πρέπει να ενημερώνονται παράλληλα με τα σχόλια εντός του πηγαίου κώδικα: <filename><package>.types</filename>, <filename><package>-docs.xml</filename> (στο παρελθόν .sgml), <filename><package>-sections.txt</filename>.</para>
<sect1 id="metafiles_types">
<title>Επεξεργασία του αρχείου types</title>
<para>Αν η βιβλιοθήκη ή η εφαρμογή σας περιέχει GObjects, θα θέλετε να εμφανίζονται στην τεκμηρίωση τα σήματα, τα ορίσματα/παράμετροι καθώς και η θέση τους στην ιεραρχία. Για να το πετύχετε, απλά καταγράψτε τις συναρτήσεις <function>xxx_get_type</function> μαζί με την συμπερίληψή τους στο αρχείο <filename><package>.types</filename>.</para>
<para>
<example><title>Υπόδειγμα αποσπάσματος αρχείου types</title>
<programlisting>
#include <gtk/gtk.h>
gtk_accel_label_get_type
gtk_adjustment_get_type
gtk_alignment_get_type
gtk_arrow_get_type
</programlisting>
</example>
</para>
<para>Από την έκδοση 1.8 και μετά το <application>gtkdoc-scan</application> μπορεί να παράγει αυτόματα αυτή τη λίστα. Απλά προσθέστε την επιλογή "--rebuild-types" στο SCAN_OPTIONS του <filename>Makefile.am</filename>. Αν προτιμήσετε αυτή την προσέγγιση, θα πρέπει να μη συμπεριλάβετε το αρχείο types ούτε στη διανομή ούτε στον έλεγχο εκδόσεων.</para>
</sect1>
<sect1 id="metafiles_master">
<title>Επεξεργασία κύριου εγγράφου (master)</title>
<para>Το GTK-Doc παράγει τεκμηρίωση σε μορφή SGML/XML DocBook. Κατά την επεξεργασία των σχολίων εντός του πηγαίου κώδικα, τα εργαλεία του GTK-Doc παράγουν μία σελίδα τεκμηρίωσης ανά κλάση ή άρθρωμα, η οποία αποθηκεύεται ως ξεχωριστό αρχείο. Το κύριο έγγραφο συμπεριλαμβάνει αυτά τα αρχεία και τα ταξινομεί.</para>
<para>Αν και το GTK-Doc παράγει αυτόματα ένα πρότυπο κύριο έγγραφο για σας, οι επόμενες εκτελέσεις δεν θα το ξαναθίξουν. Αυτό σημαίνει ότι μπορείτε να δομήσετε την τεκμηρίωση ελεύθερα. Αυτό περιλαμβάνει την ομαδοποίηση των σελίδων και την προσθήκη πρόσθετων σελίδων. Το GTK-Doc διαθέτει πλέον μια σουίτα για δοκιμές, στην οποία το κύριο έγγραφο αναδημιουργείται από την αρχή. Είναι καλό να το κοιτάτε κάπου-κάπου για να δείτε αν υπάρχουν κάποια νέα καλούδια που εισήχθησαν εκεί.</para>
<tip>
<para>Μη δημιουργείτε εγχειρίδια ως νέα έγγραφα. Απλά προσθέστε επιπλέον κεφάλαια. Το όφελος της ενσωμάτωσης απευθείας του εγχειριδίου για μια βιβλιοθήκη στην τεκμηρίωση API είναι ότι έτσι διευκολύνεται η διαδικασία δημιουργίας συνδέσμων από το εγχειρίδιο προς την τεκμηρίωση των συμβόλων. Επίσης, έτσι καθίσταται πιθανότερη η ενημέρωση του εγχειριδίου μαζί με τη βιβλιοθήκη.</para>
</tip>
<para>Ποιες είναι λοιπόν οι αλλαγές που πρέπει να γίνουν στο κύριο έγγραφο; Πρόκειται για λίγες μόνο αλλαγές σε ορισμένα placeholders (κείμενα εντός αγκυλών) που πρέπει να διευκρινήσετε.</para>
<para>
<example><title>Κεφαλίδα κύριου εγγράφου</title>
<programlisting>
<bookinfo>
<title>MODULENAME Reference Manual</title>
<releaseinfo>
for MODULENAME [VERSION]
The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://[SERVER]/MODULENAME/index.html">http://[SERVER]/MODULENAME/</ulink>.
</releaseinfo>
</bookinfo>
<chapter>
<title>[Insert title here]</title>
</programlisting>
</example>
</para>
<para>Επιπλέον κάποια στοιχεία επιλογής δημιουργούνται με μορφή σχολίου. Μπορείτε να τα ελέγξετε και να τα ενεργοποιήσετε όπως θέλετε.</para>
<para>
<example><title>Προαιρετικό τμήμα στο κύριο έγγραφο</title>
<programlisting><![CDATA[
<!-- enable this when you use gobject introspection annotations
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
-->
]]></programlisting>
</example>
</para>
<para>Τέλος, χρειάζεται να προσθέσετε νέα ενότητα όποτε εισάγετε μία. Το εργαλείο <link linkend="modernizing-gtk-doc-1-16">gtkdoc-check</link> θα σας θυμίσει τα νεοδημιουργούμενα αρχεία xml που δεν περιλαμβάνονται ακόμα στο έγγραφο.</para>
<para>
<example><title>Συμπερίληψη των δημιουργούμενων ενοτήτων</title>
<programlisting>
<chapter>
<title>my library</title>
<xi:include href="xml/object.xml"/>
...
</programlisting>
</example>
</para>
</sect1>
<sect1 id="metafiles_sections">
<title>Επεξεργασία αρχείου ενοτήτων</title>
<para>Το αρχείο ενοτήτων χρησιμεύει στην οργάνωση της τεκμηρίωσης που παράγεται από το GTK-Doc. Εδώ διευκρινίζεται σε ποιο άρθρωμα ή κλάση ανήκει κάθε σύμβολο και αποφασίζεται η ορατότητά του (αν θα είναι δημόσιο ή ιδιωτικό).</para>
<para>Το αρχείο ενοτήτων είναι ένα αρχείο απλού κειμένου με ετικέτες οριοθετημένων περιοχών. Οι κενές γραμμές αγνοούνται, ενώ οι γραμμές που ξεκινούν με '#' αντιμετωπίζονται ως γραμμές σχολίων.</para>
<note>
<para>Ενώ οι ετικέτες δείχνουν πως είναι ένα αρχείο xml, στην πραγματικότητα δεν είναι. Παρακαλούμε μην κλείνετε τις ετικέτες όπως <SUBSECTION>.</para>
</note>
<para>
<example><title>Συμπερίληψη των δημιουργούμενων ενοτήτων</title>
<programlisting>
<INCLUDE>libmeep/meep.h</INCLUDE>
<SECTION>
<FILE>meepapp</FILE>
<TITLE>MeepApp</TITLE>
MeepApp
<SUBSECTION Standard>
MEEP_APP
...
MeepAppClass
meep_app_get_type
</SECTION>
</programlisting>
</example>
</para>
<para>Η ετικέτα <FILE> ... </FILE> χρησιμοποιείται για να δηλώσει το όνομα του αρχείου, χωρίς οποιοδήποτε επίθημα. Παραδείγματος χάρη, η χρήση του '<FILE>gnome-config</FILE>' θα καταλήξει στην ενότητα δηλώσεων που εξάγονται στο αρχείο προτύπου <filename>tmpl/gnome-config.sgml</filename>, το οποίο θα μετατραπεί στο αρχείο DocBook XML <filename>xml/gnome-config.sgml</filename> ή στο αρχείο DocBook XML <filename>xml/gnome-config.xml</filename>. (Το όνομα του αρχείου HTML βασίζεται στο όνομα του αρθρώματος και τον τίτλο της ενότητας, ή για τα GObjects βασίζεται στο όνομα κλάσης GObjects που μετατράπηκε σε πεζά γράμματα).</para>
<para>Η ετικέτα <TITLE> ... </TITLE> χρησιμοποιείται για να ορίσει τους τίτλους των ενοτήτων. Χρησιμεύει μόνο πριν τη δημιουργία των προτύπων, καθώς ο τίτλος που περιέχεται στα αρχεία προτύπων αντικαθιστά αυτούς τους τίτλους. Επίσης, αν χρησιμοποιείται το σχόλιο SECTION στον πηγαίο κώδικα, αυτό είναι παρωχημένο.</para>
<para>Μπορείτε να ομαδοποιήσετε στοιχεία στην ενότητα χρησιμοποιώντας την ετικέτα <SUBSECTION>. Με την τωρινή της μορφή, εμφανίζει μία κενή γραμμή μεταξύ υποενοτήτων στη συνοπτική παρουσίαση. Μπορείτε επίσης να χρησιμοποιήσετε την <SUBSECTION Standard> για κλασικές δηλώσεις GObject (π.χ. συναρτήσεις όπως η g_object_get_type και μακροεντολές όπως οι G_OBJECT(), G_IS_OBJECT(), κτλ.). Προς το παρόν αυτές οι δηλώσεις μένουν εκτός τεκμηρίωσης. Μπορείτε να χρησιμοποιήσετε την ετικέτα <SUBSECTION Private> για ιδιωτικές δηλώσεις που δεν πρόκειται να εμφανιστούν στην τεκμηρίωση (έτσι αποφεύγετε τις προειδοποιήσεις για δηλώσεις που δεν χρησιμοποιούνται). Αν η βιβλιοθήκη σας περιέχει ιδιωτικούς τύπους, για τους οποίους δεν επιθυμείτε να εμφανίζονται στην ιεραρχία αντικειμένων και στη λίστα υλοποιημένων ή απαιτούμενων διεπαφών, προσθέσετε τους σε μία ιδιωτική υποενότητα. Αν θα τοποθετήσετε κλάσεις GObject και GObjectClass σε δημόσιες ή κλασσικές ενότητες εξαρτάται από το αν έχετε δημόσιες καταχωρήσεις (μεταβλητές,vmethods).</para>
<para>Μπορείτε, επίσης, να χρησιμοποιήσετε την ετικέτα <INCLUDE> ... </INCLUDE> για τα αρχεία #include που περιλαμβάνονται στις ενότητες συνοπτικής παρουσίασης. Περιέχει μία λίστα με αρχεία #include, χωρισμένα με κόμματα και χωρίς τα '<' και '>'. Αν δεν τη χρησιμοποιήσετε στο εσωτερικό κάποιας ενότητας, θα αφορά όλες τις ενότητες μέχρι το τέλος του αρχείου. Αν τη χρησιμοποιήσετε στο εσωτερικό μιας ενότητας, τότε θα αφορά μόνο τη συγκεκριμένη ενότητα. </para>
</sect1>
</chapter>
<chapter id="reports">
<title>Έλεγχος αποτελέσματος</title>
<para>Κατά την εκτέλεση του GTK-Doc παράγονται αρχεία αναφορών που τοποθετούνται στον κατάλογο της τεκμηρίωσης. Πρόκειται για τα αρχεία: <filename><package>-undocumented.txt</filename>, <filename><package>-undeclared.txt</filename> και <filename><package>-unused.txt</filename>. Είναι αρχεία απλού κειμένου, εύκολα στην ανάγνωση και επεξεργασία.</para>
<para>Το αρχείο <filename><package>-undocumented.txt</filename> ξεκινά με μία περίληψη της κάλυψης της τεκμηρίωσης. Ακολουθούν δύο ενότητες που χωρίζονται μεταξύ τους με κενές γραμμές. Η πρώτη ενότητα αναφέρει τα σύμβολα που δε διαθέτουν τεκμηρίωση ή είναι ημιτελή. Η δεύτερη καταγράφει τα ίδια στοιχεία για την τεκμηρίωση των ενοτήτων. Ημιτελείς θεωρούνται οι καταχωρήσεις για τις οποίες υπάρχει τεκμηρίωση, αλλά στις οποίες π.χ. προστέθηκε μια νέα παράμετρος.</para>
<para>Το αρχείο <filename><package>-undeclared.txt</filename> περιέχει σύμβολα που αναφέρονται στο αρχείο <filename><package>-sections.txt</filename>, αλλά δε βρέθηκαν στον πηγαίο κώδικα. Θα πρέπει να ελέγξετε αν έχουν αφαιρεθεί ή αν περιέχουν συντακτικά λάθη.</para>
<para>Το αρχείο <filename><package>-unused.txt</filename> περιέχει ονόματα συμβόλων για τα οποία η σάρωση του GTK-Doc βρήκε τεκμηρίωση, αλλά δεν γνωρίζει πού να την τοποθετήσει. Aυτό σημαίνει ότι τα σύμβολα δεν έχουν προστεθεί ακόμη στο αρχείο <filename><package>-sections.txt</filename>.</para>
<tip>
<para>Ενεργοποιήστε ή προσθέστε τη γραμμή <option>TESTS=($GTKDOC_CHECK)</option> στο Makefile.am. Αν έχετε εγκατεστημένη την έκδοση GTK-Doc 1.9 ή μεταγενέστερη, θα πραγματοποιεί διάφορους ελέγχους κατά την εκτέλεση του <command>make check</command>.</para>
</tip>
<para>Μπορείτε επίσης να δείτε τα αρχεία που παράγονται από το σαρωτή του πηγαίου κώδικα: <filename><package>-decl-list.txt</filename> και <filename><package>-decl.txt</filename>. Το πρώτο μπορεί να συγκριθεί με το αρχείο της ενότητας, αν αυτό συντηρείται χειροκίνητα. Το δεύτερο περιέχει όλες τις δηλώσεις από τις κεφαλίδες. Αν ένα σύμβολο λείπει μπορείτε να ελέγξετε αν περιέχεται σε αυτό το αρχείο.</para>
<para>Αν το έργο βασίζεται στο GObject, μπορείτε επίσης να δείτε τα αρχεία που παράγονται από το σαρωτή αντικειμένων: <filename><package>.args.txt</filename>, <filename><package>.hierarchy.txt</filename>, <filename><package>.interfaces.txt</filename>, <filename><package>.prerequisites.txt</filename> και <filename><package>.signals.txt</filename>. Αν υπάρχουν σύμβολα που λείπουν από οποιοδήποτε από αυτά, μπορείτε να ζητήσετε από το gtkdoc να κρατήσει το ενδιάμεσο αρχείο σάρωσης για περαιτέρω ανάλυση, εκτελώντας το ως μια εντολή <command>GTK_DOC_KEEP_INTERMEDIATE=1 make</command>.</para>
</chapter>
<chapter id="modernizing">
<title>Εκσυγχρονίζοντας την τεκμηρίωση</title>
<para>Το GTK-Doc κυκλοφορεί εδώ και αρκετό καιρό. Σε αυτό το κεφάλαιο θα παραθέσουμε τις νέες λειτουργίες μαζί με την έκδοση στην οποία είναι διαθέσιμες.</para>
<sect1 id="modernizing-gtk-doc-1-9">
<title>GTK-Doc 1.9</title>
<para>Όταν χρησιμοποιείτε το xml αντί για το sgml, μπορείτε πράγματι να ονομάσετε το κύριο έγγραφο <filename><package>-docs.xml</filename>.</para>
<para>Αυτή η έκδοση υποστηρίζει <option>SCAN_OPTIONS=--rebuild-sections</option> στο <filename>Makefile.am</filename>. Αν αυτό ενεργοποιηθεί, το <filename><package>-sections.txt</filename> αυτοδημιουργείται και μπορεί να αφαιρεθεί από το vcs. Αυτό λειτουργεί καλά μόνο για έργα που έχουν μια πολύ κανονική δομή (π.χ. το κάθε ζεύγος .{c,h} θα δημιουργεί μια νέα ενότητα). Αν κάποιος οργανώσει ένα έργο κοντά σε αυτό, τότε η ενημέρωση μιας ενότητας αρχείων που συντηρούνται χειρονακτικά μπορεί να είναι τόσο απλή όσο και το να εκτελούμε <code>meld <package>-decl-list.txt <package>-sections.txt</code>.</para>
<para>
Version 1.8 already introduced the syntax for documenting sections in
the sources instead of the separate files under <filename class="directory">tmpl</filename>.
This version adds options to switch the whole doc module to not use the
extra tmpl build step at all, by using <option>--flavour no-tmpl</option>
in <filename>configure.ac</filename>. If you don't have a <filename class="directory">tmpl</filename>
checked into your source control system and haven't yet switched, just
add the flag to <filename>configure.ac</filename> and you are done.
</para>
</sect1>
<sect1 id="modernizing-gtk-doc-1-10">
<title>GTK-Doc 1.10</title>
<para>Αυτή η έκδοση υποστηρίζει τα <option>SCAN_OPTIONS=--rebuild-types</option> στο <filename>Makefile.am</filename>. Αν αυτό ενεργοποιηθεί, το <filename><package>.types</filename> αυτοδημιουργείται και μπορεί να αφαιρεθεί από το vcs. Όταν χρησιμοποιείτε αυτή τη λειτουργία είναι σημαντικό να ρυθμίσετε και το <varname>IGNORE_HFILES</varname> στο <filename>Makefile.am</filename> για τον κώδικα που δομείται υπό όρους.</para>
</sect1>
<sect1 id="modernizing-gtk-doc-1-16">
<title>GTK-Doc 1.16</title>
<para>Αυτή η έκδοση περιλαμβάνει ένα νέο εργαλείο που λέγεται gtkdoc-check. Αυτό το εργαλείο μπορέι να εκτελεί ένα σύνολο ελέγχων στην τεκμηρίωσή σας. Ενεργοποιείται προσθέτοντας αυτές τις γραμμές στο τέλος του <filename>Makefile.am</filename>. <example><title>Ενεργοποίηση του gtkdoc-check</title>
<programlisting>
if ENABLE_GTK_DOC
TESTS_ENVIRONMENT = \
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
TESTS = $(GTKDOC_CHECK)
endif
</programlisting>
</example></para>
</sect1>
<sect1 id="modernizing-gtk-doc-1-20">
<title>GTK-Doc 1.20</title>
<para>Η έκδοση 1.18 έφερε μια αρχική υποστήριξη για το markdown. Η χρήση markdown στα σχόλια του doc είναι λιγότερο ενοχλητική από το να γράφει κανείς docbook xml. Αυτή η έκδοση επιφέρει μεγάλες βελτιώσεις σε αυτό και προσθέτει περισσότερα στυλ. Η ενότητα που εξηγεί τη <link linkend="documenting_syntax">σύνταξη σχολίων</link> έχει όλες τις λεπτομέρειες.</para>
</sect1>
<sect1 id="modernizing-gtk-doc-1-25">
<title>GTK-Doc 1.25</title>
<para>
The makefiles shipped with this version generate an entity file at <filename>xml/gtkdocentities.ent</filename>,
containing entities for e.g. package_name and package_version. You can
use this e.g. in the main xml file to avoid hardcoding the version
number. Below is an example that shows how the entity file is included
and how the entities are used. The entities can also be used in all
generated files, GTK-Doc will use the same xml header in generated xml
files.
<example><title>Use pre-generated entities</title>
<programlisting><![CDATA[
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY % gtkdocentities SYSTEM "xml/gtkdocentities.ent">
%gtkdocentities;
]>
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
<bookinfo>
<title>&package_name; Reference Manual</title>
<releaseinfo>
for &package_string;.
The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://[SERVER]/&package_name;/index.html">http://[SERVER]/&package_name;/</ulink>.
</releaseinfo>
</bookinfo>
]]></programlisting>
</example>
</para>
</sect1>
</chapter>
<chapter id="documenting-others">
<title>Τεκμηρίωση άλλων διεπαφών</title>
<para>Μέχρ τώρα, χρησιμοποιούσαμε το GTK-Doc για να καταγράφουμε το API του κώδικα. Οι επόμενες συνεδρίες περιέχουν προτάσεις για το πώς τα εργαλεία μπορούν να χρησιμοποιηθούν για να καταγράφετε και άλλες διεπαφές.</para>
<sect1 id="commandline-interfaces">
<title>Επιλογές γραμμής εντολών και σελίδες τεκμηρίωσης man</title>
<para>Δεδομένου ότι κάποιος μπορεί να παραγάγει σελίδες man για ένα docbook refentry επίσης, θα ήταν καλή ιδέα να χρησιμοποιηθεί και για αυτόν τον σκοπό. Με αυτόν τον τρόπο η διεπαφή γίνεται μέρος της αναφοράς και αποκτά δωρεάν την σελίδα-man.</para>
<sect2 id="commandline-interfaces-file">
<title>Τεκμηρίωση του εργαλείου</title>
<para>Δημιουργήστε ένα refentry αρχείο ανά εργαλείο. Ακολουθώντας <link linkend="settingup_docfiles"> το παράδειγμά μας </link> θα το ονομάσουμε <filename>meep/docs/reference/meeper/meep.xml</filename>. Για τις ετικέτες xml που πρέπει να χρησιμοποιηθούν και μπορούν να εξετάσουν το παραγόμενο αρχείο στον υποκατάλογο xml καθώς επίσης και τα παραδείγματα π.χ. στο glib.</para>
</sect2>
<sect2 id="commandline-interfaces-configure">
<title>Προσθήκη του έξτρα ελέγχου διαμόρφωσης</title>
<para>
<example><title>Επιπλέον έλεγχοι ρυθμίσεων</title>
<programlisting>
AC_ARG_ENABLE(man,
[AC_HELP_STRING([--enable-man],
[regenerate man pages from Docbook [default=no]])],enable_man=yes,
enable_man=no)
AC_PATH_PROG([XSLTPROC], [xsltproc])
AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
</programlisting>
</example>
</para>
</sect2>
<sect2 id="commandline-interfaces-make">
<title>Προσθήκη των επιπλέον κανόνων makefile</title>
<para>
<example><title>Επιπλέον έλεγχοι ρυθμίσεων</title>
<programlisting>
man_MANS = \
meeper.1
if ENABLE_GTK_DOC
if ENABLE_MAN
%.1 : %.xml
@XSLTPROC@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
endif
endif
BUILT_EXTRA_DIST = $(man_MANS)
EXTRA_DIST += meep.xml
</programlisting>
</example>
</para>
</sect2>
</sect1>
<sect1 id="dbus-interfaces">
<title>Διεπαφές DBus</title>
<para>(FIXME: http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html, http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus)</para>
</sect1>
</chapter>
<chapter id="faq">
<title>Συχνές ερωτήσεις</title>
<segmentedlist>
<?dbhtml list-presentation="list"?>
<segtitle>Ερώτηση</segtitle>
<segtitle>Απάντηση</segtitle>
<seglistitem>
<seg>Δεν υπάρχει ιεραρχία κλάσεων.</seg>
<seg>Η συνάρτηση αντικειμένου <function>xxx_get_type()</function> δεν έχει εισαχθεί στο αρχείο <filename><package>.types</filename></seg>
</seglistitem>
<seglistitem>
<seg>Εξακολουθεί να μην υπάρχει ιεραρχία κλάσεων.</seg>
<seg>Ελλιπής ή λανθασμένη ονομασία στο αρχείο <filename><package>-sections.txt</filename> (δείτε την <ulink url="http://mail.gnome.org/archives/gtk-doc-list/2003-October/msg00006.html">αιτιολόγηση</ulink>).</seg>
</seglistitem>
<seglistitem>
<seg>Στο καλό του, πάλι δεν έχω ιεραρχία κλάσεων.</seg>
<seg>Ελέγξτε αν το όνομα του αντικειμένου (δηλαδή το όνομα του συγκεκριμένου παραδείγματος της δομής, π.χ. <type>GtkWidget</type>) περιλαμβάνεται στην κανονική ενότητα (δεν πρέπει να βρίσκεται εντός υποενότητας Standard ή Private).</seg>
</seglistitem>
<seglistitem>
<seg>Δεν υπάρχει ευρετήριο συμβόλων.</seg>
<seg>Το <filename><package>-docs.{xml,sgml}</filename> περιέχει ένα ευρετήριο το οποίο περιλαμβάνει με xi:includes το παραγόμενο ευρετήριο;</seg>
</seglistitem>
<seglistitem>
<seg>Δεν υπάρχουν σύνδεσμοι μεταξύ των συμβόλων και των κατάλληλων ενοτήτων της τεκμηρίωσης.</seg>
<seg>Το doc-comment χρησιμοποιεί σωστά τις επισημάνσεις (έχουν προστεθεί #,% ή ()); Ελέγξτε αν το gtkdoc-fixxref προειδοποιεί για ανεπίλυτα xrefs.</seg>
</seglistitem>
<seglistitem>
<seg>Μια νέα κλάση δεν εμφανίζεται στην τεκμηρίωση.</seg>
<seg>Συμπεριλαμβάνεται η νέα σελίδα xi:included από το <filename><package>-docs.{xml,sgml}</filename>;</seg>
</seglistitem>
<seglistitem>
<seg>Ένα νέο σύμβολο δεν εμφανίζεται στην τεκμηρίωση.</seg>
<seg>Το doc-comment είναι κανονικά μορφοποιημένο; Ελέγξτε για συντακτικά λάθη στην αρχή του σχολίου. Ελέγξτε αν το gtkdoc-fixxref προειδοποιεί για ανεπίλυτα xref. Ελέγξτε αν το σύμβολο είναι σωστά καταχωρημένο στο <filename><package>-sections.txt</filename> σε μια δημόσια υποενότητα.</seg>
</seglistitem>
<seglistitem>
<seg>Λείπει ένας τύπος από την ιεραρχία κλάσεων.</seg>
<seg>Αν ο τύπος υπάρχει στο <filename><package>.hierarchy</filename> αλλά όχι στο <filename>xml/tree_index.sgml</filename> τότε ελέγξτε ξανά ότι ο τύπος είναι σωστά τοποθετημένος στο <filename><package>-sections.txt</filename>. Αν ο τύπος του παραδείγματος (π.χ. <type>GtkWidget</type>) δεν είναι καταχωρημένος, ή είναι κατά λάθος σημειωμένος ως ιδιωτικός, τότε δε θα εμφανιστεί.</seg>
</seglistitem>
<seglistitem>
<seg>Λαμβάνω συνδέσμους foldoc για όλες τις σημειώσεις gobject.</seg>
<seg>Ελέγξτε ότι το <filename>xml/annotation-glossary.xml</filename> είναι xi:included από το <filename><package>-docs.{xml,sgml}</filename>.</seg>
</seglistitem>
<!-- gtk-doc warnings: -->
<seglistitem>
<seg>Μια παράμετρος περιγράφεται σε σχόλιο του πηγαίου κώδικα, αλλά δεν υπάρχει</seg>
<seg>Ελέγξτε αν το πρωτότυπο στην κεφαλίδα περιέχει διαφορετικό όνομα για την παράμετρο από αυτό που αναφέρεται στον κώδικα.</seg>
</seglistitem>
<!-- docbook warnings: -->
<seglistitem>
<seg>Πολλαπλά "Αναγνωριστικά" για τον προορισμό συνδέσμου: XYZ</seg>
<seg>Το σύμβολο XYZ εμφανίζεται δύο φορές στο αρχείο <filename><package>-sections.txt</filename>.</seg>
</seglistitem>
<seglistitem>
<seg>Βρέθηκε το όνομα τύπου του στοιχείου στην ονοματοθεσία '', αλλά δεν αντιστοιχεί σε κανένα πρότυπο.</seg>
<seg/>
</seglistitem>
</segmentedlist>
</chapter>
<chapter id="contrib">
<title>Εργαλεία σχετικά με το gtk-doc</title>
<para>GtkDocPlugin - ένα πρόσθετο ενσωμάτωσης <ulink url="http://trac-hacks.org/wiki/GtkDocPlugin">Trac GTK-Doc</ulink>, που προσθέτει έγγραφα API σε ιστοσελίδες trac και ενσωματώνεται με την αναζήτηση trac.</para>
<para>Gtkdoc-depscan - ένα εργαλείο (μέρος του gtk-doc) για έλεγχο του χρησιμοποιούμενου API, επειδή οι ετικέτες στο API καθορίζουν την ελάχιστη απαιτούμενη έκδοση.</para>
</chapter>
<!-- ======== Appendix: FDL ================================== -->
<!--
The GNU Free Documentation License 1.1 in DocBook
Markup by Eric Baudais <baudais@okstate.edu>
Maintained by the GNOME Documentation Project
http://developer.gnome.org/projects/gdp
Version: 1.0.1
Last Modified: Nov 16, 2000
-->
<appendix id="fdl">
<appendixinfo>
<releaseinfo>Έκδοση 1.1, Μάρτιος 2000</releaseinfo>
<copyright><year>2000</year><holder>Ίδρυμα Ελεύθερου Λογισμικού, Inc.</holder></copyright>
<legalnotice id="fdl-legalnotice">
<para><address>Free Software Foundation, Inc. <street>51 Franklin Street,
Suite 330</street>, <city>Boston</city>, <state>MA</state>
<postcode>02110-1301</postcode> <country>USA</country></address> Επιτρέπεται σε όλους η αντιγραφή και διανομή ακριβούς αντιγράφου του κειμένου αυτής της άδειας αλλά απαγορεύεται η αλλοίωση του περιεχομένου του.</para>
</legalnotice>
</appendixinfo>
<title>Άδεια Ελεύθερης Τεκμηρίωσης GNU (GFDL)</title>
<sect1 id="fdl-preamble">
<title>0. ΠΡΟΟΙΜΙΟ</title>
<para>Σκοπός της παρούσας Άδειας είναι η δημιουργία εγχειριδίων, συγγραμμάτων ή άλλων εγγράφων που είναι <quote>ελεύθερα</quote> υπό την έννοια ότι παρέχουν σε όλους πραγματική ελευθερία αντιγραφής και αναδιανομής τους, με ή χωρίς τροποποιήσεις, για εμπορικούς ή μη εμπορικούς σκοπούς. Δευτερευόντως, η παρούσα Άδεια παρέχει έναν τρόπο για να αναγνωρίζεται το έργο του συγγραφέα και του εκδότη ενός έργου, χωρίς να μπορούν να θεωρηθούν υπεύθυνοι για τροποποιήσεις που έγιναν από τρίτους.</para>
<para>Η παρούσα Άδεια είναι μια άδεια τύπου <quote>copyleft</quote>, το οποίο σημαίνει ότι τα παράγωγα έργα του εγγράφου θα πρέπει να είναι και αυτά ελεύθερα υπό την ίδια έννοια. Πρόκειται για άδεια συμπληρωματική της Γενικής Άδειας Δημόσιας Χρήσης GNU, που είναι άδεια copyleft σχεδιασμένη για ελεύθερο λογισμικό.</para>
<para>Σχεδιάσαμε αυτήν την Άδεια για χρήση με εγχειρίδια ελεύθερου λογισμικού, γιατί το ελεύθερο λογισμικό χρειάζεται και ελεύθερη τεκμηρίωση: τα ελεύθερα προγράμματα πρέπει να συνοδεύονται από εγχειρίδια που παρέχουν τις ίδιες ελευθερίες που παρέχει και το λογισμικό. Ωστόσο, αυτή η Άδεια δεν περιορίζεται στα εγχειρίδια λογισμικού· μπορεί να χρησιμοποιηθεί για οποιοδήποτε έργο κειμένου, ανεξάρτητα από το θέμα του ή από το αν εκδίδεται σε έντυπη μορφή. Συνιστούμε αυτή την Άδεια, κυρίως, για διδακτικό υλικό ή έργα αναφοράς.</para>
</sect1>
<sect1 id="fdl-section1">
<title>1. ΙΣΧΥΣ ΚΑΙ ΟΡΙΣΜΟΙ</title>
<para id="fdl-document">Η Άδεια αυτή εφαρμόζεται σε κάθε εγχειρίδιο ή άλλο έργο που περιέχει ένδειξη του δικαιούχου δικαιωμάτων πνευματικής ιδιοκτησίας, ότι επιτρέπεται η διανομή του υπό τους όρους αυτής της Άδειας. Ως <quote>Έγγραφο</quote>, κατωτέρω, αναφέρεται κάθε τέτοιο εγχειρίδιο. Ως κάτοχος της άδειας χρήσης θεωρείται κάθε άτομο, και αναφέρεται ως <quote>εσείς</quote>.</para>
<para id="fdl-modified">Ως <quote>Τροποποιημένη Έκδοση</quote> του Εγγράφου θεωρείται κάθε έργο που περιέχει το Έγγραφο ή μέρος αυτού, είτε ως ακριβές αντίγραφο, είτε τροποποιημένο και/είτε μεταφρασμένο σε άλλη γλώσσα.</para>
<para id="fdl-secondary">Ως <quote>Δευτερεύουσα Ενότητα</quote> θεωρείται κάθε παράρτημα ή αρχική ενότητα του <link linkend="fdl-document">Εγγράφου</link> που αναφέρεται αποκλειστικά στη σχέση των εκδοτών ή συγγραφέων του Εγγράφου με το συνολικό θέμα του Εγγράφου (ή σχετικά ζητήματα), και που δεν περιέχει οτιδήποτε μπορεί να θεωρηθεί ότι εντάσσεται άμεσα στο συνολικό αυτό θέμα. (Επί παραδείγματι, αν το Έγγραφο αποτελεί, εν μέρει, σύγγραμμα μαθηματικών, η Δευτερεύουσα Ενότητα δεν επιτρέπεται να επεξηγεί μαθηματικές έννοιες.) Η σχέση μπορεί να αποτελεί ιστορική σύνδεση με το θέμα ή σχετικά ζητήματα, ή νομική, εμπορική, φιλοσοφική, ηθική ή πολιτική θέση επί του θέματος ή σχετικών ζητημάτων.</para>
<para id="fdl-invariant"><quote>Αμετάβλητες Ενότητες</quote> είναι ορισμένες <link linkend="fdl-secondary">Δευτερεύουσες Ενότητες</link> των οποίων οι τίτλοι αναφέρονται ρητώς ως τίτλοι Αμετάβλητων Ενοτήτων στην ένδειξη όπου αναφέρεται ότι το <link linkend="fdl-document">Έγγραφο</link> δημοσιεύεται υπό τους όρους αυτής της Άδειας.</para>
<para id="fdl-cover-texts">Τα <quote>Κείμενα Εξωφύλλου</quote> είναι σύντομα αποσπάσματα κειμένου που αναφέρονται ρητώς ως Κείμενα Εμπροσθοφύλλου ή Κείμενα Οπισθοφύλλου στην ένδειξη όπου αναφέρεται ότι το <link linkend="fdl-document">Έγγραφο</link> δημοσιεύεται υπό τους όρους αυτής της Άδειας.</para>
<para id="fdl-transparent">Ως <quote>Διαφανές</quote> αντίγραφο του <link linkend="fdl-document">Εγγράφου</link> θεωρείται κάθε αντίγραφο σε μορφή αναγνώσιμη από μηχανή, όταν συντρέχουν οι εξής προϋποθέσεις: Οι τεχνικές προδιαγραφές τις μορφής αυτής είναι διαθέσιμες για δημόσια χρήση· τα περιεχόμενα του αντιγράφου μπορούν να προβληθούν και να τύχουν επεξεργασίας άμεσα και απλά, με χρήση γενόσημων επεξεργαστών κειμένου ή ( για εικόνες αποτελούμενες από εικονοστοιχεία) γενόσημων προγραμμάτων ζωγραφικής ή (για σχέδια) ευρέως διαθέσιμων επεξεργαστών σχεδίων· το αντίγραφο είναι κατάλληλο για είσοδο σε μορφοποιητές κειμένου ή για αυτόματη μετάφραση σε ποικίλες μορφές κατάλληλες για είσοδο σε μορφοποιητές κειμένου. Δεν θεωρείται Διαφανές ένα αντίγραφο σε Διαφανή, κατά τα λοιπά, μορφή αρχείου, του οποίου η επισήμανση έχει σχεδιαστεί κατά τρόπο που να αποτρέπει ή να αποθαρρύνει τη μελλοντική τροποποίηση του αντιγράφου από τους αναγνώστες. Το αντίγραφο που δεν είναι <quote>Διαφανές</quote> ονομάζεται <quote>Αδιαφανές</quote>.</para>
<para>Παραδείγματα μορφών κατάλληλων για τη δημιουργία Διαφανών αντιγράφων είναι η απλή ASCII χωρίς επισήμανση, η μορφή εισόδου Texinfo, η μορφή εισόδου LaTeX, η SGML ή XML που χρησιμοποιούν δημοσίως διαθέσιμη DTD, και η HTML που συμμορφώνεται με πρότυπα και έχει σχεδιαστεί για τροποποίηση από τον άνθρωπο. Στις Αδιαφανείς μορφές συμπεριλαμβάνονται η PostScript, η PDF, οι ιδιοταγείς μορφές που αναγιγνώσκονται μόνο από ιδιοταγείς επεξεργαστές κειμένου, η SGML ή XML των οποίων η DTD και/ή τα εργαλεία επεξεργασίας δεν είναι δημοσίως διαθέσιμα, και η HTML με αποκλειστικό προορισμό την έξοδο που παράγουν μηχανοκίνητα ορισμένοι επεξεργαστές κειμένου.</para>
<para id="fdl-title-page">Ως <quote>Σελίδα Τίτλου</quote> θεωρείται, για τα έντυπα βιβλία, η σελίδα τίτλου αυτή καθαυτή, καθώς και τυχόν επόμενες σελίδες που απαιτούνται για την ευανάγνωστη συμπερίληψη του υλικού που οφείλει να εμφανίζεται στη σελίδα τίτλου σύμφωνα με την παρούσα Άδεια. Για τα έργα σε μορφές που δεν περιλαμβάνουν σελίδα τίτλου αυτή καθαυτή, ως <quote>Σελίδα Τίτλου</quote> θεωρείται το κείμενο που βρίσκεται κοντά στην εμφανέστερη εμφάνιση του τίτλου του έργου και το οποίο προηγείται του σώματος του κειμένου.</para>
</sect1>
<sect1 id="fdl-section2">
<title>2. ΑΚΡΙΒΗ ΑΝΤΙΓΡΑΦΑ</title>
<para>Σας χορηγείται άδεια αντιγραφής και διανομής του <link linkend="fdl-document">Εγγράφου</link> σε οποιοδήποτε μέσο, για εμπορικό ή μη εμπορικό σκοπό, με την προϋπόθεση ότι σε κάθε αντίγραφο θα συμπεριλαμβάνετε την παρούσα Άδεια, τις ενδείξεις δικαιωμάτων πνευματικής ιδιοκτησίας και την ένδειξη άδειας χρήσης που αναφέρει ότι για το έγγραφο ισχύει η παρούσα Άδεια, και με την προϋπόθεση ότι δεν θα προσθέσετε κανένα επιπρόσθετο όρο πέρα από τους όρους της Άδειας. Δεν σας επιτρέπεται να χρησιμοποιήσετε τεχνικά μέτρα για την παρεμπόδιση ή τον έλεγχο της ανάγνωσης ή περαιτέρω αντιγραφής των αντιγράφων που δημιουργείτε ή διανέμετε. Ωστόσο, μπορείτε να αποδεχτείτε αποζημίωση σε αντάλλαγμα των αντιγράφων. Αν διανέμετε επαρκή αριθμό αντιγράφων, θα πρέπει να συμμορφωθείτε και με τους όρους της <link linkend="fdl-section3">ενότητας 3</link>.</para>
<para>Επίσης, μπορείτε να δανείζετε αντίγραφα σύμφωνα με τους ως άνω όρους και να προβάλλετε δημοσίως τα αντίγραφα.</para>
</sect1>
<sect1 id="fdl-section3">
<title>3. ΑΝΤΙΓΡΑΦΗ ΣΕ ΜΕΓΑΛΕΣ ΠΟΣΟΤΗΤΕΣ</title>
<para>Αν εκδώσετε περισσότερα από 100 στον αριθμό έντυπα αντίγραφα του <link linkend="fdl-document">Εγγράφου</link>, και η ένδειξη άδειας χρήσης του Εγγράφου προϋποθέτει την ύπαρξη <link linkend="fdl-cover-texts">Κειμένων Εξωφύλλου</link>, θα πρέπει να εσωκλείσετε τα αντίγραφα σε εξώφυλλα που θα περιέχουν, με καθαρό και ευανάγνωστο τρόπο, όλα τα ακόλουθα κείμενα εξωφύλλου: Κείμενα Εμπροσθοφύλλου στο εμπροσθόφυλλο και Κείμενα Οπισθοφύλλου στο οπισθόφυλλο. Επίσης, και τα δύο εξώφυλλα θα πρέπει να αναφέρουν, καθαρά και ευανάγνωστα, εσάς ως εκδότη των αντιγράφων. Στο εμπροσθόφυλλο θα πρέπει να αναφέρεται ο πλήρης τίτλος του Εγγράφου, και όλες οι λέξεις του τίτλου θα πρέπει να είναι εξίσου προβεβλημένες και εμφανείς. Επιτρέπεται να προσθέσετε επιπρόσθετο υλικό στα εξώφυλλα. Η παραγωγή αντιγράφων που διαφέρουν μόνο ως προς τα εξώφυλλα, εφόσον διατηρείται ο τίτλος του <link linkend="fdl-document">Εγγράφου</link> και τηρούνται οι παρούσες προϋποθέσεις, μπορεί να θεωρηθεί, κατά τα λοιπά, ως παραγωγή ακριβών αντιγράφων.</para>
<para>Αν τα απαιτούμενα κείμενα ενός ή και των δύο εξωφύλλων είναι υπερβολικά μεγάλα για να παραμείνουν ευανάγνωστα αν συμπεριληφθούν σε μία σελίδα, θα πρέπει να τοποθετήσετε τα πρώτα εξώφυλλα του καταλόγου (όσα χωρούν κανονικά) στο εξώφυλλο αυτό καθ' αυτό, και να τοποθετήσετε τα υπόλοιπα στις γειτονικές σελίδες.</para>
<para>Αν εκδώσετε περισσότερα από 100 στον αριθμό <link linkend="fdl-transparent">Αδιαφανή</link> αντίγραφα του <link linkend="fdl-document">Εγγράφου</link>, είτε θα πρέπει να συμπεριλάβετε ένα <link linkend="fdl-transparent">Διαφανές</link> αντίγραφο (σε μορφή αναγνώσιμη από μηχανή) σε κάθε Αδιαφανές αντίγραφο, είτε θα πρέπει να αναφέρετε — μαζί ή σε κάθε Αδιαφανές αντίγραφο — μια δημοσίως προσβάσιμη τοποθεσία δικτύου υπολογιστών από την οποία θα μπορεί το ευρύ κοινό που χρησιμοποιεί δίκτυα να λάβει ανώνυμα, δωρεάν, και με χρήση πρωτοκόλλων δικτύου δημοσίων προτύπων, ένα ολοκληρωμένο Διαφανές αντίγραφο του Εγγράφου, χωρίς προσθήκες. Αν επιλέξετε τη δεύτερη επιλογή, όταν ξεκινήσετε τη διανομή των Αδιαφανών αντιγράφων, θα πρέπει να λάβετε λελογισμένα μέτρα για να διασφαλίσετε ότι το Διαφανές αντίγραφο θα παραμείνει προσβάσιμο στην ως άνωθεν τοποθεσία για τουλάχιστον ένα έτος μετά την τελευταία δημόσια διανομή Αδιαφανούς αντιγράφου αυτής της έκδοσης (είτε πρόκειται για άμεση διανομή είτε για διανομή μέσω των πρακτόρων ή λιανοπωλητών σας).</para>
<para>Σας ζητείται, αλλά δεν απαιτείται, να επικοινωνήσετε εγκαίρως με τους συγγραφείς του <link linkend="fdl-document">Εγγράφου</link>, πριν αναδιανείμετε μεγάλο αριθμό αντιγράφων, ώστε να έχουν τη δυνατότητα να σας παράσχουν αναθεωρημένη έκδοση του Εγγράφου.</para>
</sect1>
<sect1 id="fdl-section4">
<title>4. ΤΡΟΠΟΠΟΙΗΣΕΙΣ</title>
<para>Σας χορηγείται άδεια αντιγραφής και διανομής <link linkend="fdl-modified">Τροποποιημένων Εκδόσεων</link> του <link linkend="fdl-document">Εγγράφου</link> υπό τους όρους των ενοτήτων <link linkend="fdl-section2">2</link> και <link linkend="fdl-section3">3</link> ανωτέρω, με την προϋπόθεση ότι θα δημοσιεύσετε την Τροποποιημένη Έκδοση υπό την παρούσα Άδεια ως έχει, όπου ως Έγγραφο θα νοείται η Τροποποιημένη Έκδοση. Άρα, θα χορηγείται άδεια διανομής και τροποποίησης της Τροποποιημένης Έκδοσης σε οποιονδήποτε κατέχει αντίγραφό της. Επιπροσθέτως, στην Τροποποιημένη Έκδοση θα πρέπει να κάνετε τα εξής:</para>
<itemizedlist mark="opencircle">
<listitem>
<formalpara>
<title>Α</title>
<para>Στη <link linkend="fdl-title-page">Σελίδα Τίτλου</link> (και τα εξώφυλλα, αν υφίστανται), χρησιμοποιήστε τίτλο διακριτό από τον τίτλο του <link linkend="fdl-document">Εγγράφου</link> και των προηγούμενων εκδόσεών του (τυχόν προηγούμενες εκδόσεις οφείλουν να αναφέρονται στην ενότητα Ιστορικού του Εγγράφου). Μπορείτε να χρησιμοποιήσετε τον ίδιο τίτλο με τον τίτλο προηγούμενης έκδοσης, αν λάβετε άδεια από τον αρχικό εκδότη της προηγούμενης έκδοσης.</para>
</formalpara>
</listitem>
<listitem>
<formalpara>
<title>Β</title>
<para>Αναφέρετε στη <link linkend="fdl-title-page">Σελίδα Τίτλου</link>, υπό την ιδιότητα του συγγραφέα, όλα τα άτομα ή τους φορείς που ευθύνονται για τη συγγραφή ή την τροποποίηση της <link linkend="fdl-modified">Τροποποιημένης Έκδοσης</link>, μαζί με τουλάχιστον πέντε από τους κύριους συγγραφείς του <link linkend="fdl-document">Εγγράφου</link> ( ή όλους τους κύριους συγγραφείς, αν είναι λιγότεροι από πέντε).</para>
</formalpara>
</listitem>
<listitem>
<formalpara>
<title>Γ</title>
<para>Αναφέρετε στη <link linkend="fdl-title-page">Σελίδα Τίτλου</link>, υπό την ιδιότητα του εκδότη, το όνομα του εκδότη της <link linkend="fdl-modified">Τροποποιημένης Έκδοσης</link>.</para>
</formalpara>
</listitem>
<listitem>
<formalpara>
<title>Δ</title>
<para>Διατηρήστε όλες τις ενδείξεις δικαιωμάτων πνευματικής ιδιοκτησίας του <link linkend="fdl-document">Εγγράφου</link>.</para>
</formalpara>
</listitem>
<listitem>
<formalpara>
<title>Ε</title>
<para>Προσθέστε την κατάλληλη ένδειξη δικαιωμάτων πνευματικής ιδιοκτησίας για τις τροποποιήσεις σας στις υπόλοιπες ενδείξεις δικαιωμάτων πνευματικής ιδιοκτησίας.</para>
</formalpara>
</listitem>
<listitem>
<formalpara>
<title>ΣΤ</title>
<para>Συμπεριλάβετε, αμέσως μετά τις ενδείξεις δικαιωμάτων πνευματικής ιδιοκτησίας, μια ένδειξη άδειας χρήσης που θα χορηγεί δημόσια άδεια χρήσης της <link linkend="fdl-modified">Τροποποιημένης Έκδοσης</link> υπό τους όρους της παρούσας Άδειας. Η μορφή της ένδειξης αυτής παρατίθεται στο Συμπλήρωμα που ακολουθεί.</para>
</formalpara>
</listitem>
<listitem>
<formalpara>
<title>Ζ</title>
<para>Διατηρήστε σε αυτή την ένδειξη άδειας χρήσης τους πλήρεις καταλόγους <link linkend="fdl-invariant">Αμετάβλητων Ενοτήτων</link> και απαιτούμενων <link linkend="fdl-cover-texts">Κειμένων Εξωφύλλου</link> που παρατίθενται στην ένδειξη άδειας χρήσης του <link linkend="fdl-document">Εγγράφου</link>.</para>
</formalpara>
</listitem>
<listitem>
<formalpara>
<title>Η</title>
<para>Συμπεριλάβετε αντίγραφο, χωρίς τροποποιήσεις, της παρούσας Άδειας.</para>
</formalpara>
</listitem>
<listitem>
<formalpara>
<title>Θ</title>
<para>Διατηρήστε την ενότητα με τίτλο <quote>Ιστορικό</quote>, καθώς και τον τίτλο της, και προσθέστε μία εγγραφή που θα αναφέρει τουλάχιστον τον τίτλο, το έτος, τους νέους συγγραφείς και τον εκδότη της <link linkend="fdl-modified">Τροποποιημένης Έκδοσης</link> όπως αυτά αναφέρονται στη <link linkend="fdl-title-page">Σελίδα Τίτλου</link>. Αν δεν υπάρχει ενότητα με τίτλο <quote>Ιστορικό</quote> στο <link linkend="fdl-document">Έγγραφο</link>, δημιουργήστε αυτήν την ενότητα, αναγράφοντας τον τίτλο, το έτος, τους νέους συγγραφείς και τον εκδότη του Εγγράφου, όπως αυτά αναφέρονται στη Σελίδα Τίτλου, και προσθέτοντας μία εγγραφή που θα περιγράφει την Τροποποιημένη Έκδοση σύμφωνα με την προηγούμενη πρόταση.</para>
</formalpara>
</listitem>
<listitem>
<formalpara>
<title>Ι</title>
<para>Διατηρήστε την τοποθεσία δικτύου που ενδεχομένως παρέχεται στο <link linkend="fdl-document">Έγγραφο</link> για δημόσια πρόσβαση σε <link linkend="fdl-transparent">Περατό</link> αντίγραφο του Εγγράφου, καθώς και τυχόν άλλες τοποθεσίες δικτύου που παρέχονται στο έγγραφο και αφορούν προηγούμενες εκδόσεις του. Οι τοποθεσίες αυτές μπορούν να τοποθετηθούν στην ενότητα <quote>Ιστορικό</quote>. Μπορείτε να παραλείψετε τοποθεσίες δικτύου για έργα που εκδόθηκαν τουλάχιστον τέσσερα έτη πριν από το ίδιο το Έγγραφο, ή αν ο αρχικός εκδότης της αντίστοιχης έκδοσης σας δώσει την άδεια.</para>
</formalpara>
</listitem>
<listitem>
<formalpara>
<title>ΙΑ</title>
<para>Αν υπάρχει ενότητα με τίτλο <quote>Ευχαριστίες</quote> ή <quote>Αφιέρωση</quote>, διατηρήστε τον τίτλο της ενότητας, και διατηρήστε στο σώμα της ενότητας την ουσία και το ύφος των ευχαριστιών και/ή αφιερώσεων που συμπεριλαμβάνονται σε αυτή.</para>
</formalpara>
</listitem>
<listitem>
<formalpara>
<title>ΙΒ</title>
<para>Διατηρήστε όλες τις <link linkend="fdl-invariant">Αμετάβλητες Ενότητες</link> του <link linkend="fdl-document">Εγγράφου</link>, χωρίς καμία τροποποίηση στο κείμενο και τον τίτλο τους. Η αρίθμηση των ενοτήτων, —ή άλλο ισοδύναμό της—, δεν θεωρείται τμήμα του τίτλου των ενοτήτων.</para>
</formalpara>
</listitem>
<listitem>
<formalpara>
<title>ΙΓ</title>
<para>Διαγράψτε τυχόν ενότητες με τίτλο <quote>Έγκριση</quote>. Αυτού του είδους οι ενότητες δεν επιτρέπεται να συμπεριληφθούν στην <link linkend="fdl-modified">Τροποποιημένη Έκδοση</link>.</para>
</formalpara>
</listitem>
<listitem>
<formalpara>
<title>ΙΔ</title>
<para>Μην αλλάζετε τον τίτλο καμίας προϋπάρχουσας ενότητα σε <quote>Έγκριση</quote> ή σε τίτλο που να συγκρούεται με τον τίτλο οποιασδήποτε <link linkend="fdl-invariant">Αμετάβλητης Ενότητας</link>.</para>
</formalpara>
</listitem>
</itemizedlist>
<para>Αν η <link linkend="fdl-modified">Τροποποιημένη Έκδοση</link> περιλαμβάνει νέες αρχικές ενότητες ή παραρτήματα, που εμπίπτουν στον ορισμό των <link linkend="fdl-modified">Δευτερευουσών Ενοτήτων</link>, και δεν περιέχουν υλικό που να είναι προϊόν αντιγραφής του Εγγράφου, μπορείτε, εφόσον το επιθυμείτε, να ορίσετε ορισμένες ή όλες αυτές τις ενότητες ως αμετάβλητες. Για να το πράξετε, προσθέστε τους τίτλους αυτών των ενοτήτων στον κατάλογο <link linkend="fdl-secondary">Αμετάβλητων Ενοτήτων</link> στην ένδειξη άδειας χρήσης της Τροποποιημένης Έκδοσης. Οι τίτλοι αυτοί θα πρέπει να είναι διακριτοί από τους υπόλοιπους τίτλους ενοτήτων..</para>
<para>Μπορείτε να προσθέσετε ενότητα με τίτλο <quote>Έγκριση</quote>, με την προϋπόθεση ότι περιλαμβάνει αποκλειστικά εγκρίσεις της δικής σας <link linkend="fdl-modified">Τροποποιημένης Έκδοσης</link> από διάφορους φορείς, —επί παραδείγματι, δηλώσεις αξιολόγησης ομοτίμων ή δηλώσεις ότι το κείμενο έχει εγκριθεί από έναν οργανισμό ως έγκυρος ορισμός ενός προτύπου.</para>
<para>Μπορείτε να προσθέσετε κείμενο μέχρι και πέντε λέξεις ως <link linkend="fdl-cover-texts">Κείμενο Εμπροσθοφύλλου</link>, καθώς και κείμενο μέχρι και 25 λέξεις ως <link linkend="fdl-cover-texts">Κείμενο Οπισθοφύλλου</link>, στο τέλος του καταλόγου <link linkend="fdl-cover-texts">Κειμένων Εξωφύλλου</link> της <link linkend="fdl-modified">Τροποποιημένης Έκδοσης</link>. Κάθε μεμονωμένος φορέας επιτρέπεται να προσθέτει μόνο ένα Κείμενο Εμπροσθοφύλλου και ένα Κείμενο Οπισθοφύλλου (ο ίδιος ή εξ ονόματος του ίδιου). Αν το <link linkend="fdl-document">Έγγραφο</link> περιέχει ήδη κείμενο εξωφύλλου για το ίδιο εξώφυλλο, —που είχατε προσθέσει προηγουμένως είτε εξ ονόματός σας είτε εξ ονόματος του φορέα που εκπροσωπείτε—, δεν σας επιτρέπεται να προσθέσετε επιπλέον εξώφυλλο· σας επιτρέπεται ωστόσο να αντικαταστήσετε το προηγούμενο, με ρητή άδεια από τον εκδότη που είχε προσθέσει το προηγούμενο εξώφυλλο.</para>
<para>Μέσω της παρούσας άδειας, ο/οι συγγραφείς και ο/οι εκδότες του <link linkend="fdl-document">Εγγράφου</link> δεν χορηγούν άδεια χρήσης των ονομάτων τους για διαφημιστικούς σκοπούς ή για την έγκριση, —ρητή ή υπονοούμενη—, οποιασδήποτε <link linkend="fdl-modified">Τροποποιημένης Έκδοσης</link>.</para>
</sect1>
<sect1 id="fdl-section5">
<title>5. ΣΥΝΔΥΑΣΜΟΣ ΕΓΓΡΑΦΩΝ</title>
<para>Μπορείτε να συνδυάσετε το <link linkend="fdl-document">Έγγραφο</link> με άλλα έγγραφα που υπόκεινται στους όρους της παρούσας Άδειας, σύμφωνα με τους ανωτέρω όρους της <link linkend="fdl-section4">ενότητας 4</link> για τις τροποποιημένες εκδόσεις, με την προϋπόθεση ότι ο συνδυασμός θα περιλαμβάνει όλες τις <link linkend="fdl-invariant">Αμετάβλητες Ενότητες</link> όλων των πρωτότυπων εγγράφων, χωρίς τροποποιήσεις, και ότι θα αναφέρονται ως Αμετάβλητες Ενότητες του συνδυασμένου έργου στην ένδειξη άδειας χρήσης του.</para>
<para>Το συνδυασμένο έργο οφείλει να περιέχει ένα μόνο αντίγραφο της παρούσας Άδειας, και επιτρέπεται η αντικατάσταση πολλαπλών ταυτόσημων <link linkend="fdl-invariant">Αμετάβλητων Ενοτήτων</link> από ένα μόνο αντίγραφό τους. Αν υφίστανται πολλαπλές Αμετάβλητες Ενότητες με τον ίδιο τίτλο αλλά διαφορετικό περιεχόμενο, φροντίστε να κατασταθεί μοναδικός ο τίτλος κάθε ενότητας, προσθέτοντας στο τέλος του τίτλου, εντός παρενθέσεων, το όνομα του αρχικού συγγραφέα ή εκδότη της ενότητας εφόσον τα γνωρίζετε, ή, εναλλακτικά, ένα μοναδικό αριθμό. Φροντίστε να κάνετε τις ίδιες αλλαγές στους τίτλους των ενοτήτων που αναγράφονται στον κατάλογο Αμετάβλητων Ενοτήτων στην ένδειξη άδειας χρήσης του συνδυασμένου έργου.</para>
<para>Στο συνδυασμό θα πρέπει να συνδυάσετε όλες τις ενότητες με τίτλο <quote>Ιστορικό</quote> που ενδεχομένως διαθέτουν τα πρωτότυπα έγγραφα, δημιουργώντας μία μοναδική ενότητα με τίτλο <quote>Ιστορικό</quote>. Κατά τον ίδιο τρόπο θα πρέπει να συνδυάσετε και όλες τις ενότητες με τίτλο <quote>Ευχαριστίες</quote> ή όλες τις ενότητες με τίτλο <quote>Αφιέρωση</quote>. Θα πρέπει να διαγράψετε όλες τις ενότητες με τίτλο <quote>Έγκριση</quote>.</para>
</sect1>
<sect1 id="fdl-section6">
<title>6. ΣΥΛΛΟΓΗ ΕΓΓΡΑΦΩΝ</title>
<para>Μπορείτε να δημιουργήσετε συλλογή που θα περιλαμβάνει το παρόν <link linkend="fdl-document">Έγγραφο</link> μαζί με άλλα έγγραφα που υπόκεινται στους όρους της παρούσας Άδειας, και να συμπεριλάβετε στη συλλογή ένα μόνο αντίγραφο της παρούσας Άδειας, που θα αντικαθιστά τα μεμονωμένα αντίγραφά της στα διάφορα έγγραφα, με την προϋπόθεση ότι, κατά τα λοιπά, θα συμμορφωθείτε με τους κανόνες της παρούσας Άδειας για την παραγωγή πιστών αντιγράφων καθενός από αυτά τα έγγραφα.</para>
<para>Μπορείτε να εξάγετε ένα μεμονωμένο έγγραφο από μια συλλογή τέτοιου είδους, και να το διανείμετε ξεχωριστά υπό τους όρους της παρούσας Άδειας, με την προϋπόθεση ότι θα προσθέσετε αντίγραφο της παρούσας Άδειας στο εξαχθέν έγγραφο, και ότι, κατά τα λοιπά, θα συμμορφωθείτε με τους κανόνες της παρούσας Άδειας για την παραγωγή ακριβών αντιγράφων αυτού του εγγράφου.</para>
</sect1>
<sect1 id="fdl-section7">
<title>7. ΣΥΡΡΑΦΗ ΜΕ ΑΝΕΞΑΡΤΗΤΑ ΕΡΓΑ</title>
<para>Αν το <link linkend="fdl-document">Εγγράφο</link> ή τα παράγωγά του συμπεριληφθούν, μαζί με άλλα ξεχωριστά και ανεξάρτητα έγγραφα ή έργα, σε τόμο ενός μέσου αποθήκευσης ή διανομής, ο τόμος αυτός, στο σύνολό του, δεν θεωρείται <link linkend="fdl-modified">Τροποποιημένη Έκδοση</link> του εγγράφου, με την προϋπόθεση ότι δεν διεκδικούνται δικαιώματα πνευματικής ιδιοκτησίας για αυτόν. Ο εν λόγω τόμος ονομάζεται <quote>συρραφή</quote> και η παρούσα άδεια δεν ισχύει για τα υπόλοιπα αυθύπαρκτα έργα που συμπεριλαμβάνονται σε αυτόν, πέραν του Έγγραφο, απλώς και μόνο επειδή ανήκουν σε αυτή τη συρραφή, εκτός εάν αποτελούν και αυτά παράγωγα έργα του Εγγράφου. Αν για αυτά τα αντίγραφα του Εγγράφου ισχύουν οι όροι για τα <link linkend="fdl-cover-texts">Κείμενα Εξωφύλλου</link> της <link linkend="fdl-section3">ενότητας 3</link>, τότε, αν το Έγγραφο αντιστοιχεί σε λιγότερο από το ένα τέταρτο του συνόλου της συρραφής, τα Κείμενα Εξωφύλλου του Εγγράφου επιτρέπεται να τοποθετηθούν σε εξώφυλλα εντός της συρραφής που εσωκλείουν μόνο το Έγγραφο. Ειδάλλως, θα πρέπει να τοποθετηθούν σε εξώφυλλα που εσωκλείουν ολόκληρη τη συρραφή.</para>
</sect1>
<sect1 id="fdl-section8">
<title>8. ΜΕΤΑΦΡΑΣΗ</title>
<para>Η μετάφραση θεωρείται μορφή τροποποίησης, άρα μπορείτε να διανέμετε μεταφράσεις του <link linkend="fdl-document">Εγγράφου</link> υπό τους όρους της <link linkend="fdl-section4">ενότητας 4</link>. Η αντικατάσταση των <link linkend="fdl-invariant">Αμετάβλητων Ενοτήτων</link> από μεταφράσεις απαιτεί ειδική άδεια από τους κατόχους των δικαιωμάτων πνευματικής ιδιοκτησίας, αλλά επιτρέπεται η συμπερίληψη στο Έγγραφο μεταφράσεων ορισμένων ή όλων των Αμετάβλητων Ενοτήτων, επιπλέον των πρωτότυπων εκδόσεων αυτών των Αμετάβλητων Ενοτήτων. Μπορείτε να προσθέσετε μεταφράσεις της παρούσας Άδειας, με την προϋπόθεση ότι θα συμπεριλάβετε και την πρωτότυπη Αγγλική έκδοση της Άδειας. Σε περίπτωση ασυμφωνίας μεταξύ μετάφρασης και πρωτότυπης Αγγλικής έκδοσης της Άδειας, ισχύει η πρωτότυπη Αγγλική έκδοση.</para>
</sect1>
<sect1 id="fdl-section9">
<title>9. ΚΑΤΑΡΓΗΣΗ</title>
<para>Δεν σας επιτρέπεται η αντιγραφή, τροποποίηση, περαιτέρω παραχώρηση άδειας εκμετάλλευσης ή διανομή του <link linkend="fdl-document">Εγγράφου</link> παρά μόνο με τον τρόπο που ρητά προβλέπεται από αυτήν την Άδεια. Κάθε άλλη απόπειρα αντιγραφής, τροποποίησης, περαιτέρω παραχώρησης άδειας εκμετάλλευσης ή διανομής του Εγγράφου είναι άκυρη και αυτομάτως καταργεί τα δικαιώματα που σας παραχωρεί η παρούσα Άδεια. Ωστόσο, τα μέρη στα οποία παρείχατε αντίγραφα ή δικαιώματα υπό τους όρους της παρούσας Άδειας, δεν θα απωλέσουν τα δικαιώματα χρήσης τους, εφόσον εξακολουθούν να συμμορφώνονται πλήρως με τους όρους της Άδειας.</para>
</sect1>
<sect1 id="fdl-section10">
<title>10. ΜΕΛΛΟΝΤΙΚΕΣ ΑΝΑΘΕΩΡΗΣΕΙΣ ΤΗΣ ΠΑΡΟΥΣΑΣ ΑΔΕΙΑΣ</title>
<para>Το <ulink type="http" url="http://www.gnu.org/fsf/fsf.html">Ίδρυμα Ελεύθερου Λογισμικού</ulink> έχει το δικαίωμα να δημοσιεύει περιστασιακά αναθεωρημένες ή/και νέες εκδόσεις της Ελεύθερης Άδειας Τεκμηρίωσης GNU (GFDL). Αυτές οι νέες εκδόσεις θα είναι συναφείς στο πνεύμα με την παρούσα έκδοση, όμως ενδέχεται να διαφέρουν στις λεπτομέρειες, καθώς επιλαμβάνονται νέων προβλημάτων και ζητημάτων. Βλέπε <ulink type="http" url="http://www.gnu.org/copyleft">http://www.gnu.org/copyleft/</ulink>.</para>
<para>Σε κάθε έκδοση δίνεται ένας διακριτικός αριθμός έκδοσης. Εάν στο <link linkend="fdl-document">Έγγραφο</link> καθορίζεται ότι ισχύει ένας συγκεκριμένος αριθμός έκδοσης της παρούσας Άδειας ή <quote>οποιαδήποτε μεταγενέστερη έκδοση</quote>, μπορείτε να επιλέξετε μεταξύ των όρων και προϋποθέσεων είτε αυτής της έκδοσης, είτε οποιασδήποτε μεταγενέστερης έκδοσης έχει δημοσιευτεί (όχι με μορφή σχεδίου) από το Ίδρυμα Ελεύθερου Λογισμικού. Εάν στο Πρόγραμμα δεν καθορίζεται αριθμός έκδοσης της Άδειας, μπορείτε να επιλέξετε οποιαδήποτε έκδοση έχει δημοσιευθεί (όχι με μορφή σχεδίου) από το Ίδρυμα Ελεύθερου Λογισμικού (FSF).</para>
</sect1>
<sect1 id="fdl-using">
<title>Συμπλήρωμα</title>
<para>Για να χρησιμοποιήσετε την παρούσα Άδεια σε έγγραφο το οποίο συγγράψατε, θα πρέπει να συμπεριλάβετε ένα αντίγραφο της Άδειας στο έγγραφο και να τοποθετήσετε τις ακόλουθες ενδείξεις δικαιωμάτων πνευματικής ιδιοκτησίας και άδειας χρήσης αμέσως μετά τη σελίδα τίτλου: </para>
<blockquote>
<para>Copyright © ΕΤΟΣ ΤΟ ΟΝΟΜΑ ΣΑΣ.</para>
<para>Χορηγείται άδεια αντιγραφής, διανομής και/ή τροποποίησης του παρόντος εγγράφου υπό τους όρους της έκδοσης 1.1 της Ελεύθερης Άδειας Τεκμηρίωσης GNU (GFDL), ή οποιασδήποτε μεταγενέστερης έκδοσής αυτής από το Ίδρυμα Ελεύθερου Λογισμικού (FSF)· οι <link linkend="fdl-invariant">Αμετάβλητες Ενότητες</link> είναι οι ΚΑΤΑΛΟΓΟΣ ΤΙΤΛΩΝ, τα <link linkend="fdl-cover-texts">Κείμενα εμπροσθοφύλλου</link> είναι τα ΚΑΤΑΛΟΓΟΣ, και τα <link linkend="fdl-cover-texts">Κείμενα Οπισθοφύλλου</link> είναι τα ΚΑΤΑΛΟΓΟΣ. Αντίγραφο της άδειας συμπεριλαμβάνεται στην ενότητα με τίτλο <quote>GNU Free Documentation License</quote>.</para>
</blockquote>
<para>Αν δεν περιέχονται <link linkend="fdl-invariant">Αμετάβλητες Ενότητες</link>, γράψτε <quote>χωρίς Αμετάβλητες Ενότητες</quote>, αντί να απαριθμήσετε τις αμετάβλητες ενότητες. Αν δεν περιέχονται <link linkend="fdl-cover-texts">Κείμενα Εμπροσθοφύλλου</link>, γράψτε <quote>χωρίς Κείμενα Εμπροσθοφύλλου</quote> αντί για <quote>τα Κείμενα Εμπροσθοφύλλου είναι τα ΚΑΤΑΛΟΓΟΣ</quote>· ομοίως για τα <link linkend="fdl-cover-texts">Κείμενα Οπισθοφύλλου</link>.</para>
<para>Αν το έγγραφό σας περιέχει μη ασήμαντα παραδείγματα πηγαίου κώδικα, συνιστούμε την παράλληλη δημοσίευσή τους υπό τους όρους της άδειας ελεύθερου λογισμικού της αρεσκείας σας, ώστε να επιτρέψετε τη χρήση τους σε ελεύθερο λογισμικό. Παράδειγμα τέτοιας άδειας αποτελεί η <ulink type="http" url="http://www.gnu.org/copyleft/gpl.html">Γενική Άδεια Δημόσιας Χρήσης GNU</ulink>.</para>
</sect1>
</appendix>
</book>
|