rev |
line source |
Hans-G?nter@1312
|
1 <!DOCTYPE html>
|
Hans-G?nter@1312
|
2 <html lang="de">
|
Hans-G?nter@1312
|
3 <head>
|
Hans-G?nter@1312
|
4 <meta charset="UTF-8">
|
Hans-G?nter@1312
|
5 <title>SliTaz-Schmiede</title>
|
Hans-G?nter@1312
|
6 <meta name="description" content="slitaz Entwickler Schmiede">
|
Hans-G?nter@1312
|
7 <meta name="keywords" lang="en" content="slitaz, devel, hg, bugs">
|
Hans-G?nter@1312
|
8 <meta name="author" content="Christophe Lincoln, HGT">
|
Hans-G?nter@1312
|
9 <?php include("../../lib/html/meta-link.html"); ?>
|
Hans-G?nter@1312
|
10 </head>
|
Hans-G?nter@1312
|
11 <body>
|
Hans-G?nter@1312
|
12
|
Hans-G?nter@1312
|
13 <?php
|
Hans-G?nter@1312
|
14 include("../../lib/html/header.de.html");
|
Hans-G?nter@1312
|
15 include("../../lib/html/nav.de.html");
|
Hans-G?nter@1312
|
16 include("../../lib/lang.php");
|
Hans-G?nter@1312
|
17 ?>
|
Hans-G?nter@1312
|
18
|
Hans-G?nter@1312
|
19 <!-- Content -->
|
Hans-G?nter@1312
|
20 <section id="content">
|
Hans-G?nter@1312
|
21
|
Hans-G?nter@1312
|
22 <h2>Gemeinschaftliche Verwaltung</h2>
|
Hans-G?nter@1312
|
23
|
Hans-G?nter@1312
|
24 <ul>
|
Hans-G?nter@1312
|
25 <li><a href="#kiss">„KISS“ und Standards respektieren.</a></li>
|
Hans-G?nter@1312
|
26 <li><a href="#tank">Rechner für die Entwicklung und die Internetpräsenz.</a></li>
|
Hans-G?nter@1312
|
27 <li><a href="#repos">Mercurial-Depots.</a></li>
|
Hans-G?nter@1312
|
28 <li><a href="#gui">Grafische Oberflächen in GTK und CGI</a></li>
|
Hans-G?nter@1312
|
29 <li><a href="#iconv">Implementierung von iconv().</a></li>
|
Hans-G?nter@1312
|
30 <li><a href="#pkgs">SliTaz-Pakete erzeugen.</a></li>
|
Hans-G?nter@1312
|
31 <li><a href="#website">Verwaltung der Internetpräsenz.</a></li>
|
Hans-G?nter@1312
|
32 </ul>
|
Hans-G?nter@1312
|
33
|
Hans-G?nter@1312
|
34 <h2 id="kiss">„KISS“ und Standards respektieren</h2>
|
Hans-G?nter@1312
|
35
|
Hans-G?nter@1312
|
36 <p>
|
Hans-G?nter@1312
|
37 „Keep it simple (KISS)“: befolgen Sie die besten Standards, entwerfen und schreiben
|
Hans-G?nter@1312
|
38 Sie sorgfältig Dokumentation von hoher Qualität, erzeugen Sie ein stabiles und robustes System und
|
Hans-G?nter@1312
|
39 halten Sie das Wurzeldateisystem <code>rootfs</code> in dem Direktstatrt-ISO-Abbild so klein, dass
|
Hans-G?nter@1312
|
40 es auf Rechnern mit mindestens 128 MiB Arbeitsspeicher geladen werden kann. Dennoch ist es möglich
|
Hans-G?nter@1312
|
41 GTK+2, Dialog, Kommandoprozeduren oder PHP-Werkzeuge in die Distribution zu übernehmen. Die Idee ist
|
Hans-G?nter@1312
|
42 keine Doppelarbeit zu leisten und nicht schmalspurig zu denken...
|
Hans-G?nter@1312
|
43 </p>
|
Hans-G?nter@1312
|
44
|
Hans-G?nter@1312
|
45 <h2 id="tank">Entwicklungstank - Rechner für die Entwicklung und die Internetpräsenz</h2>
|
Hans-G?nter@1312
|
46
|
Hans-G?nter@1312
|
47 <p>
|
Hans-G?nter@1312
|
48 Jeder Mitwirkende kann sich über einen sicheren Zugang an dem Projekt-Rechner anmelden, kann dort
|
Hans-G?nter@1312
|
49 Plattenplatz belegen, ein Verzeichnis <code>Public</code> anlegen und all Entwicklerwerkzeuge nutzen.
|
Hans-G?nter@1312
|
50 Entwickler können Pakete erzeugen und Verwalter der Spiegel-Depots können diese synchronisieren.
|
Hans-G?nter@1312
|
51 Auf diesem Rechner befindet sich auch der Kompilierungsautomat, die Dateien zum Laden über das
|
Hans-G?nter@1312
|
52 Netzwerk und „SliTaz Pro“: <a href="http://tank.slitaz.org/">tank.slitaz.org</a>
|
Hans-G?nter@1312
|
53 </p>
|
Hans-G?nter@1312
|
54
|
Hans-G?nter@1312
|
55 <p>
|
Hans-G?nter@1312
|
56 Anleitungen zum Erstellen von Paketen auf diesem Rechner finden sich im Kochbuch:
|
Hans-G?nter@1312
|
57 <a href="http://doc.slitaz.org/de:cookbook:buildhost">Entwicklungstank</a>.
|
Hans-G?nter@1312
|
58 </p>
|
Hans-G?nter@1312
|
59
|
Hans-G?nter@1312
|
60 <h2 id="repos">Mercurial-Depots</h2>
|
Hans-G?nter@1312
|
61
|
Hans-G?nter@1312
|
62 <p>
|
Hans-G?nter@1312
|
63 SliTaz-Mercurial- (oder Hg-) Depots können von jedem unter dem URL
|
Hans-G?nter@1312
|
64 <a href="http://hg.slitaz.org/">http://hg.slitaz.org/</a> angesehen und dupliziert werden.
|
Hans-G?nter@1312
|
65 Benutzer mit Schreibrecht können über die Adresse <code>repos.slitaz.org</code> direkt auf
|
Hans-G?nter@1312
|
66 die Depots zugreifen. Beim Schreiben müssen ein Benutzername und ein Kennwort angegeben werden.
|
Hans-G?nter@1312
|
67 Mercurial verwendet Python. Es kann auf SliTaz mit <code>tazpkg get-install mercurial</code>
|
Hans-G?nter@1312
|
68 installiert werden.
|
Hans-G?nter@1312
|
69 </p>
|
Hans-G?nter@1312
|
70
|
Hans-G?nter@1312
|
71 <h3>~/.hgrc</h3>
|
Hans-G?nter@1312
|
72
|
Hans-G?nter@1312
|
73 <p>
|
Hans-G?nter@1312
|
74 Vor dem Transfer des ersten Beitrags auf den Entwicklungsrechner (mit <code>hg push</code>)
|
Hans-G?nter@1312
|
75 muss eine korrekte Konfigurationsdatei <code>~/.hgrc</code> erstellt werden. Darin sollte
|
Hans-G?nter@1312
|
76 Ihre E-Mail-Adresse und Ihr richtiger Name enthalten sein. Hier ein Beispiel:
|
Hans-G?nter@1312
|
77 </p>
|
Hans-G?nter@1312
|
78 <pre class="script">
|
Hans-G?nter@1312
|
79 [ui]
|
Hans-G?nter@1312
|
80 username = Vorname Nachname <name@example.de>
|
Hans-G?nter@1312
|
81 </pre>
|
Hans-G?nter@1312
|
82
|
Hans-G?nter@1312
|
83 <h4>Duplizieren, Ändern, Änderungen lokal übernehmen und Änderungen transferieren</h4>
|
Hans-G?nter@1312
|
84
|
Hans-G?nter@1312
|
85 <p>
|
Hans-G?nter@1312
|
86 Ein Depot, z.B. der Wok <code>wok</code>, wird wie folgt lokal dupliziert:
|
Hans-G?nter@1312
|
87 </p>
|
Hans-G?nter@1312
|
88 <pre>
|
Hans-G?nter@1312
|
89 $ hg clone http://repos.slitaz.org/wok
|
Hans-G?nter@1312
|
90 </pre>
|
Hans-G?nter@1312
|
91 <p>
|
Hans-G?nter@1312
|
92 Jetzt muss das Verzeichnis <code>wok</code> als Arbeitsverzeichnis eingestellt werden, sonst funktionieren die
|
Hans-G?nter@1312
|
93 <code>hg</code>-Kommandos nicht. Zum Anzeigen aller oder nur der letzten Änderungen:
|
Hans-G?nter@1312
|
94 </p>
|
Hans-G?nter@1312
|
95 <pre>
|
Hans-G?nter@1312
|
96 $ hg log
|
Hans-G?nter@1312
|
97 $ hg head
|
Hans-G?nter@1312
|
98 </pre>
|
Hans-G?nter@1312
|
99 <p>
|
Hans-G?nter@1312
|
100 Nach dem Hinzufügen oder Ändern von einer oder auch mehrerer Dateien den Änderungsstatus anzeigen und die Änderungen
|
Hans-G?nter@1312
|
101 lokal übernehmen:
|
Hans-G?nter@1312
|
102 </p>
|
Hans-G?nter@1312
|
103 <pre>
|
Hans-G?nter@1312
|
104 $ hg add
|
Hans-G?nter@1312
|
105 $ hg status
|
Hans-G?nter@1312
|
106 $ hg commit -m "kurze beschreibung der vorgenommenen änderungen"
|
Hans-G?nter@1312
|
107 $ hg log
|
Hans-G?nter@1312
|
108 </pre>
|
Hans-G?nter@1312
|
109 <p>
|
Hans-G?nter@1312
|
110 Mit <code>hg rollback</code> können Sie die letzte Änderung rückgängig machen. Bevor Sie die
|
Hans-G?nter@1312
|
111 Änderungen in das Depot transferieren, sollten Sie zwischenzeitliche Änderungen anderer übernehmen:
|
Hans-G?nter@1312
|
112 </p>
|
Hans-G?nter@1312
|
113 <pre>
|
Hans-G?nter@1312
|
114 $ hg pull
|
Hans-G?nter@1312
|
115 $ hg push
|
Hans-G?nter@1312
|
116 </pre>
|
Hans-G?nter@1312
|
117 <p>
|
Hans-G?nter@1312
|
118 Das ist schon alles; Ihre Änderungen, Quellprogramme oder Korrekturen sind jetzt im Depot.
|
Hans-G?nter@1312
|
119 </p>
|
Hans-G?nter@1312
|
120
|
Hans-G?nter@1312
|
121 <h4>Ein lokal dupliziertes Depot aktualisieren</h4>
|
Hans-G?nter@1312
|
122
|
Hans-G?nter@1312
|
123 <p>
|
Hans-G?nter@1312
|
124 Ein lokal dupliziertes Depot kann aus dem SliTaz-Depot aktualisiert werden mit:
|
Hans-G?nter@1312
|
125 </p>
|
Hans-G?nter@1312
|
126 <pre>
|
Hans-G?nter@1312
|
127 $ hg pull -u
|
Hans-G?nter@1312
|
128 </pre>
|
Hans-G?nter@1312
|
129
|
Hans-G?nter@1312
|
130 <h4>Weitere nützliche Kommandos</h4>
|
Hans-G?nter@1312
|
131
|
Hans-G?nter@1312
|
132 <p>
|
Hans-G?nter@1312
|
133 Weitere <code>hg</code>-Kommandos:
|
Hans-G?nter@1312
|
134 </p>
|
Hans-G?nter@1312
|
135 <ul>
|
Hans-G?nter@1312
|
136 <li><code>hg help</code> : Zeigt alle möglichen Kommandos.</li>
|
Hans-G?nter@1312
|
137 <li><code>hg rollback</code> : Die letzte Aktion (commit, pull, push) rückgängig machen.</li>
|
Hans-G?nter@1312
|
138 <li><code>hg log <package></code> : Das Änderungsprotokoll eines Paketes zeigen.</li>
|
Hans-G?nter@1312
|
139 <li><code>hg head</code> : Die letzte Änderung anzeigen.</li>
|
Hans-G?nter@1312
|
140 </ul>
|
Hans-G?nter@1312
|
141
|
Hans-G?nter@1312
|
142 <h2 id="gui">Grafische Oberflächen - reines C/GTK, Yad, Vala/Genie und CGI</h2>
|
Hans-G?nter@1312
|
143
|
Hans-G?nter@1312
|
144 <p>
|
Hans-G?nter@1312
|
145 Es gibt viele Möglichkeiten, mit „open source“-Produkten eine Benutzeroberfläche zu erzeugen.
|
Hans-G?nter@1312
|
146 Bis zur Version 3.0 von SliTaz haben wir hauptsächlich Gtkdialog verwendet, um gefällige
|
Hans-G?nter@1312
|
147 und komplexe Oberflächen in GTK zu erstellen, wobei die Anweisungen ausgeführt wurden ohne
|
Hans-G?nter@1312
|
148 übersetzt werden zu müssen. Aber gtkdialog wird nicht mehr gewartet und es fehlen viele
|
Hans-G?nter@1312
|
149 neuere GTK-Funktionalitäten. Daher sind wir bei einfachen Grafikfenstern auf Yad umgestiegen.
|
Hans-G?nter@1312
|
150 Bei der Verwaltung des Systems und der Pakete sowie bei den Konfigurationswerkzeugen sind wir
|
Hans-G?nter@1312
|
151 auf TazPanel umgestiegen, eine Web-Oberfläche mit CGI-Nutzung, die mit xHTML 5 und CSS 3
|
Hans-G?nter@1312
|
152 programmiert wird.
|
Hans-G?nter@1312
|
153 </p>
|
Hans-G?nter@1312
|
154 <p>
|
Hans-G?nter@1312
|
155 Yad ist sehr einfach, kann aber keine komplexen Oberflächen erzeugen: schon
|
Hans-G?nter@1312
|
156 zwei oder drei Einträge mit Marken und einige Schaltflächen sind nicht möglich. Daher mussten
|
Hans-G?nter@1312
|
157 wir eine andere Möglichkeit suchen. Der Vorteil eines Interpreters ist, dass die Anweisungen
|
Hans-G?nter@1312
|
158 nicht übersetzt werden müssen sondern zur Laufzeit verarbeitet werden, was die Anwendung
|
Hans-G?nter@1312
|
159 allerdings verlangsamt.
|
Hans-G?nter@1312
|
160 Programme in C zu schreiben ist komplex und daran werden sich weniger Mitwirkende beteiligen, da
|
Hans-G?nter@1312
|
161 Kommandoprozeduren leichter zu verstehen sind. Daher lautet die Richtlinie jetzt:
|
Hans-G?nter@1312
|
162 unsere Kommandoprozeduren beibehalten und verbessern und Benutzeroberflächen dafür in GTK oder CGI
|
Hans-G?nter@1312
|
163 zur Verfügung stellen.
|
Hans-G?nter@1312
|
164 </p>
|
Hans-G?nter@1312
|
165 <p>
|
Hans-G?nter@1312
|
166 Es gibt viele neue Programmiersprachen, die GTK verwenden, z.B. Genie, Vala oder GTKaml.
|
Hans-G?nter@1312
|
167 Beachten Sie aber, dass sie nicht so verbreitet sind wie C und GTK und nicht wirklich
|
Hans-G?nter@1312
|
168 leichter zu erlernen und zu nutzen sind. Für einfache Grafikfenster können Sie Kommandoprozeduren
|
Hans-G?nter@1312
|
169 benutzen. Sie können auch Vala benutzen, aber reines GTK braucht für ein einzelnes Fenster auch nur 14
|
Hans-G?nter@1312
|
170 Anweisungszeilen:
|
Hans-G?nter@1312
|
171 </p>
|
Hans-G?nter@1312
|
172 <pre>
|
Hans-G?nter@1312
|
173 #include <gtk/gtk.h>
|
Hans-G?nter@1312
|
174
|
Hans-G?nter@1312
|
175 int main(int argc, char *argv[])
|
Hans-G?nter@1312
|
176 {
|
Hans-G?nter@1312
|
177 GtkWidget *window;
|
Hans-G?nter@1312
|
178
|
Hans-G?nter@1312
|
179 gtk_init(&argc, &argv);
|
Hans-G?nter@1312
|
180 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
Hans-G?nter@1312
|
181 g_signal_connect (G_OBJECT (window), "destroy",
|
Hans-G?nter@1312
|
182 G_CALLBACK (gtk_main_quit), NULL);
|
Hans-G?nter@1312
|
183
|
Hans-G?nter@1312
|
184 gtk_widget_show(window);
|
Hans-G?nter@1312
|
185 gtk_main();
|
Hans-G?nter@1312
|
186 return 0;
|
Hans-G?nter@1312
|
187 }
|
Hans-G?nter@1312
|
188 </pre>
|
Hans-G?nter@1312
|
189 <p>
|
Hans-G?nter@1312
|
190 Wenn Sie sich nicht sicher sind, welche Programmiersprache Sie verwenden sollen, können Sie Ihre Wahl
|
Hans-G?nter@1312
|
191 bei der „Mailing“-Liste zur Diskussion stellen.
|
Hans-G?nter@1312
|
192 Wenn Sie nur eine einfache grafische Oberfläche brauchen, können Sie sich <code>tazbox</code> im
|
Hans-G?nter@1312
|
193 Depot <code>slitaz-tools</code> ansehen; das Paket enthält kleine Programme für die grafische Oberfläche
|
Hans-G?nter@1312
|
194 wie z.B. ein Abmeldefenster. TazWeb ist das erste Teilprojekt von SliTaz, das in reinem GTK geschrieben wurde.
|
Hans-G?nter@1312
|
195 Sie können es ansehen um zu lernen, wie man die Funktion <code>system()</code> in einer grafischen
|
Hans-G?nter@1312
|
196 Oberfläche verwenden kann. So verwendet TazWeb beispielsweise <code>wget</code> zum Dateitransfer und
|
Hans-G?nter@1312
|
197 <code>sed</code> um Lesezeichen hinzuzufügen.
|
Hans-G?nter@1312
|
198 </p>
|
Hans-G?nter@1312
|
199 <p>
|
Hans-G?nter@1312
|
200 Yad-Anweisungsprozeduren sollten die TazYad-Richtlinien befolgen:
|
Hans-G?nter@1312
|
201 <a href="http://hg.slitaz.org/slitaz-dev-tools/raw-file/tip/tazyad/README">README</a> und
|
Hans-G?nter@1312
|
202 <a href="http://hg.slitaz.org/slitaz-dev-tools/raw-file/tip/tazyad/tazyad">Programmierbeispiele</a>
|
Hans-G?nter@1312
|
203 </p>
|
Hans-G?nter@1312
|
204
|
Hans-G?nter@1312
|
205 <h2 id="iconv">Implementierung von iconv()</h2>
|
Hans-G?nter@1312
|
206
|
Hans-G?nter@1312
|
207 <p>
|
Hans-G?nter@1312
|
208 SliTaz verwendet iconv() aus der GNU glibc - alle Pakete, die <code>libiconv</code> anbieten,
|
Hans-G?nter@1312
|
209 müssen die Bibliothek aus <code>glibc-locale</code> verwenden.
|
Hans-G?nter@1312
|
210 Daher gibt es kein Paket <code>libiconv</code> (1.2 MB) mehr in SliTaz.
|
Hans-G?nter@1312
|
211 </p>
|
Hans-G?nter@1312
|
212
|
Hans-G?nter@1312
|
213 <h2 id="pkgs">SliTaz-Pakete erzeugen</h2>
|
Hans-G?nter@1312
|
214
|
Hans-G?nter@1312
|
215 <p>
|
Hans-G?nter@1312
|
216 Für die offizielle Paketerzeugung werden die Kochwerkzeuge verwendet. Diese sind in dem Paket <code>cookutils</code>
|
Hans-G?nter@1312
|
217 enthalten, das in jedem SliTaz-System installiert ist, wie auch das
|
Hans-G?nter@1312
|
218 <a href="http://hg.slitaz.org/cookutils/raw-file/tip/doc/cookutils.de.html">Kochwerkzeuge-Handbuch</a> für die Verwendung der Kochwerkzeuge. Damit werden Pakete erzeugt, die von TazPKG verwaltet werden können.
|
Hans-G?nter@1312
|
219 </p>
|
Hans-G?nter@1312
|
220 <p>
|
Hans-G?nter@1312
|
221 Die Pakete werden bei SliTaz automatisch von <a href="http://cook.slitaz.org/">„Cooker“</a> aus einem
|
Hans-G?nter@1312
|
222 Quellpaket und einem Rezep im Wok erzeugt. Im Kochbuch ist das Format der
|
Hans-G?nter@1312
|
223 <a href="http://doc.slitaz.org/de:cookbook:receipt">Rezepte</a> beschrieben.
|
Hans-G?nter@1312
|
224 Die Beschreibung der Kochwerkzeuge und der Rezepte sollten Sie gelesen haben, bevor Sie mit der
|
Hans-G?nter@1312
|
225 Paketerzeugung beginnen.
|
Hans-G?nter@1312
|
226 </p>
|
Hans-G?nter@1312
|
227 <p>
|
Hans-G?nter@1312
|
228 Bei der Auswahl eines Paketes für SliTaz sollten nur solche in Betracht kommen, die
|
Hans-G?nter@1312
|
229 nützlich sind und funktionieren. Davon sollten Sie das kleinste verfügbare auswählen.
|
Hans-G?nter@1312
|
230 Es sollten nicht mehrere Pakete mit gleicher Funktionalität erstellt werden.
|
Hans-G?nter@1312
|
231 Die aktuelle Auswahl der Pakete ist aber nicht festgeschrieben. Wenn es eine Alternative zu einem Paket
|
Hans-G?nter@1312
|
232 gibt, die noch kleiner ist, mehr Funktionen enthält oder mit ein paar KB mehr <em>attraktiver</em> ist,
|
Hans-G?nter@1312
|
233 kann die Übernahme bei der „Mailing-Liste“ diskutiert werden.
|
Hans-G?nter@1312
|
234 Besondere Anforderungen werden an Pakete gestellt, die in Direktstart-ISO-Abbilder
|
Hans-G?nter@1312
|
235 übernommen werden sollen. Bei diesen sollten Symbolinformationen aus den Objektprogrammen
|
Hans-G?nter@1312
|
236 sowie unnötige Abhängigkeiten und Übersetzeroptionen entfernt werden.
|
Hans-G?nter@1312
|
237 Im Allgemeinen werden solche Pakete vor der Freigabe ebenfalls bei der „Mailing-Liste“ zur
|
Hans-G?nter@1312
|
238 Diskussion gestellt.
|
Hans-G?nter@1312
|
239 </p>
|
Hans-G?nter@1312
|
240 <p>
|
Hans-G?nter@1312
|
241 Bevor Sie beginnen, Pakete für SliTaz zu übersetzen und erzeugen, stellen Sie zur Vermeidung von
|
Hans-G?nter@1312
|
242 Doppelarbeit sicher, dass es etwas entsprechendes nicht schon im
|
Hans-G?nter@1312
|
243 <a href="http://download.tuxfamily.org/slitaz/packages/undigest/">inoffiziellen Wok</a>
|
Hans-G?nter@1312
|
244 gibt. Die Mitglieder der „Mailing-Liste“ geben gerne Hinweise und das
|
Hans-G?nter@1312
|
245 <a href="http://hg.slitaz.org/cookutils/raw-file/tip/doc/cookutils.de.html">Kochwerkzeuge-Handbuch</a>
|
Hans-G?nter@1312
|
246 sollte für Anfänger hilfreich sein.
|
Hans-G?nter@1312
|
247 </p>
|
Hans-G?nter@1312
|
248
|
Hans-G?nter@1312
|
249 <h3 id="pkgs-naming">Benennung von Paketen</h3>
|
Hans-G?nter@1312
|
250
|
Hans-G?nter@1312
|
251 <p>
|
Hans-G?nter@1312
|
252 In den meisten Fällen stimmt der Name des Paketes mit dem Namen des Quellpaketes überein. Ausnahmen sind
|
Hans-G?nter@1312
|
253 Python, Perl, PHP, Ruby und Lua-Module. Beispielsweise heisst das Paket,
|
Hans-G?nter@1312
|
254 das ein „Kid template system“, in Python und XML geschrieben, enthält:
|
Hans-G?nter@1312
|
255 <code>python-kid</code>.
|
Hans-G?nter@1312
|
256 </p>
|
Hans-G?nter@1312
|
257
|
Hans-G?nter@1312
|
258 <h2 id="website">Verwaltung der Internetpräsenz</h2>
|
Hans-G?nter@1312
|
259
|
Hans-G?nter@1312
|
260 <p>
|
Hans-G?nter@1312
|
261 Die Internetpräsenz wird über das Mercurial-Depot <code>website</code> administriert. Dieses kann dupliziert
|
Hans-G?nter@1312
|
262 werden mit:
|
Hans-G?nter@1312
|
263 </p>
|
Hans-G?nter@1312
|
264 <pre>
|
Hans-G?nter@1312
|
265 $ hg clone http://hg.slitaz.org/website
|
Hans-G?nter@1312
|
266 oder wenn Sie die entsprechende Berechtigung haben:
|
Hans-G?nter@1312
|
267 $ hg clone http://repos.slitaz.org/website
|
Hans-G?nter@1312
|
268 </pre>
|
Hans-G?nter@1312
|
269
|
Hans-G?nter@1312
|
270 <h3>xHTML-Programmierstil</h3>
|
Hans-G?nter@1312
|
271
|
Hans-G?nter@1312
|
272 <p>
|
Hans-G?nter@1312
|
273 Die Seiten und verschiedene <em>Handbücher</em> sind in xHTML 1.0 transitional
|
Hans-G?nter@1312
|
274 programmiert. Die Überschrift der Stufe 1 wird nur einmal (ganz oben) verwendet,
|
Hans-G?nter@1312
|
275 Stufe 2 ist der Titel des Dokuments und die Stufen 3 und 4 werden für weitere Abstufungen
|
Hans-G?nter@1312
|
276 der Überschriften benutzt. Wenn eine Liste statt „smart anchors“ verwendet wird,
|
Hans-G?nter@1312
|
277 beginnt sie oben, direkt unterhalb einer Überschrift der Stufe 2.
|
Hans-G?nter@1312
|
278 Absätze werden in die Markierungen <code><p></p></code> eingeschlossen.
|
Hans-G?nter@1312
|
279 Für Einrückungen werden Tabulatoren verwendet. Dies ist in der Semantik begründet und sie
|
Hans-G?nter@1312
|
280 benötigen weniger Speicherplatz. Zur Darstellung von Kommandonamen oder ähnlichem innerhalb
|
Hans-G?nter@1312
|
281 eines Absatzes wird vorzugsweise <code><code></code> verwendet.
|
Hans-G?nter@1312
|
282 Beispiele für die Anwendung von Kommandos in einem Terminal werden als formatierter Text mit
|
Hans-G?nter@1312
|
283 <code><pre></code> ausgegeben, z.B.:
|
Hans-G?nter@1312
|
284 </p>
|
Hans-G?nter@1312
|
285 <pre>
|
Hans-G?nter@1312
|
286 $ command
|
Hans-G?nter@1312
|
287 </pre>
|
Hans-G?nter@1312
|
288 <p>
|
Hans-G?nter@1312
|
289 Zur Anzeige von Text, der kopiert und eingefügt werden kann, wie etwa Kommandoprozeduren,
|
Hans-G?nter@1312
|
290 Quellprogrammausschnitte, Konfigurationsdateien usw. wird ebenfalls
|
Hans-G?nter@1312
|
291 <code><pre></code> verwendet, aber mit einer CSS-Klasse namens “script”. Beispiel:
|
Hans-G?nter@1312
|
292 </p>
|
Hans-G?nter@1312
|
293 <pre class="script">
|
Hans-G?nter@1312
|
294 <pre class="script">
|
Hans-G?nter@1312
|
295
|
Hans-G?nter@1312
|
296 code...
|
Hans-G?nter@1312
|
297
|
Hans-G?nter@1312
|
298 </pre>
|
Hans-G?nter@1312
|
299 </pre>
|
Hans-G?nter@1312
|
300 <p>
|
Hans-G?nter@1312
|
301 <em>Hervorgehobene</em> Wörter erhalten das Merkmal <code><em></code>
|
Hans-G?nter@1312
|
302 und interne Verknüpfungen sind stets relativ. Denken Sie auch daran, Ihr Programm
|
Hans-G?nter@1312
|
303 mit dem <em>„validator“</em> des W3C auf Konformität zu prüfen.
|
Hans-G?nter@1312
|
304 </p>
|
Hans-G?nter@1312
|
305
|
Hans-G?nter@1312
|
306 <h2 id="diff">Diff und patch</h2>
|
Hans-G?nter@1312
|
307
|
Hans-G?nter@1312
|
308 <p>
|
Hans-G?nter@1312
|
309 Die Programme <code>diff</code> und <code>patch</code> dienen der Erstellung einer Datei, die
|
Hans-G?nter@1312
|
310 Unterschiede zwischen zwei Dateien enthält und mit deren Hilfe die Änderungen angewendet werden können.
|
Hans-G?nter@1312
|
311 Diese Technik wird oft angewendet, wenn mehrere Personen an einem Projekt arbeiten, damit Änderungen
|
Hans-G?nter@1312
|
312 an einer Originaldatei klar extrahiert werden können. Um eine <code>diff</code>-Datei zu erstellen,
|
Hans-G?nter@1312
|
313 die mit einem Texteditor für Menschen gut lesbar ist, muss die Option <code>-u</code> angegeben werden:
|
Hans-G?nter@1312
|
314 </p>
|
Hans-G?nter@1312
|
315 <pre>
|
Hans-G?nter@1312
|
316 $ diff -u file.orig file.new > file.diff
|
Hans-G?nter@1312
|
317 </pre>
|
Hans-G?nter@1312
|
318 <p>
|
Hans-G?nter@1312
|
319 Zum Anbringen der Änderungen an der Originaldatei:
|
Hans-G?nter@1312
|
320 </p>
|
Hans-G?nter@1312
|
321 <pre>
|
Hans-G?nter@1312
|
322 $ patch file.orig file.diff
|
Hans-G?nter@1312
|
323 </pre>
|
Hans-G?nter@1312
|
324
|
Hans-G?nter@1312
|
325 <!-- End of content -->
|
Hans-G?nter@1312
|
326 </section>
|
Hans-G?nter@1312
|
327
|
Hans-G?nter@1312
|
328 <?php include("../../lib/html/footer.html"); ?>
|
Hans-G?nter@1312
|
329
|
Hans-G?nter@1312
|
330 </body>
|
Hans-G?nter@1312
|
331 </html>
|