Hilfe:Quelltexte: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Markierungen: Mobile Bearbeitung Mobile Web-Bearbeitung
Keine Bearbeitungszusammenfassung
 
(19 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


== Quelltexte auf Wikiseiten ==
== Quelltexte auf Wikiseiten ==
MediaWiki bietet drei Tags an, mit denen Quelltexte direkt in Wikiseiten eingebunden werden können.
; code
: <code>code</code> kann benutzt werden, um Textabschnitte als Quelltext auszuzeichnen und entsprechend zu formatieren. <code>code</code> ist vorwiegend dazu gedacht, kurze Quelltextausschnitte (nur einzelne oder wenige Wörter) innerhalb von Fließtexten auszuzeichnen.
{| {{exampletable}}
| <<nowiki>code></nowiki>public void halloWelt()<nowiki></code</nowiki>>
| <code>public void halloWelt()</code>
|}
; pre
: <code>pre</code> ist ähnlich zu <code>code</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.
{| {{exampletable}}
| <<nowiki>pre></nowiki>Dieser Text wird nicht durch <nowiki>'''Wikisyntax'''</nowiki> beeinflusst.<nowiki></pre</nowiki>>
| <pre>Dieser Text wird nicht durch '''Wikisyntax''' beeinflusst.</pre>
|}
; syntaxhighlight
: <code>syntaxhighlight</code> ist das Tag mit der umfangreichsten Formatierung von Quelltexten. Es bietet Syntaxhervorhebungen und Zeilennummerierung, falls gewünscht. Dazu müssen die Programmiersprache (<code>lang=</code>) und ob Zeilennummern (<code>line=</code>) gewünscht sind als Argumente angegeben werden.
: Das Tag wird von der [[mediawikiwiki:Extension:SyntaxHighlight/de|Extension:SyntaxHighlight]] bereitgestellt. Eine [[mediawikiwiki:Extension:SyntaxHighlight/de#Supported languages|Liste der unterstützten Programmiersprachen]], die [[mediawikiwiki:Extension:SyntaxHighlight/de#Parameters|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 <code>lang="plain"</code> oder das <code>&lt;pre&gt;</code> Tag verwendet werden.
:; line="1"
:: Auf <code>1</code> 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.
<pre>
<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>
</pre>
<syntaxhighlight lang="java" line=1>
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>


== Der Quelltext Namensraum ==
== 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 <code>Quelltext</code>. Seiten in diesem speziellen Namensraum müssen dem Dateinamen der Quelltextdatei entsprechen, die sie abbilden. Vor allem muss die Dateiendung die Programmiersprache abbilden, und er der Quelltext verfasst ist. Der Inhalt der Seite darf ausschließlich den Quelltext der Klasse umfassen, sonst nichts.  
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 <code>syntaxhighlight</code>!)
 
{{Hinweis|Der Namensraum soll in Zukunft um spezielle Funktionen erweitert werden, die das Herunterladen und interagieren mit Quelltexten erleichtern. Da diese Funktionen derzeit noch nicht installiert sind, können die Quelltexte zunächst noch um ein <code>syntaxhighlight</code>-Tag ergänzt werden.}}


Beispiele:
Beispiele:
* [[Quelltext:Tiere.java]]
* [[Quelltext:Tiere.java]]
* [[Quelltext:Formate.css]]
* [[Quelltext:Vieleck.llogo]]
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:
<pre>
{{Quelltext:Tiere.java}}
</pre>
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 <code>&lt;syntaxhighlight&gt;</code> gearbeitet werden. Stattdessen muss <code><nowiki>{{#tag:syntaxhighlight|{{Quelltext:Tiere.java}}|lang="java"}}</nowiki></code> benutzt werden.
{{Hinweis|Beim Einbinden als Vorlage auf diese Weise muss die Sprache mit <code>lang=</code> immer explizit angegeben werden.}}
Hinter dem <code>lang</code> Attribut können auch noch weitere [[mediawikiwiki:Extension:SyntaxHighlight#Parameters|Attribute der SyntaxHighlight Erweiterung]] eingefügt werden. Vor allem bietet sich <code>highlight=</code> 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.
<pre>
{{#tag:syntaxhighlight|{{Quelltext:Tiere.java}}|lang="java"|line=1|highlight="7-11"}}
</pre>
{{#tag:syntaxhighlight|{{Quelltext:Tiere.java}}|lang="java"|line=1|highlight="7-11"}}

Aktuelle Version vom 11. Februar 2022, 23:58 Uhr

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 {
}