Erweiterung:SyntaxHighlight
SyntaxHighlight Freigabestatus: stabil |
|
---|---|
Einbindung | Tag |
Beschreibung | Erlaubt die Hervorhebung von Syntax eines Quellcodes auf Wikiseiten |
Autor(en) |
|
Letzte Version | Laufende Aktualisierungen |
Kompatibilitätspolitik | Der Master behält die Abwärtskompatibilität bei. |
MediaWiki | 1.25+ |
Datenbankänderungen | Nein |
Lizenz | GNU General Public License 2.0 oder neuer |
Herunterladen | README |
|
|
<syntaxhighlight> |
|
Public wikis using | 11,760 (Ranked 8th) |
Übersetze die SyntaxHighlight-Erweiterung | |
Probleme | Offene Aufgaben · Einen Fehler melden |
Die SyntaxHighlight-Erweiterung, früher bekannt als SyntaxHighlight_GeSHi, stellt reiche Formatierung von Quellcode bei der Verwendung des Tags <syntaxhighlight>
bereit.
Sie wird von der Library Pygments angetrieben und unterstützt Hunderte von Programmiersprachen und Dateiformaten.
Genau wie die Tags <pre>
und <poem >
wird der Text genau so dargestellt, wie er getippt wurde und bewahrt so jegliche Leerzeichen.
The SyntaxHighlight extension does not work on wiki installations hardened using Hardened-PHP due to the lack of proc_open
, shell_exec
and other functions.
Siehe task T250763.
Der <syntaxhighlight>
-Tag ist seit 1.39 für 5.000 oder eine andere extreme Anzahl von Syntaxhighlight-Tags auf einer einzigen Seite, wie z.B. bei Wikibooks, belastend geworden.
Erhöhe in Extremfällen den Timeout-Wert des Webservers in der Umgebung.
(Siehe task T316858.)
Verwendung
Einmal installiert, kann man den "syntaxhighlight"-Tag auf Wikiseiten verwenden. Zum Beispiel
def quick_sort(arr):
less = []
pivot_list = []
more = []
if len(arr) <= 1:
return arr
else:
pass
ist das Ergebnis des folgenden Wikitext-Markups:
<syntaxhighlight lang="python" line>
def quick_sort(arr):
less = []
pivot_list = []
more = []
if len(arr) <= 1:
return arr
else:
pass
</syntaxhighlight>
In älteren Versionen (vor MediaWiki 1.16) benutzte die Erweiterung den Tag <source>
.
Dieser wird noch immer unterstützt, jedoch hilft <syntaxhighlight>
Konflikte zu vermeiden.
Gestaltung
Wenn der angezeigte Code zu groß ist, kann dieser angepasst werden, indem folgendes in die MediaWiki:Common.css Seite in Ihrem Wiki getan wird (wenn diese nicht existiert, muss sie erzeugt werden):
/* CSS, welches hier platziert wird, beeinflusst jedes Aussehen */
.mw-highlight pre {
font-size: 90%;
}
Um Codeblocks in Kanten einzuschließen, muss eine Zeile wie border: 1px dashed blue;
in die Sektion oben eingefügt werden.
Kontrolle über die verwendete Schriftartfamilie kann durch Einfügen einer Zeile wie font-family: "Courier New", monospace;
in die obere Sektion ausgeübt werden.
Kategorie für Syntaxhervorhebungsfehler
Die Erweiterung fügt Seiten, die ein fehlerhaftes lang
-Attribut in einem <syntaxhighlight>
-Tag haben zu einer tracking category hinzu.
Der Nachrichtenschlüssel MediaWiki:syntaxhighlight-error-category bestimmt den Kategorienamen; auf diesem Wiki ist das Category:Pages with syntax highlighting errors.
Der häufigste Fehler, der dazu führt, dass Seiten zu dieser Kategorie hinzugefügt werden ist ein <syntaxhighlight>
Tag ganz ohne lang
Attribut, da ältere Versionen dieser Erweiterung die Definition von $wgSyntaxHighlightDefaultLang
unterstützten.
Diese können üblicherweise entweder durch <pre>
ersetzt werden oder lang="bash"
oder lang="text"
kann zum Tag hinzugefügt werden.
Die Kategorie kann auch zugewiesen werden und der Inhalt nicht hervorgehoben werden, wenn der Text länger als 1000 Zeilen oder größer als 100 kB ist.[1]
Parameter
lang
Das lang="name"
Attribut definiert, welcher Lexer verwendet werden soll.
Die Auswahl der Sprache beeinflusst, wie der Quellcode hervorgehoben wird.
Details zu unterstützten Sprachen finden sich im Abschnitt Unterstützte Sprachen.
def quick_sort(arr):
less = []
<syntaxhighlight lang="python">
...
</syntaxhighlight>
Wenn ein ungültiger oder unbekannter Name verwendet wird, wird die Seite der Wartungskategorie zugeordnet. Für Details siehe den Abschnitt Kategorie mit Syntaxhervorhebungsfehlern.
line
Das line
Attribut aktiviert Zeilennummern.
def quick_sort(arr):
less = []
<syntaxhighlight lang="python" line>
...
</syntaxhighlight>
start
Das start
Attribut (in Kombination mit line
) definiert die erste Zeilennummer des Codeblocks.
Zum Beispiel bewirkt line start="55"
hier, dass die Nummerierung bei der Zahl 55 beginnt.
def quick_sort(arr):
less = []
<syntaxhighlight lang="python" line start="55">
...
</syntaxhighlight>
highlight
Das highlight
-Attribut definiert eine oder mehr Zeilen, die markiert werden sollen (indem diese Zeilen mit einer anderen Hintergrundfarbe hervorgehoben werden).
Man kann mehrere Zeilennummern kommasepariert (zum Beispiel highlight="1,4,8"
) angeben oder Bereiche, indem man zwei Zeilennummern mit einem Bindestrich angibt (zum Beispiel highlight="5-7"
).
start
.def quick_sort(arr):
less = []
pivot_list = []
more = []
if len(arr) <= 1:
return arr
ist das Ergebnis von
<syntaxhighlight lang="python" line start="3" highlight="1,5-7">
...
</syntaxhighlight>
inline
MediaWiki Version: | ≥ 1.26 |
Das Attribut weist darauf hin, dass der Quellcode Fließtext als Teil des Paragraphen sein soll (statt ein eigener Block zu sein). Diese Option ist ab MediaWiki 1.26 verfügbar.
class="nowrap"
(in den Wikis, die dies unterstützen; siehe unten) oder style="white-space:nowrap"
als nicht umbrechend markiert.Zum Beispiel:
Der folgende lambda x: x * 2
ist ein Lambdra-Ausdruck in Python.
ist das Ergebnis von:
Der folgende <syntaxhighlight lang="python" inline>lambda x: x * 2</syntaxhighlight> ist ein [[w:Lambda (programming)|Lambda-Ausdruck]] in Python.
class
Wenn inline
benutzt wird, bewirkt class="nowrap"
(auf Wikis, die es unterstützen; nicht auf MediaWiki selbst), dass keine Zeilenumbrücke bei Leerzeichen innerhalb des Codeblocks auftreten sollten.
Zum Beispiel:
Ohne class="nowrap"
:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxlambda x: x * 2
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Mit style="white-space:nowrap"
:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxlambda x: x * 2
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
style
Das style
-Attribut erlaubt es, CSS-Atribute direkt einzubinden.
Das ist das Gleiche, wie den Block in ein <div>
-(nicht <span>
-)Tag einzuschließen.
Das tab‑size
-Attribut kann nicht auf diese Weise gesetzt werden; es benötigt ein umschließendes <span>
-Tag, so wie unter Advanced beschrieben.
Zum Beispiel:
def quick_sort(arr):
less = []
pivot_list = []
more = []
if len(arr) <= 1:
return arr
else:
pass
ist das Ergebnis von:
<syntaxhighlight lang="python" style="border: 3px dashed blue;">
def quick_sort(arr):
less = []
pivot_list = []
more = []
if len(arr) <= 1:
return arr
else:
pass
</syntaxhighlight>
copy
MediaWiki Version: | ≥ 1.43 |
The copy
attribute adds a button link that copies the content to the clipboard when clicked.
inline
attribute. If both are specified, copy
will be ignored.For example:
def quick_sort(arr):
less = []
Is the result of:
<syntaxhighlight lang="python" copy>
def quick_sort(arr):
less = []
</syntaxhighlight>
Unterstützte Sprachen
Die Pygments-Bibliothek bietet Unterstützung für hunderte von Programmiersprachen und Dateiformaten, mit Hilfe der verschiedenen „Lexer“, die in der Bibliothek enthalten sind.
In den meisten Fällen wird für das Attribut lang=
, das mit dieser Erweiterung verwendet wird, der Namen der Sprache kleingeschrieben.
Viele haben jedoch Aliase oder „Abkürzungen“, wie sie in der Pygments-Dokumentation aufgeführt sind; siehe „Verfügbare Lexer“ für weitere Details.
Einige Sprachen, die zuvor von GeSHi unterstützt wurden, sind nun auf Pygments-Lexer umgestellt; siehe für Details SyntaxHighlightGeSHiCompat.php
.
Die vollständige Liste der Sprachen, die von Pygments unterstützt werden (Stand Januar 2020):
Programmiersprachen
- ActionScript
- Ada
- Agda (inkl. literate)
- Alloy
- AMPL
- ANTLR
- APL
- AppleScript
- Assembly (verschiedene)
- Asymptote
- Augeas
- AutoIt
- Awk
- BBC Basic
- Befunge
- BlitzBasic
- Boa
- Boo
- Boogie
- BrainFuck
- C, C++ (inkl. Dialekte wie Arduino)
- C#
- Chapel
- Charm++ CI
- Cirru
- Clay
- Clean
- Clojure
- CoffeeScript
- ColdFusion
- Common Lisp
- Component Pascal
- Coq
- Croc (MiniD)
- Cryptol (inkl. Literate Cryptol)
- Crystal
- Cypher
- Cython
- D
- Dart
- DCPU-16
- Delphi
- Dylan (inkl. console)
- Eiffel
- Elm
- Emacs Lisp
- Erlang (inkl. Shell-Sitzungen)
- Ezhil
- Factor
- Fancy
- Fantom
- Fennel
- FloScript
- Forth
- Fortran
- FreeFEM++
- F#
- GAP
- Gherkin (Cucumber)
- GLSL Shader
- Golo
- Gosu
- Groovy
- Haskell (inkl. Literate Haskell)
- HLSL
- HSpec
- Hy
- IDL
- Idris (inkl. Literate Idris)
- Igor Pro
- Io
- Jags
- Java
- JavaScript
- Jasmin
- Jcl
- Julia
- Kotlin
- Lasso (inkl. templating)
- Limbo
- LiveScript
- Logtalk
- Logos
- Lua
- Mathematica
- Matlab
- Modelica
- Modula-2
- Monkey
- Monte
- MoonScript
- Mosel
- MuPad
- NASM
- Nemerle
- NesC
- NewLISP
- Nimrod
- Nit
- Notmuch
- NuSMV
- Objective-C
- Objective-J
- Octave
- OCaml
- Opa
- OpenCOBOL
- ParaSail
- Pawn
- PHP
- Perl 5
- Pike
- Pony
- PovRay
- PostScript
- PowerShell
- Praat
- Prolog
- Python (inkl. Konsolensitzungen und Tracebacks)
- QBasic
- Racket
- Raku a.k.a. Perl 6
- REBOL
- Red
- Redcode
- Rexx
- Ride
- Ruby (inkl. irb sessions)
- Rust
- S, S-Plus, R
- Scala
- Scdoc
- Scheme
- Scilab
- SGF
- Shell-Skripte (Bash, Tcsh, Fish)
- Shen
- Silver
- Slash
- Slurm
- Smalltalk
- SNOBOL
- Snowball
- Solidity
- SourcePawn
- Stan
- Standard ML
- Stata
- Swift
- Swig
- SuperCollider
- Tcl
- Tera Term language
- TypeScript
- TypoScript
- USD
- Unicon
- Urbiscript
- Vala
- VBScript
- Verilog, SystemVerilog
- VHDL
- Visual Basic.NET
- Visual FoxPro
- Whiley
- Xtend
- XQuery
- Zeek
- Zephir
- Zig
Template-Sprachen
- Angular Templates
- Cheetah Templats
- ColdFusion
- Django/Jinja Templates
- ERB (Ruby templating)
- Evoque
- Genshi (die Trac Template Language)
- Handlebars
- JSP (Java Server Pages)
- Liquid
- Myghty (das HTML::Mason basierte Framework)
- Mako (der Nachfolger von Myghty)
- Slim
- Smarty Templates (PHP templating)
- Tea
- Twig
Andere Markup-Sprachen
- Apache Konfigurationsdateien
- Apache Pig
- BBCode
- CapDL
- Cap'n Proto
- CMake
- Csound Partituren
- CSS
- Debian Kontrolldateien
- Diff-Dateien
- Dockerfiles
- DTD
- EBNF
- E-Mail Kopfzeilen
- Extempore
- Flatline
- Gettext-Kataloge
- Gnuplot-Skript
- Groff-Markup
- Hexdumps
- HTML
- HTTP-Sitzungen
- IDL
- Inform
- INI-style Konfigurationsdateien
- IRC logs (irssi-Style)
- Isabelle
- JSGF-Notation
- JSON, JSON-LD
- Lean theorem prover
- Lighttpd Konfigurationsdateien
- Linux Kernel logs (dmesg)
- LLVM assembly
- LSL-Skripte
- Makefiles
- MoinMoin/Trac Wiki Markup
- MQL
- MySQL
- NCAR Befehlssprache
- Nginx Konfigurationsdateien
- Nix-Sprache
- NSIS-Skripte
- Notmuch
- POV-Ray-Szenen
- Puppet
- QML
- Ragel
- Redcode
- ReST
- Roboconf
- Robot Framework
- RPM spec-Dateien
- Rql
- RSL
- Scdoc
- SPARQL
- SQL, auch MySQL, SQLite
- Squid-Konfiguration
- TADS 3
- Terraform
- TeX
- Thrift
- TOML
- Treetop-Grammatiken
- USD (Universal Scene Description)
- Varnish-Configs
- VGL
- Vim Script
- WDiff
- Windows-Batch-Dateien
- XML
- XSLT
- YAML
- Windows Registry-Dateien
- ansys
- apdl
- asc
- gcode
- golang === go
- gsql
- jslt
- julia-repl
- kuin
- meson
- nestedtext
- nodejsrepl
- nt
- omg-idl
- output
- pem
- procfile
- pwsh
- smithy
- teal
- thingsdb
- ti
- wast
- wat
Bisher von GeSHi unterstützte Lexer
Anschließend folgt eine unvollständige Liste mit Sprachen, die GeSHi hervorheben konnte. Sprachen, die seit der Umstellung auf Pygments nicht mehr unterstützt werden, sind durchgestrichen.
Bisher von GeSHi unterstützte Lexer | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Installation
python3
) auf dem Server installiert. Dadurch unterscheidet sie sich von der Version, die in Mediawiki 1.30 enthalten war, welche Python in Version 2 (python
) verwendete. Zu beachten ist, dass die Python3
-Binary im Ausführungspfad des PHP-Interpreters installiert sein muss (PATH-Variable).- Die Erweiterung herunterladen und die Datei(en) in ein Verzeichnis namens
SyntaxHighlight_GeSHi
im Ordnerextensions/
ablegen.
Entwickler und Code-Beitragende sollten stattdessen die Erweiterung von Git installieren, mit:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/SyntaxHighlight_GeSHi - Wird von git aus installiert, ist Composer auszuführen, um PHP-Abhängigkeiten zu installieren, indem
composer install --no-dev
im Erweiterungsverzeichnis ausgeführt wird. (Siehe task T173141 für mögliche Komplikationen.) - Folgenden Code am Ende deiner LocalSettings.php -Datei einfügen:
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
- in Linux müssen Ausführungsberechtigungen für die "pygmentize"-Binary gesetzt werden. Dafür kann man einen FTP-Client oder den folgenden Shell-Befehl verwenden:
chmod a+x /path/to/extensions/SyntaxHighlight_GeSHi/pygments/pygmentize
- Erledigt – Navigiere zu Special:Version in deinem Wiki, um zu überprüfen, ob die Erweiterung erfolgreich installiert wurde.
Vagrant-Installation:
- Wird Vagrant benutzt, ist mit
vagrant roles enable syntaxhighlight --provision
zu installieren
Nach der Installation via Git wechselt man in das Verzeichnis, das die Erweiterung beinhaltet, z.B.
"../extensions/SyntaxHighlight_GeSHi/"
und führt composer install --no-dev
aus, oder bei einem Update composer update --no-dev
.Als bevorzugte Alternative kann die Zeile
"extensions/SyntaxHighlight_GeSHi/composer.json"
in die "composer.local.json"-Datei im root-Verzeichnis des Wikis eingetragen werden, z.B. so
{
"extra": {
"merge-plugin": {
"include": [
"extensions/SyntaxHighlight_GeSHi/composer.json"
]
}
}
}
composer update --no-dev
Voilà!
Konfiguration
$wgSyntaxHighlightMaxLines
and $wgSyntaxHighlightMaxBytes
(optional): For performance reasons, blobs or pages (JS, Lua and CSS pages) larger than these values will not be highlighted. (since 1.40)
- Linux
$wgPygmentizePath
(optional): Absoluter Pfad zu "pygmentize" aus dem Pygments-Paket. Die Erweiterung beinhaltet das Pygments-Paket und$wgPygmentizePath
zeigt standardmäßig auf die mitgelieferte Version. Man kann jedoch auf eine andere Version zeigen, wenn man will. Zum Beispiel:$wgPygmentizePath = "/usr/local/bin/pygmentize";
.
- Windows
- Wenn das Mediawiki auf einer Windows-Maschine gehostet wird, muss der Pfad zur Pygmentize.exe gesetzt werden:
$wgPygmentizePath = "c:\\Python27\\Scripts\\pygmentize.exe";
- Wenn es keine
pygmentize.exe
gibt, musseasy_install Pygments
per Kommandozeile von innerhalb desScripts
-Verzeichnisses ausgeführt werden, um die Datei zu erzeugen.
- Wenn es keine
Wenn die mitgelieferte pygmentize-Binary (extensions/SyntaxHighlight_GeSHi/pygments/pygmentize) verwendet wird, muss sichergestellt werden, dass der Webserver die Berechtigung hat, sie auszuführen.
Wenn der Host es nicht gestattet, ausführbare Dateien im Webverzeichnis zu hinterlegen, muss python-pygments installiert werden und $wgPygmentizePath = pygmentize
in LocalSettings.php
gesetzt werden.
- Fehlerbehebung
Einige Benutzer berichteten von Problemen mit der Erweiterung nach einem Update auf MediaWiki 1.26 oder höher. Es gab Fälle, wenn Sprachen wie Lua nicht hervorgehoben wurden und wenn Debugging angeschaltet wurde, schmiss MediaWiki den Fehler Notice: Failed to invoke Pygments: /usr/bin/env: python3: No such file or directory
.
- Versuche,
$wgPygmentizePath
in derLocalSettings.php
auf eine externe pygmentize-Binary zeigen zu lassen.
- In Shared-Hosting-Umgebungen mit cPanel kann dies durch das Einrichten einer neuen Python-Anwendung über das Menü „Setup Python App“ und die Aktivierung der virtuellen Umgebung für die Anwendung über SSH (
source /virtualenv/python/3.5/bin/activate
) erfolgen. Danach kann das Modul Pygments [1] zur Python-Anwendung hinzugefügt werden. Dazu zum Pfad der virtuellen Umgebung (cd virtualenv/python/3.5/bin/
) navigieren, Pygments herunterladen und installieren (./pip install Pygments
) und dann das Modul durch Hinzufügen von „Pygments“ unter dem Abschnitt „Vorhandene Anwendungen“ im Menü „Python-Anwendung einrichten“ aktivieren. Dadurch wird die erforderliche Datei im folgenden Pfad erstellt:virtualenv/python/3.5/bin/pygmentize
- In Shared-Hosting-Umgebungen mit cPanel kann dies durch das Einrichten einer neuen Python-Anwendung über das Menü „Setup Python App“ und die Aktivierung der virtuellen Umgebung für die Anwendung über SSH (
- phab:T128993 enthält weitere Vorschläge und Informationen.
- SELinux kann auch verhindern, dass die Erweiterung mit einem ähnlichen Fehler wie
type=AVC msg=audit(1609598265.169:225924): avc: denied { execute } for pid=2360888 comm="bash" name="pygmentize" dev="dm-0" ino=50814399 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:httpd_user_content_t:s0 tclass=file permissive=0
in deinem audit.log erscheint. Das kann mitsetsebool -P httpd_unified 1
erlaubt werden. - In früheren Versionen dieser Erweiterung hat Windows manchmal einen _Py_HashRandomization_Init-Fehler verursacht. Dies war ein Bug, bei dem die Windows-Umgebung nicht an Python-Aufrufe übergeben wurde. Ein Bugfix wurde in 1.40 veröffentlicht, mit Backports zu 1.38 und 1.39.
VisualEditor-Integration
Das Plugin ermöglicht direktes Editieren mit VisualEditor.
Es öffnet sich ein PopUp, wenn ein User syntaxhighlight
-Abschnitte bearbeiten will.
Damit das funktioniert, muss VisualEditor von der neuesten Git-Version installiert und konfiguriert werden. Gleiches gilt für Parsoid.
Diese Feature funktioniert willkürlich nicht mit älteren Parsoid-Versionen.
Für Details, siehe Extension:SyntaxHighlight/VisualEditor
Erweitert
Anders als bei <pre>
- und <code>
-Tags muss (und sollte) hier bei HTML-Zeichen-Gebilden wie
das &
-Zeichen nicht mittels &
escaped werden.
Wie beim <pre>
-Tag, aber anders als beim <code>
-Tag, muss bei Tags im Bereich (außer dem eigenen schließenden Tag) weder das <
-Symbol als <
escaped werden, noch muss Wikitext mit einem <nowiki>
-Tag escaped werden.
Während <pre>
davon ausgeht, dass alle 8 Zeichen ein Tabstopp auftritt und Tabs tatsächlich mittels Leerzeichen dargestellt werden, wenn der gerenderte Text kopiert wird, benutzt <syntaxhighlight>
Tabstopps aus nur 4 Leerzeichen (außer Internet Explorer, welcher 8 benutzt) und bewahrt die Tabstopp-Zeichen im gerenderten Text; letzteres Verhalten kann durch Einschließen in ein <span style="-moz-tab-size: nn; -o-tab-size: nn; tab-size: nn;">
-Tag geändert werden (nicht <div>
und nicht durch Verwendung eines eigenen style
-Attributs)
Das -moz-
-Präfis wird für Firefox (ab Version 4.0 bis Version 90) benötigt und das -o-
-Präfix wird für Opera (ab Version 10.60 bis Version 15) benötigt.[2]
(Beachten: Das Wiki-Editor-Kästchen geht von 8-Leerzeichen-Tabs aus.)
Dies bezieht sich nur auf tastächlich auch gespeicherte Seiten; Vorschauen, die durch ein Editieren-Kästchen oder Special:ExpandTemplates erzeugt wurden, können abweichen.
Siehe auch
- Pygments — Python syntax highlighter
- Erweiterungen, die von dieser abhängen:
- Extension:SyntaxHighlightPages — hebt Seiten basierend auf Titel-Suffixen hervor.
- Alternative Erweiterungen:
- Extension:Highlightjs Integration — Syntax-Highlighter, der die HighlightJS-Bibliothek verwendet (enthält Unterstützung für einige Sprachen, die in Pygments fehlen, wie Maxima).
- Extension:GoogleCodePrettify — Syntaxhervorhebung, die die "Google Code Prettify"-Bibliothek verwendet.
- Extension:ExternalContent — embed external content, such as code from GitHub, GitLab, and Bitkeeper repos with automatic rendering of Markdown files; and using syntax highlighting via the Prism.js library for nearly 300 supported languages. Content indexed by CirrusSearch
Fußnoten
Diese Erweiterung wird in einem oder mehreren Wikis von Wikimedia verwendet. Das bedeutet mit hoher Wahrscheinlichkeit, dass die Erweiterung stabil ist und gut genug funktioniert, um auf solch häufig besuchten Webseiten benutzt zu werden. Suche nach dem Erweiterungs-Namen in den Wikimedia CommonSettings.php und den InitialiseSettings.php-Konfigurations-Dateien, um nachzusehen, wo es installiert ist. Eine vollständige Liste der installierten Erweiterungen in einem bestimmten Wiki wird auf Special:Version im Wiki generiert und angezeigt. |
Diese Erweiterung ist in den folgenden Softwarepaketen enthalten und/oder wird von den folgenden Wiki-Farmen, bzw. Wiki-Hostern verwendet: Dies ist keine maßgebliche Liste. Softwarepakete und/oder Wiki-Farmen, bzw. Wiki-Hoster nutzen diese Erweiterung ggf., obwohl sie nicht in dieser Liste enthalten sind. Prüfe daher stets die Nutzung im verwendeten Softwarepaket und/oder bei der Wiki-Farm, bzw. dem Wiki-Hoster. |