Vorlage:Getestet
Mit dieser Vorlage werden Artikel markiert, die für eine bestimmte Debian Version getestet wurden.
Verwendung
Als Parameter werden die Codenamen der Versionen übergeben, für die ein Artikel getestet wurde. Es dürfen nur Codenamen verwendet werden. Stable, Testing und Oldstable sind in diesem Zusammenhang nicht hilfreich, da sie sich bei jedem neuen Release verändern. Ebenso muss darauf geachtet werden, das jeder Codename nur einmal als Parameter übergeben wird. Es ist aber auch möglich keinen Codenamen anzugeben, dies ist vor allem dann nützlich wenn die Anleitung funktioniert, aber der entsprechende Codename nicht unterstützt wird.
Derzeit werden folgende Codenamen unterstützt:
- Lenny
- Squeeze
- Wheezy
- Jessie
- Stretch
- Buster
- Bullseye
- Bookworm
- Sid
Warnung: Diese Vorlage ist leider Case-Sensitive, d.h. es ist ein gewaltiger Unterschied, ob Lenny oder lenny als Parameter übergeben wird. Bitte achtet darauf, das die Codenamen immer mit einem Großbuchstaben beginnen! |
Die Reihenfolge in der die Codenamen angeben werden ist ohne Bedeutung, die Auflistung wird automatisch chronologisch sortiert.
Das ganze sieht dann so aus:
{{Getestet|Sid|Lenny|Bookworm}}
Getestet: Dieser Hinweis soll dir dabei helfen, zu entscheiden, ob dieser Artikel auf deinem System funktionieren wird oder nicht. Solltest du feststellen, dass dieser Artikel bei einer ungetestet Version funktioniert, kannst du das gerne hier korrigieren oder im Forum anmerken.
|
Vorlage
http://wiki.ubuntuusers.de/Wiki/Vorlagen/Getestet
Hinter dem Code
Hinweis: Es ist nicht nötig diesen Teil zu lesen oder vollständig zu verstehen, wenn man die Vorlage nur benutzen will. Will man hingegen die Vorlage anpassen ist er hoffentlich nützlich. |
Leider unterstützt das Wiki, so wie es jetzt ist keine Arrays, dann wäre das Ganze recht einfach zu lösen gewesen. So muss es halt über if-Tags gelöst werden.
Wenn man sich diesen Codeblock einmal ansieht, fällt einem auf, dass es eine if-Abfrage gibt, die derzeit genau 16 ifeq-Abfragen umschließt. Diese if ist nur dazu da, um den Standardsatz anzuzeigen, wenn kein Codename übergeben wurde, dass kann z.B. der Fall sein, wenn die Anleitung unter Etch getestet wurde. Schauen wir uns nun diese innneren ifeq's einmal genauer an. Diese ifeq nehmen sich die ersten beiden Parameter und testen ob diese gleich sind. Bei Strings wird dies Case-Sensitive durchgeführt.
Der erste Parameter ist immer ein Platzhalter für ein Argument das der Vorlage übergeben wurde. Der zweite Parameter ist immer der Codename auf den geprüft werden soll.
Stellt nun ifeq fest, dass diese Beiden übereinstimmen, dann wird der dritte Parameter ausgegeben, sonst der Vierte, dieser ist aber nie definiert.
Der Code prüft nun der Reihe nach alle Codenamen durch, ob sie in einem Parameter übergeben wurden sind. Falls ja, dann wird ausgegeben, dass der Artikel für den Codenamen getestet wurde, sonst nichts.
Ist man sich jetzt noch darüber im klaren, dass diese ganzen Code-Stücke letzten Endes nur Textersetzungen machen, sieht man ein, dass diese ganzen if-Abfragen in eine Zeile kommen müssen, da sonst unberechenbare Zeilenumbrüche die Folge wären. Dadurch ist es egal in welcher Reihenfolge man die Codenamen angibt.
Es bringt allerdings kaum etwas, die Reihenfolge vorzugeben, denn dann müsste man immer noch flexibel genug sein um z.B. auf nur Lenny und Sid reagieren zu können. Es könnte z.B. selbst Sid noch als erster Parameter vorkommen, Lenny hingegen nur als erster. Spart also kaum.
Will man nun z.B. eine neues Codenamen einbauen, nennen wir dieses mal Debian Zurg, ist es nötig für jeden bestehenden Codenamen ein weiteres ifeq einzubauen, das auf {{{6}}} testet. Für Lenny wäre das z.B. folgende Zeile:
{{#ifeq: {{{6}}}|Lenny|* Dieser Artikel wurde für [[Lenny|Debian Lenny 5.0]] getestet.}}
Und für das Release Zurg müsste dann folgendes hinten angefügt werden.
{{#ifeq: {{{1}}}|Zurg|* Dieser Artikel wurde für [[Zurg|Debian Zurg 8.0]] getestet.}} {{#ifeq: {{{2}}}|Zurg|* Dieser Artikel wurde für [[Zurg|Debian Zurg 8.0]] getestet.}} {{#ifeq: {{{3}}}|Zurg|* Dieser Artikel wurde für [[Zurg|Debian Zurg 8.0]] getestet.}} {{#ifeq: {{{4}}}|Zurg|* Dieser Artikel wurde für [[Zurg|Debian Zurg 8.0]] getestet.}} {{#ifeq: {{{5}}}|Zurg|* Dieser Artikel wurde für [[Zurg|Debian Zurg 8.0]] getestet.}} {{#ifeq: {{{6}}}|Zurg|* Dieser Artikel wurde für [[Zurg|Debian Zurg 8.0]] getestet.}}
Warnung: Alle ifeq's müssen in EINER Zeile stehen um ungewünschte Zeilenumbrüche zu verhindern. Sieht im Quelltext erbärmlich aus, funktioniert aber. |
Weil von Hand längst keinen Spaß mehr macht, gibt es hier: https://debianforum.de/forum/pastebin/?mode=view&s=41939 ein Script, welches die Monsterzeile halbwegs verständlich zusammenbaut.
Hoffe das hilft bei zukünftigen Anpassungen an neue Releases.