Extension:SyntaxHighlight
![]() État de la version : stable |
|
---|---|
![]() |
|
Implémentation | Balise |
Description | Permet de mettre en évidence la syntaxe du code source sur les pages wiki |
Auteur(s) |
|
Dernière version | mises à jour continues |
Politique de compatibilité | Le master conserve la compatibilité arrière. |
MediaWiki | 1.25+ |
Modifie la base de données |
Non |
Licence | Licence publique générale GNU v2.0 ou supérieur |
Téléchargement | README |
|
|
<syntaxhighlight> |
|
Utilisé par les wikis publics | 11,760 (Ranked 8th) |
Traduire l’extension SyntaxHighlight | |
Problèmes | Tâches ouvertes · Signaler un bogue |
L'extension SyntaxHighlight, anciennement connue sous le nom de SyntaxHighlight_GeSHi, fournit un formatage riche du code source à l'aide de la balise <syntaxhighlight>
.
Il est alimenté par la bibliothèque Pygments et prend en charge des centaines de langages de programmation et de formats de fichiers différents.
Comme les balises <pre>
et <poem >
, le texte est affiché exactement comme il a été tapé, en préservant tous les espaces.
L'extension SyntaxHighlight ne fonctionne pas sur les installation wiki hardened en utilisant Hardened-PHP du au manque de proc_open
, shell_exec
et d'autres fonctions.
Voir T250763.
Le tag <syntaxhighlight>
est devenu très coûteux depuis la 1.39 pour 5,000 ou une autre quantité extrême de balises de surbrillance de syntaxe dans une seule page, comme pour Wikibooks.
Augmenter la valeur de temps de délais du serveur Web dans des environnements dans des cas extrêmes.
(Voir T316858).
Utilisation
Une fois installé, vous pouvez utiliser les balises "syntaxhighlight" sur les pages wiki. Par exemple,
def quick_sort(arr):
less = []
pivot_list = []
more = []
if len(arr) <= 1:
return arr
else:
pass
est le résultat de la balise de texte wiki suivante:
<syntaxhighlight lang="python" line>
def quick_sort(arr):
less = []
pivot_list = []
more = []
if len(arr) <= 1:
return arr
else:
pass
</syntaxhighlight>
Dans les versions plus anciennes (avant MediaWiki 1.16), l'extension utilisait la balise <source>
.
Cette balise est toujours supportée, mais obsolète. <syntaxhighlight>
devrait être utilisé à la place.
Mise en forme
Si le code affiché est trop important, vous pouvez l'ajuster en mettant ce qui suit dans la page MediaWiki:Common.css dans votre wiki (créer la si elle n'existe pas) :
/* Le CSS placé ici sera appliqué à tous les skins */
.mw-highlight pre {
font-size: 90%;
}
L'encapsulation de blocs de code dans des bordures peut être effectuée en insérant une ligne comme border: 1px dashed blue;
dans la section ci-dessus
Le contrôle sur la « famille de polices » utilisée peut également être exercé en insérant une ligne comme font-family: "Courier New", monospace;
dans la section ci-dessus.
Catégorie d'erreurs de la mise en forme de la syntaxe
L'extension ajoute les pages qui ont un mauvais attribut lang
dans une balise <syntaxhighlight>
à une catégorie de suivi.
La clé de message MediaWiki:syntaxhighlight-error-category détermine le nom de la catégorie; sur ce wiki, c'est Category:Pages with syntax highlighting errors.
L'erreur la plus courante qui conduit à la marque de pages avec cette catégorie est une balise <syntaxhighlight>
sans attribut lang
du tout, car les versions plus anciennes de cette extension prennent en charge la définition de $wgSyntaxHighlightDefaultLang
.
Ceux-ci peuvent généralement être remplacés par <pre>
, ou lang="bash"
ou lang="text"
peuvent être ajoutés à la balise.
La catégorie peut également être ajoutée, et le contenu ne sera pas mis en évidence, s'il y a plus de 1000 lignes ou plus de 100 kB de texte.[1]
Paramètres
lang
L'attribut lang="name"
définit quel lexer doit être utilisé.
Le langage affecte la façon dont l'extension met en évidence le code source.
Voir la section #Languages supportés pour le détail des langages supportés.
def quick_sort(arr):
less = []
<syntaxhighlight lang="python">
...
</syntaxhighlight>
En indiquant un nom non valide ou inconnu, la page sera marquée par une catégorie de suivi. Voir la section Catégorie d'erreurs de Syntax highlighting dans cette page pour des détails.
line
L'attribut line
permet d'afficher les numéros des lignes.
def quick_sort(arr):
less = []
<syntaxhighlight lang="python" line>
...
</syntaxhighlight>
start
L'attribut start
(en combinaison avec line
) définit le premier numéro de ligne du bloc de code.
Par exemple, line start="55"
fera que le numérotation de ligne commence à 55.
def quick_sort(arr):
less = []
<syntaxhighlight lang="python" line start="55">
...
</syntaxhighlight>
linelinks
Version de MediaWiki : | ≥ 1.36 Gerrit change 653142 |
L'attribut linelinks
(en combinaison avec line
) ajoute des ancres de lien à chaque ligne du bloc de code.
Vous pouvez cliquer sur les numéros de lignes pour obtenir un lien qui met en évidence la ligne sélectionnée et les utiliser dans les liens internes et externes.
Vous pouvez également maintenir ⇧ Shift et cliquer sur un autre numéro de ligne pour obtenir un lien mettant en évidence la plage de lignes sélectionnée (Depuis MediaWiki 1.42 • change 1007640).
Lorsque JavaScript est désactivé, des surlignements sur une seule ligne peuvent être créés et ceux existants sautent au bon emplacement, mais le surlignement est manquant. Cependant, les surlignements de plage ne fonctionnent pas du tout, alors envisagez d'utiliser des surlignements sur une seule ligne uniquement pour l'accessibilité si cela est vraiment possible.
La valeur de l'attribut est utilisée comme préfixe pour les ancres, pour distinguer plusieurs blocs de code sur une seule page.
Cliquez ici pour passer à la ligne 3 dans le bloc de code ci-dessus. Cliquez ici pour accéder directement aux lignes 2 à 4 du bloc de code ci-dessus et les mettre en surbrillance.
<syntaxhighlight lang="python" line linelinks="example">
...
</syntaxhighlight>
[[#example-3|...]]
[[#example-2--example-4|...]]
highlight
L'attribut highlight
spécifie une ou plusieurs lignes qui doivent être marquées (en mettant en évidence ces lignes avec une couleur d'arrière-plan différente).
Vous pouvez spécifier plusieurs numéros de lignes séparés par des virgules (par exemple, highlight="1,4,8"
) ou des intervalles en utilisant deux numéros et un trait d'union (par exemple , highlight="5-7"
).
start
.def quick_sort(arr):
less = []
pivot_list = []
more = []
if len(arr) <= 1:
return arr
est le résultat de
<syntaxhighlight lang="python" line start="3" highlight="1,5-7">
...
</syntaxhighlight>
inline
Version de MediaWiki : | ≥ 1.26 |
L'attribut indique que le code source doit être intégré dans un paragraphe (par opposition à son propre bloc). Cette option est disponible à partir de MediaWiki 1.26.
class="nowrap"
(sur les wikis qui le prennent en charge; voir ci-dessous) ou style="white-space:nowrap"
.Par exemple :
Le lambda x: x * 2
suivant est une lambda expression en Python.
Est le résultat de :
Le <syntaxhighlight lang="python" inline>lambda x: x * 2</syntaxhighlight> suivant est une [[w:Lambda (programming)|lambda expression]] en Python.
class
Lorsque inline
est utilisé, class="nowrap"
(sur les wikis qui le prennent en charge ; pas sur MediaWiki lui-même) spécifie que les sauts de ligne ne doivent pas se produire aux espaces dans le bloc de code.
Par exemple :
Sans class="nowrap"
:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxlambda x: x * 2
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Avec style="white-space:nowrap"
:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxlambda x: x * 2
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
style
L'attribut style
permet d'inclure directement des attributs CSS.
Cela équivaut à enfermer le bloc dans une balise <div>
(et non <span>
).
L'attribut tab‑size
ne peut pas être spécifié de cette façon ; il nécessite une balise <span>
englobante comme décrit ci-dessous sous Avancé.
Par exemple :
def quick_sort(arr):
less = []
pivot_list = []
more = []
if len(arr) <= 1:
return arr
else:
pass
Est le résultat de :
<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
Version de MediaWiki : | ≥ 1.43 |
L'attribut copy
ajoute un lien sur le bouton qui copie le contenu dans le presse papier en cliquant dessus.
inline
. Si les deux sont spécifiés, copy
sera ignoré.Par exemple:
def quick_sort(arr):
less = []
Est-il le résultat de:
<syntaxhighlight lang="python" copy>
def quick_sort(arr):
less = []
</syntaxhighlight>
Langues prises en charge
Pygments fournit une prise en charge pour mettre en évidence la syntaxe de centaines de langues informatiques et de formats de fichiers à travers les différents "analyseurs lexicaux" inclus dans la bibliothèque.
Dans la plupart des cas, l'attribut lang=
à utiliser avec cette extension est la version en minuscules du nom de la langue.
Cependant, beaucoup ont des pseudonymes, ou "abréviations" comme on les appelle dans la documentation de Pygments; voir "Analyseurs disponibles" pour plus de détails.
Certains langages supportés par GeSHi ont été associés à des analyseurs Pygments; voir SyntaxHighlightGeSHiCompat.php
pour les détails.
En janvier 2020, la liste complète des langues prise en charge par Pygments est :
Langages de programmation
- ActionScript
- Ada
- Agda (y compris le litéral)
- Alloy
- AMPL
- ANTLR
- APL
- AppleScript
- Assemblage (divers)
- Asymptote
- Augeas
- AutoIt
- Awk
- BBC Basic
- Befunge
- BlitzBasic
- Boa
- Boo
- Boogie
- BrainFuck
- C, C++ (y compris les dialectes comme Arduino)
- C#
- Chapel
- Charm++ CI
- Cirru
- Clay
- Clean
- Clojure
- CoffeeScript
- ColdFusion
- Common Lisp
- Component Pascal
- Coq
- Croc (MiniD)
- Cryptol (y compris le cryptol littéral)
- Crystal
- Cypher
- Cython
- D
- Dart
- DCPU-16
- Delphi
- Dylan (y compris la console)
- Eiffel
- Elm
- Emacs Lisp
- Erlang (y compris les sessions shell)
- Ezhil
- Factor
- Fancy
- Fantom
- Fennel
- FloScript
- Forth
- Fortran
- FreeFEM++
- F#
- GAP
- Gherkin (Cucumber)
- GLSL shaders
- Golo
- Gosu
- Groovy
- Haskell (y compris le Haskell littéraire)
- HLSL
- HSpec
- Hy
- IDL
- Idris (y compris Idris littéraire)
- Igor Pro
- Io
- Jags
- Java
- JavaScript
- Jasmin
- Jcl
- Julia
- Kotlin
- Lasso (y compris les modèles)
- 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 (y compris les sessions de console et les trace-backs)
- QBasic
- Racket
- Raku a.k.a. Perl 6
- REBOL
- Red
- Redcode
- Rexx
- Ride
- Ruby (y compris les sessions irb)
- Rust
- S, S-Plus, R
- Scala
- Scdoc
- Scheme
- Scilab
- SGF
- Les scripts (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
Langages de modèles
- Templates angular
- Templates Cheetah
- ColdFusion
- Templates Django / Jinja
- ERV (modèles Ruby)
- Evoque
- Genshi (langue du modèle Trac)
- Barres de saisie
- JSP (pages de serveur Java)
- Liquid
- Myghty (le framework basé sur le HTML::Mason)
- Mako (le successeur de Myghty)
- Slim
- Templates intelligents (templates PHP)
- Tea
- Twig
Autres balisages
- Fichiers de configuration Apache
- Apache Pig
- BBCode
- CapDL
- Cap'n Proto
- CMake
- scores Csound
- CSS
- Fichiers de contrôle Debian
- Différences de fichiers
- Dockerfiles
- DTD
- EBNF
- En-tête de courrier électronique
- Extempore
- Flatline
- catalogues Gettext
- Script Gnuplot
- Marquage Groff
- Hexdump
- HTML
- Sessions HTTP
- IDL
- Inform
- Fichiers de configuration INI-style
- Les journaux IRC (style irssi)
- Isabelle
- Notation de la JSGF
- JSON, JSON-LD
- Prouver le théorème de Lean
- Fichiers de configuration de lighttpd
- Log du noyau Linux (dmesg)
- Assembleur LLVM
- Scripts LSL
- Makefiles
- Marquage MoinMoin/Trac Wiki
- MQL
- MySQL
- Langue de commande NCAR
- Fichiers de configuration Nginx
- langage Nix
- Scripts NSIS
- Notmuch
- Scènes POV-Ray
- Puppet
- QML
- Ragel
- Redcode
- ReST
- Roboconf
- Robot Framework
- Fichiers de spécifications RPM
- Rql
- RSL
- Scdoc
- SPARQL
- SQL, aussi MySQL, SQLite
- configuration Squid
- TADS 3
- Terraform
- TeX
- Thrift
- TOML
- grammaires Treetop
- USD (Universal Scene Description)
- configurations Varnish
- VGL
- Vim Script
- WDiff
- Fichiers de batch Windows
- XML
- XSLT
- YAML
- Fichiers du Registre Windows
- 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
Lexers précédemment supportés par GeSHi
Vous trouverez ci-dessous une liste partielle des langues que GeSHi pouvait mettre en évidence, avec les langues qui ne sont plus prises en charge après le passage à Pygments barrées.
Lexers précédemment supportés par GeSHi | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Installation
python3
) soit installé sur le serveur. C'est un changement par rapport à la version fournie avecMediaWiki 1.30, qui utilise Python version 2 (python
). A noter que le binaire python3
doit être installé dans le path de l'interpréteur PHP.- Téléchargez et placez le(s) fichier(s) dans un répertoire appelé
SyntaxHighlight_GeSHi
dans votre dossierextensions/
.
Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/SyntaxHighlight_GeSHi - Seulement lorsque vous installez à partir de Git, exécutez Composer pour installer les dépendances PHP, en entrant
composer install --no-dev
après vous être positionné dans le répertoire de l'extension. (Voir T173141 pour des complications potentielles.) - Ajoutez le code suivant à la fin de votre fichier LocalSettings.php :
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
- Sous Linux, définir les autorisations d'exécution pour le binaire pygmentize. Vous pouvez utiliser un client FTP ou la commande shell suivante pour le faire:
chmod a+x /path/to/extensions/SyntaxHighlight_GeSHi/pygments/pygmentize
- Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.
Installation Vagrant :
- Si vous utilisez Vagrant , installez avec
vagrant roles enable syntaxhighlight --provision
Ainsi, après l'installation depuis Git, accédez au répertoire contenant l'extension, par exemple
"../extensions/SyntaxHighlight_GeSHi/"
et exécutez composer install --no-dev
, ou lors de la mise à jour : composer update --no-dev
.Alternativement et de préférence, ajoutez la ligne
"extensions/SyntaxHighlight_GeSHi/composer.json"
au fichier « composer.local.json » dans le répertoire racine de votre wiki comme par exemple
{
"extra": {
"merge-plugin": {
"include": [
"extensions/SyntaxHighlight_GeSHi/composer.json"
]
}
}
}
composer update --no-dev
. Voilà!Configuration
$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
(facultatif) : chemin absolu vers pygmentize du package Pygments. L'extension regroupe le package Pygments et$wgPygmentizePath
pointe vers la version fournie par défaut, mais vous pouvez pointer vers une version différente, si vous le souhaitez. Par exemple:$wgPygmentizePath = "/usr/local/bin/pygmentize";
.
- Windows
- Si vous hébergez votre MediaWiki sur une machine Windows, vous devez définir le chemin pour le
$wgPygmentizePath = "c:\\Python27\\Scripts\\pygmentize.exe";
Pygmentize.exe- S'il n'y a pas de binaire
pygmentize.exe
, exécutezeasy_install Pygments
depuis la ligne de commande dans le dossierScripts
pour générer le fichier.
- S'il n'y a pas de binaire
Si vous utilisez le binaire pygmentize fourni (extensions/SyntaxHighlight_GeSHi/pygments/pygmentize), assurez-vous que votre serveur Web est autorisé à l'exécuter.
Si votre hôte ne vous permet pas d'ajouter des exécutables à votre répertoire Web, installez python-pygments et ajoutez $wgPygmentizePath = pygmentize
à LocalSettings.php
.
- Dépannage
Après avoir mis à jour MediaWiki v1.26 et plus, certains utilisateurs ont commencé à signaler des problèmes avec l'extension. Il pourrait y avoir des cas où certaines langues, telles que "Lua", pourraient ne pas être mises en surbrillance et en activant le debugging, MediaWiki renverrait l'erreur Notice: Failed to invoke Pygments: /usr/bin/env: python3: No such file or directory
.
- Essayez de pointer
$wgPygmentizePath
dansLocalSettings.php
vers un binaire pygmentize externe.
- Dans les environnements d'hébergement partagé avec cPanel, cela peut être fait en configurant une nouvelle application Python via le menu "Configurer Python App", et en activant l'environnement virtuel de l'application via SSH (
source /virtualenv/python/3.5/bin/activate
). Après cela, le module Pygments du module peut être ajoutée à l'application Python, pour lequel naviguer vers le chemin de l'environnement virtuel (cd virtualenv/python/3.5/bin/
), télécharger et installer Pygments (./pip install Pygments
) puis activer le module en ajoutant "Pygments" sous la section "Applications existantes" du menu "Configuration d'application Python". Cela créera le fichier requis sur le chemin:virtualenv/python/3.5/bin/pygmentize
- Dans les environnements d'hébergement partagé avec cPanel, cela peut être fait en configurant une nouvelle application Python via le menu "Configurer Python App", et en activant l'environnement virtuel de l'application via SSH (
- Voir phab:T128993 sur ce sujet pour plus de suggestions et d'informations.
- SELinux peut également empêcher l'extension d'être exécutée avec une erreur similaire à
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
dans votre audit.log. Cela peut être autorisé avecsetsebool -P httpd_unified 1
- Dans les versions antérieures de cette extension, Windows échouerait parfois avec une erreur de _Py_HashRandomization_Init. Il s'agissait d'un bug avec l'environnement Windows qui n'était pas transmis aux exécutions Python. Un correctif a été publié dans la version 1.40, avec des rétroportages vers les versions 1.38 et 1.39.
Intégration de VisualEditor
Le plugin permet l'édition directe avec VisualEditor.
Une fenêtre contextuelle est ouverte lorsqu'un utilisateur souhaite modifier les sections syntaxhighlight
.
Pour que cela fonctionne, VisualEditor doit être installé et configuré à partir de la dernière version de Git, la même chose pour Parsoid.
La fonctionnalité peut ne pas fonctionner avec les versions plus anciennes de Parsoid.
Voir Extension:SyntaxHighlight/VisualEditor pour les détails.
Utilisation avancée
Contrairement aux balises <pre>
et <code>
, les entités de caractères HTML telles que
n'ont pas besoin (et ne devraient pas) avoir le caractère &
échappé sous la forme &
Comme la balise <pre>
mais contrairement à la balise <code>
, les balises dans la plage (autres que sa propre balise de fermeture) n'ont pas besoin d'avoir le symbole <
échappé comme <
, et le wikitext n'a pas besoin d'être échappé avec une balise <nowiki>
.
De plus, alors que <pre>
suppose des tabulations tous les 8 caractères et rend les tabulations en utilisant des espaces réels lorsque le texte rendu est copié, <syntaxhighlight>
utilise des tabulations à 4 espaces (sauf Internet Explorer, qui en utilise 8) et préserve les caractères de tabulation dans le texte rendu ; ce dernier peut être modifié en utilisant une balise <span style="-moz-tab-size: nn; -o-tab-size: nn; tab-size: nn;">
englobante (pas <div>
, et sans utiliser son propre attribut style
).
Le préfixe -moz-
est nécessaire pour Firefox (de la version 4.0 à la version 90), et le préfixe de -o-
est nécessaire pour Opera (de la versions 10.60 à la version 15).[2]
(Notez que la boîte d'édition du wiki suppose des tabulations de 8 espaces.)
Ceci ne s'applique qu'aux pages enregistrées réelles; les prévisualisations générées par une boîte de rédaction ou Special:ExpandTemplates peuvent différer.
Voir aussi
- Pygments — Python syntax highlighter
- Extensions dépendantes de cette:
- Extension:SyntaxHighlightPages — met en évidence les pages en fonction des suffixes de titre.
- Extensions alternatives:
- Extension:Highlightjs Integration — un metteur en évidence de syntaxe qui utilise la bibliothèque HighlightJS (inclut la prise en charge de certaines langues manquantes dans les Pygments, comme Maxima).
- Extension:GoogleCodePrettify — surligneur de syntaxe qui utilise la bibliothèque Google Code Prettify.
- Extension:ExternalContent — intégrez du contenu externe, tel que du code provenant de GitHub, GitLab et des dépôts Bitkeeper avec rendu automatique des fichiers Markdown ; et utilisez la coloration syntaxique via la bibliothèque Prism.js pour près de 300 langues prises en charge. Contenu indexé par CirrusSearch
Notes de bas de page
Cette extension est utilisée par au moins un des projets Wikimédia. Cela signifie probablement que l’extension est assez stable et fonctionnelle pour être utilisée sur des sites à fort trafic. Recherchez le nom de cette extension dans le CommonSettings.php de Wikimédia et dans le fichier de configuration InitialiseSettings.php pour situer les endroits où elle est installée. Une liste complète des extensions installées sur un Wiki donné peut être visualisée sur la page Special:Version de ce wiki. |
Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : Cette liste ne fait pas autorité. Certaines fermes de wikis ou hôtes et / ou paquets peuvent contenir cette extension même s'ils ne sont pas listés ici. Vérifiez toujours cela avec votre ferme de wikis ou votre hôte ou votre paquet avant de confirmer. |