Extension:SyntaxHighlight/tr

Daha önce SyntaxHighlight_GeSHi olarak bilinen SyntaxHighlight uzantısı, etiketini kullanarak kaynak kodunun zengin biçimlendirmesini sağlar. Pygments kütüphanesi tarafından desteklenmektedir ve yüzlerce farklı programlama dilini ve dosya biçimini desteklemektedir.

ve  etiketleri gibi, metin de yazıldıkları gibi işlenir ve beyaz boşluk korunur.

The SyntaxHighlight extension does not work on hardened wiki installations due to lack of,   and friends. See.

Kullanım
Kurulduktan sonra, wiki sayfalarında "syntaxhighlight" etiketlerini kullanabilirsiniz. Örneğin,

aşağıdaki vikimetin işaretlemesinin sonucudur:

Eski sürümlerde (MediaWiki 1.16'dan önce), uzantı etiketini kullandı. Bu hala desteklenmektedir, ancak kullanımdan kaldırılmıştır. Bunun yerine kullanılmalıdır.

Stil
Görüntülenen kod çok büyükse, vikinizdeki MediaWiki:Common.css sayfasına aşağıdakileri koyarak kodu ayarlayabilirsiniz (yoksa bu kodu oluşturun):

Kod bloklarını kenarlıklara yerleştirmek, yukarıdaki bölüme gibi bir çizgi eklenerek yapılabilir. Kullanılan font family üzerindeki kontrol, yukarıdaki bölüme gibi bir satır eklenerek de kullanılabilir.

Sözdizimi vurgulama hatası kategorisi
Uzantı, bir izleme kategorisi içine $sözdizimi etiketinde kötü  özelliği olan sayfaları ekler. MediaWiki:syntaxhighlight-error-category mesaj tuşu kategori adını belirler; bu vikideki Category:.

Bu kategoriyle etiketlenen sayfalara yol açan en yaygın hata,  özelliği olmayan bir  etiketidir, çünkü bu uzantının eski sürümleri  tanımını destekledi. Bunlar genellikle ile değiştirilebilir veya etikete   veya   eklenebilir.

Kategori de eklenebilir ve 1000'den fazla satır veya 100 kB'den fazla metin varsa içerik vurgulanmaz.

lang
niteliği, hangi lexerin kullanılması gerektiğini tanımlar. Dil, uzantının kaynak kodunu nasıl vurguladığını etkiler. Desteklenen dillerin ayrıntıları için Desteklenen diller sayfasına bakın.

Geçersiz veya bilinmeyen bir ad belirtilmesi, sayfayı bir izleme kategorisiyle etiketler. Ayrıntılar için bu sayfadaki Sözdizimi vurgulama hata kategorisi bölümüne bakın.

line
özelliği satır numaralarını etkinleştirir.

start
özniteliği ( ile birlikte) kod bloğunun ilk satır numarasını tanımlar. Örneğin,  satır numaralandırmayı 55'de başlatacaktır.

highlight
özelliği, işaretlenmesi gereken bir veya daha fazla satırı belirtir (bu satırları farklı bir arka plan rengiyle vurgulayarak). İki satır numarası ve tire (örneğin, ) kullanarak virgülle (örneğin,  ) veya aralıklarla ayrılmış birden fazla satır numarası belirleyebilirsiniz.

sonucu

inline
Özellik, kaynak kodunun paragrafın bir parçası olarak (kendi bloğunun aksine) satır içinde olması gerektiğini belirtir. Bu seçenek MediaWiki 1.26'dan itibaren kullanılabilir.

Örneğin:

Aşağıdaki  Python'da bir lambda anlamındadır.

Sonuç:

class
kullanıldığında,  (bunu destekleyen vikilerde; MediaWiki'nin kendisinde değil), kod bloğundaki boşluklarda satır kesmelerinin olmaması gerektiğini belirtir.

Örneğin:

olmadan:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ile:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

style
niteliği, CSS niteliklerinin doğrudan eklenmesine izin verir. Bu, bloğu ( değil) etiketine dahil etmeye eşdeğerdir. niteliği bu şekilde belirtilemez; aşağıda Gelişmiş altında açıklandığı gibi bir ek etiketi gerektirir.

Örneğin:

Sonuç:

Desteklenen diller
Pygments kütüphanesi yüzlerce bilgisayar dili ve dosya biçimi için destek sağlar. Ocak 2020 itibariyle tam listesi:

Programlama dilleri
1=

ActionScript

Ada

Agda (okur yazar dahil)

Alloy

AMPL

ANTLR

APL

AppleScript

Assembly (çeşitli)

Asymptote

Augeas

AutoIt

Awk

BBC Basic

Befunge

BlitzBasic

Boa

Boo

Boogie

BrainFuck

C, C++ (Arduino gibi lehçeler dahil)

C#

Chapel

Charm++ CI

Cirru

Clay

Clean

Clojure

CoffeeScript

ColdFusion

Common Lisp

Component Pascal

Coq

Croc (MiniD)

Cryptol (Okuryazar Cryptol dahil)

Crystal

Cypher

Cython

D

Dart

DCPU-16

Delphi

Dylan (konsol dahil)

Eiffel

Elm

Emacs Lisp

Email

Erlang (kabuk oturumları dahil)

Ezhil

Factor

Fancy

Fantom

Fennel

FloScript

Forth

Fortran

FreeFEM++

F#

GAP

Gherkin (Cucumber)

GLSL gölgelendiricileri

Golo

Gosu

Groovy

Haskell (Okuryazar Haskell dahil)

HLSL

HSpec

Hy

IDL

Idris (Okuryazar Idris dahil)

Igor Pro

Io

Jags

Java

JavaScript

Jasmin

Jcl

Julia

Kotlin

Lasso (çiftleşme dahil)

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 (konsol oturumları ve geri izleme dahil)

QBasic

Racket

Raku a.k.a. Perl 6

REBOL

Red

Redcode

Rexx

Ride

Ruby (irb oturumları dahil)

Rust

S, S-Plus, R

Scala

Scdoc

Scheme

Scilab

SGF

Kabuk betikleri (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

Şablon dilleri
1=

Açısal şablonları

Çita şablonları

ColdFusion

Django / Jinja şablonları

ERB (Ruby şablonlama)

Evoque

Genshi (Trac şablon dili)

Gidonlar

JSP (Java Sunucusu Sayfaları)

Liquid

Myghty (HTML::Mason tabanlı çerçeve)

Mako (Myghty halefi)

Slim

Smarty şablonları (PHP şablonlama)

Tea

Twig

Diğer biçimlendirme
1=

Apache yapılandırma dosyaları

Apache Pig

BBCode

CapDL

Cap'n Proto

CMake

Csound skorları

CSS

Debian kontrol dosyaları

Fark dosyaları

Dockerfiles

DTD

EBNF

E-posta başlıkları

Extempore

Flatline

Gettext katalogları

Gnuplot betiği

Groff işaretlemesi

Hexdumps

HTML

HTTP oturumları

IDL

Inform

INI-style yapılandırma dosyaları

IRC günlükleri (irssi stili)

Isabelle

JSGF gösterimi

JSON, JSON-LD

Yalın Teorem Prover

Lighttpd yapılandırma dosyaları

Linux çekirdek günlüğü (dmesg)

LLVM montajı

LSL betikleri

Makefiles

MoinMoin/Trac Viki işaretlemesi

MQL

MySQL

NCAR komut dili

Nginx yapılandırma dosyaları

Nix dili

NSIS betikleri

Notmuch

POV-Ray görüntüleri

Puppet

QML

Ragel

Redcode

ReST

Roboconf

Robot Framework

RPM spesifikasyon dosyaları

Rql

RSL

Scdoc

SPARQL

SQL, ayrıca MySQL, SQLite

Squid yapılandırması

TADS 3

Terraform

TeX

Thrift

TOML

Treetop dilbilgileri

USD (Universal Scene Description)

Varnish yapılandırmaları

VGL

Vim Script

WDiff

Windows toplu iş dosyaları

XML

XSLT

YAML

Windows Kayıt Defteri dosyaları

Doğru dil kodları için Pygments belgesindeki ayrıntılarının tümüne bakın ve bazı dil adları için GeSHi (tam listesi) tarafından desteklenen bazı eşlemeler vardır.

Daha önce GeSHi tarafından desteklenen Lexers
Aşağıda, GeSHi'nin vurgulayabileceği kısmi bir dil listesi bulunmaktadır ve Pygments'a geçtikten sonra artık dil desteği verilmemektedir.



Yapılandırma

 * Linux:


 * (isteğe bağlı): Pygments paketinin pygmentize ile mutlak yolu. Uzantı, Pygments paketini ve noktalarını varsayılan olarak paketli sürüme işaret eder, ancak isterseniz farklı bir sürüme işaret edebilirsiniz. Örneğin:.


 * Windows:


 * MediaWiki'nizi bir Windows makinesinde barındırıyorsanız, Pygmentize.exe yolunu ayarlamanız gerekir
 * yoksa, dosyayı oluşturmak için  klasörü içindeki komut satırından   komutunu çalıştırın.

Paketlenmiş pygmentize ikili (extensions/SyntaxHighlight_GeSHi/pygments/pygmentize) kullanıyorsanız, web sunucunuzun bunu yürütmesine izin verildiğinden emin olun. Ana makineniz web dizininize yürütülebilir dosyalar eklemenize izin vermiyorsa, python-pygments'i yükleyin ve LocalSettings.php dosyasına ekleyin.


 * Sorun giderme:

MediaWiki v1.26 ve üstü sürümlere güncelledikten sonra, bazı kullanıcılar uzantıyla ilgili sorunları bildirmeye başladı. Lua gibi bazı dillerin vurgulanamayacağı ve hata ayıklama öğesini açarak MediaWiki  atabilir.


 * LocalSettings.php dosyasında harici bir pigmentli ikiliye doğru işaret etmeyi deneyin.
 * cPanel ile paylaşılan barındırma ortamlarında bu, "Python Uygulamasını Kur" menüsü aracılığıyla yeni bir Python uygulaması ayarlanarak ve uygulama için sanal ortamı SSH aracılığıyla etkinleştirerek yapılabilir. Bundan sonra, Python uygulamasına Pygments modülü eklenebilir, bunun için sanal ortam yoluna  gidin, Pygments'ı  indirip yükleyin ve ardından modülün altına "Pygments" ekleyerek "Python Uygulamasını Kur" menüsünün "Mevcut uygulamalar" bölümü modülü etkinleştirin. Bu, yolda gerekli dosyayı yaratacaktır:


 * Daha fazla öneri ve bilgi için T128993 sayfasına bakın.
 * SELinux, uzantının audit.log dosyanızda  ile benzer bir hatayla çalışmasını da engelleyebilir. Buna   ile izin verilebilir

Görsel Düzenleyici entegrasyonu
Eklenti Görsel Düzenleyici ile doğrudan düzenlemeyi mümkün kılar. Bir kullanıcı  bölümlerini düzenlemek istediğinde bir açılır pencere açılır. Bunun çalışması için Görsel Düzenleyici'nin Parsoid için de geçerli olan en son git sürümünden yüklenmiş ve yapılandırılmış olması gerekir. Bu özellik eski Parsoid sürümlerinde rastgele çalışmaz. Ayrıntılar için sayfasına bakın

Gelişmiş
ve etiketlerinin aksine,   gibi HTML karakter varlıklarının   karakterin   olarak kaçınılması gerekmez (ve olmamalıdır). etiketi gibi ancak etiketinden farklı olarak, aralıktaki etiketlerin (kendi kapanış etiketi dışında)   sembolünün   olarak kaçmasına ve vikimetinin  etiketi ile kaçmasına gerek yoktur.

Ayrıca, sekmesinin her 8 karakterde bir durduğunu varsayar ve oluşturulan metin kopyalandığında gerçek boşlukları kullanarak sekmeler oluşturur;  4 boşluklu sekme durakları kullanır (8 kullanan Internet Explorer hariç) ve işlenen metindeki sekme karakterlerini korur; ikincisi ekli bir  etiketi kullanılarak değiştirilebilir ( değil, kendi   özniteliğini kullanmadan). Firefox için  öneki (sürüm 4.0'dan) ve Opera için   öneki (10.60'dan sürüm 15'e) gereklidir. (Viki düzenleme kutusunun 8 boşluklu sekmeler aldığını unutmayın.) Bu yalnızca gerçek kaydedilmiş sayfalar için geçerlidir; bir düzenleme kutusu veya Special:ExpandTemplates aracılığıyla oluşturulan önizlemeler farklı olabilir.

Ayrıca bakınız

 * Pygments — Python syntax highlighter
 * Buna bağlı uzantılar:
 * — başlık eklerine göre sayfaları vurgular.
 * Alternatif uzantılar:
 * — HighlightJS kitaplığını kullanan sözdizimi vurgulayıcı (Maxima gibi Pygments'ta eksik olan bazı diller için destek içerir).
 * — Google Code Prettify kitaplığını kullanan sözdizimi vurgulayıcı.