Hilfe:Quelltexte

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Die druckbare Version wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.

Es gibt verschiedene Möglichkeiten, Quelltexte im Wiki verfügbar zu machen. Entweder als Teil einer Wikiseite oder als eigenes Dokument im Namensraum Quelltext.

Quelltexte auf Wikiseiten

MediaWiki bietet drei Tags an, mit denen Quelltexte direkt in Wikiseiten eingebunden werden können.

code
code kann benutzt werden, um Textabschnitte als Quelltext auszuzeichnen und entsprechend zu formatieren. code ist vorwiegend dazu gedacht, kurze Quelltextausschnitte (nur einzelne oder wenige Wörter) innerhalb von Fließtexten auszuzeichnen.
Markup Ergebnis
<code>public void halloWelt()</code> public void halloWelt()
pre
pre ist ähnlich zu code, stellt den Inhalt aber als Blockelement dar. Daher eignet es sich eher, um längere Quelltexte darzustellen, die nicht innerhalb des Fließtextes auftauchen sollen. Der Tag bietet keine erweiterten Formatierungen wie Syntaxhervorhebungen oder Zeilennummern, dafür wird der Inhalt des Tags vom Wiki nicht als Wikisyntax behandelt. So kann zum Beispiel auch Wikicode auf Seiten dargestellt werden.
Markup Ergebnis
<pre>Dieser Text wird nicht durch '''Wikisyntax''' beeinflusst.</pre>
Dieser Text wird nicht durch '''Wikisyntax''' beeinflusst.
syntaxhighlight
syntaxhighlight ist das Tag mit der umfangreichsten Formatierung von Quelltexten. Es bietet Syntaxhervorhebungen und Zeilennummerierung, falls gewünscht. Dazu müssen die Programmiersprache (lang=) und ob Zeilennummern (line=) gewünscht sind als Argumente angegeben werden.
Das Tag wird von der Extension:SyntaxHighlight bereitgestellt. Eine Liste der unterstützten Programmiersprachen, die möglichen Parameter und weitere Details zur Nutzung sind dort dokumentiert.
lang="java"
Sprache des Quellcodes. Muss immer angegeben werden. Wenn der Quelltext in einer nicht unterstützten Sprache ist, sollte lang="plain" oder das <pre> Tag verwendet werden.
line="1"
Auf 1 setzen, um Zeilennummern anzuzeigen.
highlight="5,7-13"
Die angegebenen Zeilennummern werden farbig hervorgehoben.
inline
Wenn angegeben wird der Quelltext im Fließtext dargestellt und nicht als eigener Block.
<syntaxhighlight lang="java" line=1 highlight="5,7-11">
public class Käfig<Tierart> {
    private Tierart tier;

    public Käfig( Tierart pTier ) {
        tier = pTier;
    }

    public Tierart getTier() {
        return tier;
    }

    public void setTier( Tierart pTier ) {
        tier = pTier;
    }

    public boolean istBesetzt() {
        return tier != null;
    }
}
</syntaxhighlight>
public class Käfig<Tierart> {
    private Tierart tier;

    public Käfig( Tierart pTier ) {
        tier = pTier;
    }

    public Tierart getTier() {
        return tier;
    }

    public void setTier( Tierart pTier ) {
        tier = pTier;
    }

    public boolean istBesetzt() {
        return tier != null;
    }
}

Der Quelltext Namensraum

Um umfangreichere Quelltexte verfügbar zu machen, deren Einbindung direkt auf einer Wikiseite zum Beispiel zu unübersichtlich wäre, gibt es den Namensraum Quelltext:. Seiten in diesem speziellen Namensraum müssen dem Dateinamen der Quelltextdatei entsprechen, die sie abbilden. Vor allem muss die Dateiendung die Programmiersprache abbilden, in der der Quelltext verfasst ist. Der Inhalt der Seite darf ausschließlich den Quelltext der Klasse umfassen, sonst nichts. (Also auch keine Tags wie syntaxhighlight!)

Beispiele:

Die Seiten in diesem Namensraum werden automatisch mit Syntaxhervorhebungen dargestellt, basierend auf der durch die Endung gekennzeichneten Programmiersprache.

Außerdem können die Quelltexte wie Vorlagen in andere Wikiseiten eingebunden werden:

{{Quelltext:Tiere.java}}

Beim Einbinden auf diese Weise wird der reine Quelltext eingebunden, ohne Hervorhebungen. Um den Text auch auf der einbindenden Wikiseite mit Hervorhebungen zu versehen, kann nicht mit <syntaxhighlight> gearbeitet werden. Stattdessen muss {{#tag:syntaxhighlight|{{Quelltext:Tiere.java}}|lang="java"}} benutzt werden.

Icon Info.png
{{{1}}}

Hinter dem lang Attribut können auch noch weitere Attribute der SyntaxHighlight Erweiterung eingefügt werden. Vor allem bietet sich highlight= an, mit dem Zeilen im Quelltext farbig hervorgehoben werden. So kann zum Beispiel in einem Lernpfad immer wieder dasselbe Quelltext-Beispiel benutzt werden, aber in jedem Schritt andere Zeilen hervorgehoben werden.

{{#tag:syntaxhighlight|{{Quelltext:Tiere.java}}|lang="java"|line=1|highlight="7-11"}}
class Tier {
    public void sagWas() {
        System.out.println("- Stille -");
    }
}

class Biene extends Tier {
    public void sagWas() {
        System.out.println("Summ, Summ, Summ!");
    }
}

class Frosch extends Tier {
    public void sagWas() {
        System.out.println("Quak! Quak!");
    }
}

class Unbekannt extends Tier {
}