3.15 Syntax-Highlighting für Code / Listings

Highlighting für Code[]

Die LOOP-Erweiterung für Syntax-Highlighting ermöglicht die übersichtliche Darstellung von Programmlisten.

http://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi

Beispiel

<source lang="java" line>

public class Thread1 extends Thread { private int counter = 0; ... } </source>

Parameter source-Tag[]

Über Parameter haben Sie die Möglichkeit das Verhalten des Tags <source> </source> zu verändern.


Parameter gültige Werte Beispiel
lang="" Text <source lang="java">Code</source>
line (kein Wert) <source line>Code</source>
line start="" # <source line start="3">Code</source>
highlight="" #-# <source highlight="3-5">Code</source>


lang[]

Beispiel

Code:

<source lang="java"> public class Thread1 extends Thread { private int counter = 0; ... } </source>

Ergebnis:

public class Thread1 extends Thread {
	private int counter = 0;
...
}


line[]

Beispiel

Code:

<source lang="java"> public class Thread1 extends Thread { private int counter = 0; ... } </source>

Ergebnis:

public class Thread1 extends Thread {
	private int counter = 0;
...
}


line start[]

Beispiel

Code:

<source lang="java"> public class Thread1 extends Thread { private int counter = 0; ... } </source>

Ergebnis:

public class Thread1 extends Thread {
	private int counter = 0;
...
}


highlight[]

Beispiel

Code:

<source lang="java"> public class Thread1 extends Thread { private int counter = 0; ... } </source>

Ergebnis:

public class Thread1 extends Thread {
	private int counter = 0;
...
}






Das Ergebnis auf der Seite sieht dann wie folgt aus:

Download Thread1.java

public class Thread1 extends Thread {
	private int counter = 0;
	private boolean doCount;
	JTextField textField = null;

	public Thread1(JTextField textField,
			boolean doCount ) {
		this.textField = textField;
		this.doCount = doCount;
	} // Konstruktor
	
	public void setDoCount(boolean doCount) {
		this.doCount = doCount;
	} // switchDoCount
	
	public void run() {

		while (true) {
			try {
				Thread.sleep(100);
			} catch(InterruptedException e) {
				System.err.println("Programm wurde abgebrochen");
			} // catch
			if (doCount) {
				counter++;
				textField.setText(new Integer(counter).toString());
			} // if
		} // while
		
	} // startProgramm
	
} // class Thread1

Der Tag "source" wurde bei Mediawiki inzwischen durch "syntaxhighlight" abgelöst. Wenn man die Nummerierung nicht haben möchte, lässt man die Option "line" weg. Dann bleibt jedoch eine störende Randbegrenzung links und unten zurück, die man mit der Option "enclose="none"" entfernen kann.



Highlighting für Listings[]

Für die Einbindung von Programmlisten in LOOP gibt es einen eigenen Bereichstag (<loop_listing> </loop_listing>). Dieser kann mittels eigenen Parametern, unabhängig von <source> </source>, mit Titel, Beschreibung uvm. beeinflusst kann.

<loop_example>

public class Thread1 extends Thread {
	private int counter = 0;
...
}

</loop_example>

Parameter listing-Tag[]

Über Parameter haben Sie die Möglichkeit das Verhalten des Tags <loop_listing> </loop_listing> zu beinflussen.

Parameter gültige Werte Standard
title Text nicht gesetzt
description Text nicht gesetzt
copyright Text nicht gesetzt
index true, false true
render none, icon, marked marked bzw. Wert der Konfigurationsvariable $wgLoopTableDefaultRenderOption
show_copyright true, false false

Im folgenden werden die einzelnen Parameter detailierter erklärt.


title[]

Mit dem Paramter title können Sie den Titel des Listings setzen. Der Titel wird oberhalb des Listings und im Listingverzeichnis angezeigt.

Beispiel
<loop_listing title="Listingtitel">
 Programmcode
</loop_listing>
Wichtig

Wichtig: Nur wenn Sie einen Titel angegeben haben funktioniert ein Springen aus dem Listingverzeichnis an die richtige Stelle der Seite. Ist kein Titel angegeben führt der Link im Listingverzeichnis zwar auf die richtige Seite aber nicht direkt zu der Stelle an der sich das Listing befindet.

description[]

Mit dem Paramter description können Sie die Beschreibung des Listings setzen. Die Beschreibung wird unterhalb des Listings und im Listingverzeichnis angezeigt.

Beispiel
<loop_listing description="Listingbeschreibung">
 Programmcode
</loop_listing>

copyright[]

Mit dem Paramter copyright können Sie die Copyrighthinweis des Listings setzen. Der Copyrighthinweis wird unterhalb der Beschreibung und im Listingverzeichnis angezeigt.

Hinweis

Der Copyrighthinweis wird nur angezeigt wenn der Parameter show_copyright denn Wert true besitzt.

Beispiel
<loop_listing copyright="Copyrighthinweis">
 Programmcode
</loop_listing>

index[]

Mit dem Parameter index können Sie beinflussen, ob das Listing im Listingverzeichnis angezeigt werden oder nicht. Auf die Anzeige des Listings auf der Seite hat der Parameter keinen Einfluss (siehe hierzu render).

Beispiel
<loop_listing index="false">
 Programmcode
</loop_listing>

render[]

Mit dem Parameter render können Sie beinflussen wie Listings auf der Seite dargestellt werden. Auf die Indexierung des Listings für das Listingverzeichnis hat der Parameter keinen Einfluss (siehe hierzu index).

Ist der Parameter render nicht angeben wird der Standardwert marked verwendet. Dieser Standard kann in der Konfigurationsdatei LocalSettings.php über die Variable $wgLoopListingDefaultRenderOption auf einen der Werte none, icon oder marked gesetzt werden.

Beispiel

none

<loop_listing render="none">
 Programmcode
</loop_listing>
Programmcode


Beispiel

icon

<loop_listing render="icon">
 Programmcode
</loop_listing>
Programmcode


Beispiel

marked

<loop_listing render="marked">
 Programmcode
</loop_listing>
Programmcode

show_copyright[]

Mit dem Parameter copyright können Sie beinflussen, ob unterhalb der Beschreibung ein Copyrighthinweis angezeigt wird, oder nicht.

Beispiel
<loop_listing copyright="Copyrighthinweis" show_copyright="true">
 Programmcode
</loop_listing>


Programmcode


Code

Es gibt übrigens auch einen Seitenbereich vom Typ sourcecode