Extension:SyntaxHighlight/cs

Rozšíření SyntaxHighlight, dříve známé jako SyntaxHighlight_GeSHi, poskytuje bohaté formátování zdrojového kódu pomocí tagu. Je spuštěn knihovnou Pygments a podporuje stovky různých programovacích jazyků a formátů souborů.

Stejně jako značky a   se text vykresluje přesně tak, jak byl napsán, a zachovává veškeré prázdné místo.

The SyntaxHighlight extension does not work on hardened wiki installations due to lack of,   and friends. Podívejte se na stránku.

Tag se od verze 1.39 stal mocným za 5 000 nebo nějaké jiné extrémní množství tagů zvýraznění syntaxe na jedné stránce, jako například u Wikiknih. Increase webserver timeout value in environments in extreme cases. (Podívejte se na stránku .)

Použití
Po instalaci můžete na wiki stránkách používat značky "syntaxhighlight". Například,

je výsledkem následujícího označení wikitextu:

Ve starších verzích (před MediaWiki 1.16) rozšíření používalo značku. Toto je stále podporováno, ale je zastaralé. Místo toho by měl být použit.

Styl
Pokud je zobrazený kód příliš velký, můžete jej upravit vložením následujícího do stránky MediaWiki:Common.css ve vaší wiki (vytvořte ji, pokud neexistuje):

Zapouzdření bloků kódu do ohraničení lze provést vložením řádku jako v sekci výše. Kontrolu nad rodinou písem lze také uplatnit vložením řádku jako do sekce výše.



Kategorie chyb zvýraznění syntaxe
Rozšíření přidává stránky, které mají špatný atribut  ve značce  do kategorie sledování. Klíč zprávy MediaWiki:syntaxhighlight-error-category určuje název kategorie. Na této wiki je to Category:.

Nejčastější chybou, která vede k tomu, že stránky jsou označeny touto kategorií, je značka bez atributu , protože starší verze tohoto rozšíření podporovaly definici. Ty mohou být obvykle buď nahrazeny, nebo  nebo   mohou být přidány ke značce.

Kategorie může být také přidána a obsah nebude zvýrazněn, pokud je více než 1000 řádků nebo více než 100 kB textu.

lang
Atribut  definuje, jaký lexer by měl být použit. Jazyk ovlivňuje, jak rozšíření zvýrazní zdrojový kód. Podrobnosti o podporovaných jazycích najdete v sekci #Supported languages.

Zadáním neplatného nebo neznámého názvu označíte stránku kategorií sledování. Podrobnosti naleznete v části #Syntax highlighting error category na této stránce.

line
Atribut  umožňuje čísla řádků.

start
Atribut  (v kombinaci s  ) definuje číslo prvního řádku bloku kódu. Například  způsobí, že číslování řádků začne na 55.

highlight
Atribut  určuje jeden nebo více řádků, které by měly být označeny (zvýrazněním těchto řádků jinou barvou pozadí). Můžete zadat více čísel řádků oddělených čárkami (například ) nebo rozsahy pomocí dvou čísel řádků a pomlčky (například  ).

výsledkem je

inline
Atribut označuje, že zdrojový kód by měl být vložen jako součást odstavce (na rozdíl od vlastního bloku). Tato možnost je k dispozici od MediaWiki 1.26.

Například:

Následující  je výraz lambda v Pythonu.

Výsledkem je:

class
Když je použit,   (na těch wiki, které to podporují; ne na MediaWiki samotné) určuje, že zalomení řádků by se nemělo vyskytovat v mezerách v bloku kódu.

Například:

Bez :

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

S :

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

style
Atribut  umožňuje přímé zahrnutí atributů CSS. To je ekvivalentní uzavření bloku do tagu (nikoli ). Atribut  nelze zadat tímto způsobem. Vyžaduje to uzavírací značku, jak je popsáno níže v části Advanced.

Například:

Výsledkem je:



Podporované jazyky
Pygments poskytuje podporu pro zvýrazňování syntaxe stovek počítačových jazyků a formátů souborů prostřednictvím různých "lexerů", které jsou součástí knihovny.

Ve většině případů je atribut, který se má použít s tímto rozšířením, tvořen malými písmeny v názvu jazyka. Mnohé však mají aliasy nebo "krátká jména", jak se jim říká v dokumentaci Pygments; úplné podrobnosti viz "Available lexers".

Některé jazyky dříve podporované GeSHi byly namapovány na lexery Pygments. Podrobnosti viz.

Od ledna 2020 je úplný seznam jazyků podporovaných Pygments:

Programovací jazyky
1=

ActionScript

Ada

Agda (včetně gramotných)

Alloy

AMPL

ANTLR

APL

AppleScript

Assembly (různé)

Asymptote

Augeas

AutoIt

Awk

BBC Basic

Befunge

BlitzBasic

Boa

Boo

Boogie

BrainFuck

C, C++ (vč. dialekty jako Arduino)

C#

Chapel

Charm++ CI

Cirru

Clay

Clean

Clojure

CoffeeScript

ColdFusion

Common Lisp

Component Pascal

Coq

Croc (MiniD)

Cryptol (včetně Literate Cryptol)

Crystal

Cypher

Cython

D

Dart

DCPU-16

Delphi

Dylan (včetně řídicího panelu)

Eiffel

Elm

Emacs Lisp

Email

Erlang (včetně shellové relace)

Ezhil

Factor

Fancy

Fantom

Fennel

FloScript

Forth

Fortran

FreeFEM++

F#

GAP

Gherkin (Cucumber)

GLSL shadery

Golo

Gosu

Groovy

Haskell (včetně Literate Haskell)

HLSL

HSpec

Hy

IDL

Idris (včetně Literate Idris)

Igor Pro

Io

Jags

Java

JavaScript

Jasmin

Jcl

Julia

Kotlin

Lasso (včetně šablonování)

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 (včetně konzolové relace a zpětného sledování)

QBasic

Racket

Raku a.k.a. Perl 6

REBOL

Red

Redcode

Rexx

Ride

Ruby (včetně irb relace)

Rust

S, S-Plus, R

Scala

Scdoc

Scheme

Scilab

SGF

Shell skripty (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

Jazyky šablon
1=

Angular šablony

Cheetah šablony

ColdFusion

Django / Jinja šablony

ERB (Ruby šablony)

Evoque

Genshi (jazyk šablon Trac)

Handlebars

JSP (Java Server Pages)

Liquid

Myghty (the HTML::Mason základní rámec)

Mako (nástupce Myghty)

Slim

Smarty šablony (šablony PHP)

Tea

Twig

Jiná označení
1=

Konfigurační soubory Apache

Apache Pig

BBCode

CapDL

Cap'n Proto

CMake

Csound scores

CSS

Řídicí soubory Debianu

Soubory Diff

Dockerfiles

DTD

EBNF

Záhlaví e-mailů

Extempore

Flatline

Gettext katalogy

Gnuplot skripty

Groff označení

Hexdumps

HTML

HTTP relace

IDL

Inform

INI-konfigurační soubory stylu

IRC protokoly (irssi styl)

Isabelle

Poznámky JSGF

JSON, JSON-LD

Lean theorem prover

Konfigurační soubory Lighttpd

Linux protokol jádra (dmesg)

LLVM montáž

LSL skripty

Makefiles

MoinMoin/Trac Wiki označení

MQL

MySQL

NCAR příkazový jazyk

Nginx konfigurační soubory

Nix jazyk

NSIS skripty

Notmuch

POV-Ray scény

Puppet

QML

Ragel

Redcode

ReST

Roboconf

Robot Framework

RPM speciální soubory

Rql

RSL

Scdoc

SPARQL

SQL, také MySQL, SQLite

Squid konfigurace

TADS 3

Terraform

TeX

Thrift

TOML

Treetop gramatiky

USD (Universal Scene Description)

Varnish konfigurace

VGL

Vim Script

WDiff

Windows dávkové soubory

XML

XSLT

YAML

Windows Soubory registru

Lexery dříve podporované GeSHi
Níže je uveden částečný seznam jazyků, které by GeSHi mohlo zvýraznit, s přeškrtnutím jazyků, které po přechodu na Pygments již nejsou podporovány.

Konfigurace
and (optional): For performance reasons, blobs or pages (JS, Lua and CSS pages) larger than these values will not be highlighted. (since 1.40)


 * Linux:


 * (volitelné): Absolutní cesta k pygmentize balíčku Pygments. Rozšíření standardně sdružuje balíček Pygments a ukazuje na přibalenou verzi, ale pokud chcete, můžete ukázat na jinou verzi. Například:.


 * Windows:


 * Pokud hostujete MediaWiki na počítači s Windows, musíte nastavit cestu pro Pygmentize.exe
 * Pokud neexistuje, spusťte   z příkazového řádku ve složce   a vygenerujte soubor.

Pokud používáte přibalenou binárku pygmentize (extensions/SyntaxHighlight_GeSHi/pygments/pygmentize), ujistěte se, že váš webový server má oprávnění ji spustit. Pokud vám váš hostitel neumožňuje přidávat spustitelné soubory do vašeho webového adresáře, nainstalujte python-pygments a přidejte do LocalSettings.php.


 * Odstraňování problémů:

Po aktualizaci na MediaWiki v1.26 a vyšší začali někteří uživatelé hlásit problémy s rozšířením. Mohou nastat případy, kdy některé jazyky, jako například Lua nemusí být zvýrazněny, a zapnutím debugging MediaWiki vyhodí chybu.


 * Zkuste nasměrovat v LocalSettings.php na externí pygmentize binární soubor.
 * V prostředích sdíleného hostování s cPanel to lze provést nastavením nové aplikace Python prostřednictvím nabídky "Setup Python App" a aktivací virtuálního prostředí pro aplikaci prostřednictvím SSH . Poté lze do aplikace Python přidat modul Pygments [modul https://clients.temok.com/knowledgebase.php?action=displayarticle&id=524], pro který přejděte na cestu virtuálního prostředí, stáhněte si a nainstalujte Pygments a poté modul aktivujte přidáním "Pygments" pod "Stávající aplikace" v nabídce "Nastavení aplikace Python". Tím se vytvoří požadovaný soubor na cestě:


 * Další návrhy a informace naleznete na této stránce T128993.
 * SELinux může také zabránit spuštění rozšíření s chybou podobnou  ve vašich audit.log. To lze povolit s
 * V dřívějších verzích tohoto rozšíření Windows někdy selhal s chybou _Py_HashRandomization_Init. Toto byla chyba s prostředím Windows, které nebylo předáno spouštění pythonu. Oprava byla vydána v 1.40 se zpětnými porty na 1.38 a 1.39.



Integrace VisualEditoru
Plugin umožňuje přímé úpravy pomocí VisualEditoru. Když chce uživatel upravit sekce, otevře se vyskakovací okno. Aby to fungovalo, musí být VisualEditor nainstalován a nakonfigurován z nejnovější verze Git, stejně jako Parsoid. Tato funkce nemusí fungovat se staršími verzemi Parsoid. Další podrobnosti najdete na stránce.

Pokročilé
Na rozdíl od značek a  znakové entity HTML jako   nemusí (a neměly by) mít znak   uvozený jako. Stejně jako u tagu, ale na rozdíl od tagu , tagy v rozsahu (jiné než jeho vlastní uzavírací tag) nemusí mít symbol  escapován jako  , ani wikitext nemusí být escapován tagem.

Kromě toho, zatímco předpokládá zarážky tabulátoru každých 8 znaků a vykresluje tabulátory pomocí skutečných mezer při kopírování vykresleného textu,  používá zarážky tabulátoru se 4 mezerami (kromě Internet Exploreru, který používá 8) a zachovává znaky tabulátoru ve vykresleném textu. Druhý jmenovaný lze změnit pomocí uzavíracího tagu (nikoli  a bez použití vlastního atributu  ). Předpona  je vyžadována pro Firefox (od verze 4.0 do verze 90) a předpona   je vyžadována pro Opera (od verze 10.60 do verze 15). (Všimněte si, že editační pole wiki předpokládá tabulátory s 8 mezerami.) To platí pouze pro skutečně uložené stránky. Náhledy generované pomocí editačního pole nebo Special:ExpandTemplates se mohou lišit.



Související odkazy

 * Pygments — Python syntax highlighter
 * Rozšíření závislá na tomto:
 * — zvýrazní stránky na základě přípon názvu.
 * Alternativní rozšíření:
 * — zvýrazňovač syntaxe, který používá knihovnu HighlightJS (zahrnuje podporu pro některé jazyky, které v Pygmentech chybí, jako je Maxima).
 * — zvýrazňovač syntaxe, který používá knihovnu Google Code Prettify.