Hilfe:Syntaxhighlight

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Hilfe:Source)
Wechseln zu: Navigation, Suche
Abkürzung: H:SYH
Hilfe > Wikisyntax > Syntaxhighlight

Syntaxhighlight („Syntaxhervorhebung“) ist eine von Brion Vibber programmierte Erweiterung der MediaWiki-Software zur Darstellung von Programm-Quelltexten auf Wiki-Seiten, basierend auf GeSHi. Die Quelltexte werden ihrer Syntax entsprechend farblich dargestellt.[1]

Syntax[Bearbeiten]

Syntax zur Erstellung von Quelltexten:

<syntaxhighlight lang="php">
<?php
  echo "Hallo Welt!";
?>
</syntaxhighlight>

Ausgabe:

<?php
  echo "Hallo Welt!";
?>


Alternativ kann auch <source> genutzt werden, falls das zu markierende Beispiel ein Tag <syntaxhighlight> enthält. Bis 2009 war <source> das bevorzugte Element. Nachdem in HTML5 ein Multimedia-Element gleichen Namens eingeführt worden war, wurde die Präferenz getauscht. Zwar ist ohnehin keine unmittelbare Verwendung derartiger HTML-Elemente in einem Wikitext möglich, aber Bearbeiter sollten nicht durch gleichnamige Elemente völlig unterschiedlicher Bedeutung verwirrt werden. Und <source> könnte im dargestellten HTML-Beispiel vorkommen.

Parameter[Bearbeiten]

Die Angabe von lang ist Pflichtparameter. Optional gibt es außerdem:

enclose Art der Einbindung
highlight Zeilen hervorheben
line Zeilennummern anzeigen
start Zeilennummer-Beginn
class

style
id
title
dir

Standard-Parameter
enclose
  • <syntaxhighlight enclose="none" lang="css">
    <syntaxhighlight enclose="none" lang="css">table {display:none;}</syntaxhighlight>
    Damit kann formatierter Computercode innerhalb eines Absatzes erzeugt werden. Beispiel: „Dies ist ein Test um zu zeigen, dass beispielsweise CSS-Code table {display:none;} inline dargestellt werden kann.“
highlight
<syntaxhighlight line enclose="div" highlight="3-5" lang="php">
Die Zeilen 3 bis 5 werden hellgelb unterlegt.
  1. <?php
  2.   echo "Hallo Welt!";
  3.   echo "Hallo Welt!";
  4.   echo "Hallo Welt!";
  5.   echo "Hallo Welt!";
  6.   echo "Hallo Welt!";
  7.   echo "Hallo Welt!";
  8. ?>


line[2]
<syntaxhighlight line lang="php">
Die Zeilen werden durchnummeriert, jede fünfte Zeilennummer wird hervorgehoben.
  1. <?php
    
  2.   echo "Hallo Welt!";
    
  3.   echo "Hallo Welt!";
    
  4.   echo "Hallo Welt!";
    
  5.   echo "Hallo Welt!";
    
  6.   echo "Hallo Welt!";
    
  7.   echo "Hallo Welt!";
    
  8. ?>
    


start[2]
<syntaxhighlight line start="10" lang="php">
Die Zeilen werden durchnummeriert, die Zeilenzählung beginnt bei 10.
  1. <?php
    
  2.   echo "Hallo Welt!";
    
  3. ?>
    


Unterstützte Sprachen[Bearbeiten]

Die folgenden Sprachen werden von dieser Erweiterung unterstützt:[3]

Anpassungen[Bearbeiten]

Die Ausgabe kann über MediaWiki:Geshi.css für alle Benutzer angepasst werden, für benutzerspezifische Anpassungen siehe Skin/CSS.

Weiterhin kann über den Parameter style= die aktuelle Einbindung angepasst werden, etwa Rahmen oder Einrückung.

  • Seit Mitte 2012[4] werden die Blöcke nicht mehr als <div> eingefügt, sondern (wenn nicht mit enclose="none" markiert) als <pre> mit dem hier standardmäßig vorgesehenen Rahmen.
    • Das ist bei einem mehrzeiligen Block sinnvoll; bei nur ein oder zwei Zeilen kann dies aber störend wirken.
    • style="border: none; padding: 0;"
      reduziert die Dekoration weitestmöglich.

Vorlagenprogrammierung[Bearbeiten]

Bei der Vorlagenprogrammierung ist auf die Reihenfolge der Parameter zu achten. Es muss zwingend als erster Parameter der Content übergeben werden. Anschließend können die Angaben zur Sprache und dem umschließenden HTML-Tag erfolgen. Zudem dürfen keine Zeilenumbrüche zwischen den einzelnen Parametern enthalten sein.

{{#tag:syntaxhighlight|{{{code}}}|lang={{#if:{{{language|}}}|{{{language}}}|diff}}|enclose=div}}

Anschließend kann eine so entworfene Vorlage mit den Parametern

{{Vorlagenname
| language = 
| code =
}}

aufgerufen werden. Als Beispiel für eine solche Verwendung sei auf die Vorlage Patch verwiesen.

Der Code kann auch aus einer vollständigen Seite eingebunden werden:

{{#tag:syntaxhighlight | {{Modul:Hello}} | lang=lua}}

liefert

 local p = {} 
function p.hello(frame)
    local name = frame.args[1]
    if not name then 
        name = 'Welt' 
    end
    return  'Hallo, ' .. name .. '! Dies ist Lua!' 
end 
return p

Weitere Informationen[Bearbeiten]

 MediaWiki: Extension:SyntaxHighlight GeSHi – Technische Informationen (englisch)

Hinweise[Bearbeiten]

  1. Falls du in deinen Einstellungen die Option Vorschau sofort anzeigen (experimentell) ausgewählt hast, wird Syntaxhighlight in der Vorschau einer Seite nicht angezeigt. Sie muss dann gespeichert werden, um sichtbar zu sein.
  2. a b Die Ausgabe erfolgt immer in einem <div>…</div>-Element, dies kann auch durch die enclose-Angabe nicht geändert werden.
  3. Bei Dialekten und Varianten wird der gleiche optische Effekt meist auch mit der Stamm-Sprache erreicht.
  4. Bugzilla:19416, rev:113190