summaryrefslogtreecommitdiff
path: root/extensions/SyntaxHighlight_GeSHi
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/SyntaxHighlight_GeSHi')
-rw-r--r--extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php48
-rw-r--r--extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php35
-rw-r--r--extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php5
-rw-r--r--extensions/SyntaxHighlight_GeSHi/geshi/geshi.php2
-rw-r--r--extensions/SyntaxHighlight_GeSHi/geshi/geshi/haskell.php10
5 files changed, 46 insertions, 54 deletions
diff --git a/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php b/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php
index 4538a5f1..b1c9851d 100644
--- a/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php
+++ b/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php
@@ -28,12 +28,6 @@ class SyntaxHighlight_GeSHi {
// Don't trim leading spaces away, just the linefeeds
$text = preg_replace( '/^\n+/', '', $text );
- if( $wgUseTidy ) {
- // HTML Tidy will convert tabs to spaces incorrectly (bug 30930).
- // Preemptively replace the spaces in a more controlled fashion.
- $text = self::tabsToSpaces( $text );
- }
-
// Validate language
if( isset( $args['lang'] ) && $args['lang'] ) {
$lang = $args['lang'];
@@ -101,6 +95,12 @@ class SyntaxHighlight_GeSHi {
if( $enclose === GESHI_HEADER_DIV ) {
$out = str_replace( "\n", '', $out );
}
+ // HTML Tidy will convert tabs to spaces incorrectly (bug 30930).
+ // But the conversion from tab to space occurs while reading the input,
+ // before the conversion from 	 to tab, so we can armor it that way.
+ if( $wgUseTidy ) {
+ $out = str_replace( "\t", '	', $out );
+ }
// Register CSS
$parser->getOutput()->addHeadItem( self::buildHeadItem( $geshi ), "source-{$lang}" );
@@ -327,6 +327,9 @@ class SyntaxHighlight_GeSHi {
* @return GeSHi
*/
public static function prepare( $text, $lang ) {
+
+ global $wgSyntaxHighlightKeywordLinks;
+
self::initialise();
$geshi = new GeSHi( $text, $lang );
if( $geshi->error() == GESHI_ERROR_NO_SUCH_LANG ) {
@@ -335,7 +338,7 @@ class SyntaxHighlight_GeSHi {
$geshi->set_encoding( 'UTF-8' );
$geshi->enable_classes();
$geshi->set_overall_class( "source-$lang" );
- $geshi->enable_keyword_links( false );
+ $geshi->enable_keyword_links( $wgSyntaxHighlightKeywordLinks );
// If the source code is over 100 kB, disable higlighting of symbols.
// If over 200 kB, disable highlighting of strings too.
@@ -485,35 +488,4 @@ class SyntaxHighlight_GeSHi {
public static function hOldSpecialVersion_GeSHi( &$sp, &$extensionTypes ) {
return self::hSpecialVersion_GeSHi( $extensionTypes );
}
-
- /**
- * Convert tabs to spaces
- *
- * @param string $text
- * @return string
- */
- private static function tabsToSpaces( $text ) {
- $lines = explode( "\n", $text );
- $lines = array_map( array( __CLASS__, 'tabsToSpacesLine' ), $lines );
- return implode( "\n", $lines );
- }
-
- /**
- * Convert tabs to spaces for a single line
- *
- * @param $line
- * @internal param string $text
- * @return string
- */
- private static function tabsToSpacesLine( $line ) {
- $parts = explode( "\t", $line );
- $width = 8; // To match tidy's config & typical browser defaults
- $out = $parts[0];
- foreach( array_slice( $parts, 1 ) as $chunk ) {
- $spaces = $width - (strlen( $out ) % $width);
- $out .= str_repeat( ' ', $spaces );
- $out .= $chunk;
- }
- return $out;
- }
}
diff --git a/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php b/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php
index b9a336dd..9b940f3e 100644
--- a/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php
+++ b/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.i18n.php
@@ -78,7 +78,7 @@ $messages['arz'] = array(
'geshi.css' => '/* CSS المحطوطة هنا ح تتطبق على تظليل سينتاكس الGeSHi */',
);
-/** Assamese (অসমীয়া)
+/** Assamese (অসমীয়া)
* @author Bishnu Saikia
*/
$messages['as'] = array(
@@ -199,9 +199,11 @@ $messages['ca'] = array(
/** Chechen (нохчийн)
* @author Sasan700
+ * @author Умар
*/
$messages['ce'] = array(
- 'geshi.css' => '/* CSS-ишар, кху чу хlоттайахь, оцо болх бийра бу сизашдо беснашна хlокхуньца GeSHI */',
+ 'syntaxhighlight-supported' => 'Ловш долу меттанаш:',
+ 'geshi.css' => '/* CSS-код, кху чу хlоттайахь, оцо болх бийра бу сизашдо беснашна хlокхуньца GeSHI */',
);
/** Czech (česky)
@@ -218,10 +220,16 @@ $messages['cs'] = array(
);
/** Danish (dansk)
+ * @author Christian List
* @author Sarrus
*/
$messages['da'] = array(
+ 'syntaxhighlight-desc' => 'Giver syntaksfremhævning <code>&lt;syntaxhighlight&gt;</code> ved brug af [http://qbnz.com/highlighter/ GeSHi - Generic Syntax Highlighter]',
+ 'syntaxhighlight-specify' => 'Du skal angive et sprog, sådan her:',
+ 'syntaxhighlight-supported' => 'Understøttede sprog for syntaksfremhævning:',
+ 'syntaxhighlight-err-loading' => '(fejl ved indlæsning af listen af understøttede sprog)',
'syntaxhighlight-err-language' => 'Ugyldigt sprog.',
+ 'geshi.css' => '/* CSS placeret her vil blive anvendt til GeSHi syntaksfremhævning */',
);
/** German (Deutsch)
@@ -314,7 +322,7 @@ $messages['et'] = array(
'syntaxhighlight-specify' => 'Sa pead täpsustama keelt nõnda:',
'syntaxhighlight-supported' => 'Süntaksi esiletoomise on toetatud järgnevates keeltes:',
'syntaxhighlight-err-loading' => '(toetatud keelte loetelu laadimisel esines viga)',
- 'syntaxhighlight-err-language' => 'antud keel on mittekehtiv',
+ 'syntaxhighlight-err-language' => 'Vigane keel.',
'geshi.css' => '/* CSS mis on asetatud siia, määrab GeSHi süntaksi esiletoomise stiili */',
);
@@ -335,7 +343,7 @@ $messages['fa'] = array(
'syntaxhighlight-specify' => 'شما باید به این شکل زبانی را مشخص کنید:',
'syntaxhighlight-supported' => 'زبان‌های پشتیبانی‌شده برای رنگین‌کردن دستورات:',
'syntaxhighlight-err-loading' => '(خطا در بارگذاری فهرست زبان‌های پشتیبانی‌شده)',
- 'syntaxhighlight-err-language' => 'زبان غیرمجاز.',
+ 'syntaxhighlight-err-language' => 'زبان نامجاز.',
'geshi.css' => '/* دستورات CSS اینجا توسط سامانه رنگین‌کردن دستورات GeSHi به کار گرفته می‌شوند */',
);
@@ -657,10 +665,10 @@ $messages['km'] = array(
* @author 아라
*/
$messages['ko'] = array(
- 'syntaxhighlight-desc' => '<code>&lt;syntaxhighlight&gt;</code> 태그로 [http://qbnz.com/highlighter/ GeSHi Highlighter]를 이용해 문법 강조 기능을 지원합니다.',
- 'syntaxhighlight-specify' => '오른쪽과 같이 언어를 설정해야 합니다:',
- 'syntaxhighlight-supported' => '문법 강조가 지원되는 언어 목록',
- 'syntaxhighlight-err-loading' => '(지원하는 언어 목록을 불러오는 중 오류 발생)',
+ 'syntaxhighlight-desc' => '[http://qbnz.com/highlighter/ GeSHi Highlighter]를 사용해 <code>&lt;syntaxhighlight&gt;</code>로 문법 강조를 제공합니다',
+ 'syntaxhighlight-specify' => '다음과 같이 언어를 지정해야 합니다:',
+ 'syntaxhighlight-supported' => '문법 강조가 지원되는 언어 목록:',
+ 'syntaxhighlight-err-loading' => '(지원되는 언어 목록을 불러오는 중 오류)',
'syntaxhighlight-err-language' => '잘못된 언어입니다.',
'geshi.css' => '/* 이 문서에서 설정한 CSS는 GeSHi에 적용됩니다. */',
);
@@ -680,10 +688,11 @@ $messages['ksh'] = array(
/** Luxembourgish (Lëtzebuergesch)
* @author Les Meloures
* @author Robby
+ * @author Soued031
*/
$messages['lb'] = array(
'syntaxhighlight-desc' => "Syntax-Ervirhiewung <code>&lt;syntaxhighlight&gt;</code> mat Hëllef vu [http://qbnz.com/highlighter/ 'GeSHi Highlighter']",
- 'syntaxhighlight-specify' => 'Déi gewënscht Sprooch muss esou definéiert ginn:',
+ 'syntaxhighlight-specify' => 'Déi gewënscht Sprooch muss sou definéiert ginn:',
'syntaxhighlight-supported' => "Ënnerstëtzte Sprooche fir d'Syntax faarweg ze markéieren",
'syntaxhighlight-err-loading' => '(Feeler beim Luede vun der Lëscht vun den ënnerstëtzte Sproochen)',
'syntaxhighlight-err-language' => 'Net valabel Sprooch.',
@@ -790,7 +799,7 @@ $messages['nah'] = array(
'syntaxhighlight-err-language' => 'Âmò kualli tlâtòlli',
);
-/** Norwegian Bokmål (norsk (bokmål)‎)
+/** Norwegian Bokmål (norsk bokmål)
*/
$messages['nb'] = array(
'syntaxhighlight-desc' => 'Gir syntaks som framhever <code>&lt;syntaxhighlight&gt;</code> ved hjelp av [http://qbnz.com/highlighter/ GeSHi Highlighter]',
@@ -813,7 +822,7 @@ $messages['nds'] = array(
'geshi.css' => '/* CSS in disse MediaWiki-Systemnaricht warrt för dat GeSHi-Syntaxrutheven bruukt */',
);
-/** Nedersaksies (Nedersaksies)
+/** Low Saxon (Netherlands) (Nedersaksies)
* @author Servien
*/
$messages['nds-nl'] = array(
@@ -833,7 +842,7 @@ $messages['nl'] = array(
'geshi.css' => '/* Hier geplaatste CSS wordt toegepast op GeSHi Syntax Highlighting */',
);
-/** Norwegian Nynorsk (norsk (nynorsk)‎)
+/** Norwegian Nynorsk (norsk nynorsk)
* @author Frokor
*/
$messages['nn'] = array(
@@ -909,7 +918,7 @@ $messages['pms'] = array(
* @author Ahmed-Najib-Biabani-Ibrahimkhel
*/
$messages['ps'] = array(
- 'syntaxhighlight-specify' => 'بايد تاسې يوه ژبه په دې توګه ځانګړې کړی:',
+ 'syntaxhighlight-specify' => 'بايد تاسې يوه ژبه په دې توگه ځانگړې کړۍ:',
'syntaxhighlight-err-language' => 'ناسمه ژبه.',
);
diff --git a/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php b/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php
index 0b6cb0c6..5372342d 100644
--- a/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php
+++ b/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php
@@ -48,7 +48,10 @@ $wgExtensionCredits['parserhook']['SyntaxHighlight_GeSHi'] = array(
'url' => 'https://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi',
);
-$wgSyntaxHighlightDefaultLang = null; //Change this in LocalSettings.php
+// Change these in LocalSettings.php
+$wgSyntaxHighlightDefaultLang = null;
+$wgSyntaxHighlightKeywordLinks = false;
+
$dir = dirname(__FILE__) . '/';
$wgExtensionMessagesFiles['SyntaxHighlight_GeSHi'] = $dir . 'SyntaxHighlight_GeSHi.i18n.php';
$wgAutoloadClasses['SyntaxHighlight_GeSHi'] = $dir . 'SyntaxHighlight_GeSHi.class.php';
diff --git a/extensions/SyntaxHighlight_GeSHi/geshi/geshi.php b/extensions/SyntaxHighlight_GeSHi/geshi/geshi.php
index 60741577..4323d05c 100644
--- a/extensions/SyntaxHighlight_GeSHi/geshi/geshi.php
+++ b/extensions/SyntaxHighlight_GeSHi/geshi/geshi.php
@@ -41,7 +41,7 @@
//
/** The version of this GeSHi file */
-define('GESHI_VERSION', '1.0.8.11');
+define('GESHI_VERSION', '1.0.8.11-wmf1'); // WMF fix for Haskell (bug 52509)
// Define the root directory for the GeSHi code tree
if (!defined('GESHI_ROOT')) {
diff --git a/extensions/SyntaxHighlight_GeSHi/geshi/geshi/haskell.php b/extensions/SyntaxHighlight_GeSHi/geshi/geshi/haskell.php
index adae1116..d3b494ed 100644
--- a/extensions/SyntaxHighlight_GeSHi/geshi/geshi/haskell.php
+++ b/extensions/SyntaxHighlight_GeSHi/geshi/geshi/haskell.php
@@ -13,6 +13,14 @@
* -------
* 2005/08/27 (1.0.0)
* - First Release
+ * 2013/09/28
+ * - Single quotes dropped from QUOTEMARKS to resolve <https://bugzilla.wikimedia.org/52509>.
+ * Change is local to SyntaxHighlight_GeSHi, made by Ori Livneh (ori@wikimedia.org), based
+ * on a proposed upstream patch.
+ * Upstream bug report:
+ * <http://sourceforge.net/p/geshi/bugs/217/>
+ * Upstream patch (stalled since 2012):
+ * <http://sourceforge.net/p/geshi/bugs/219/>
*
* TODO (updated 2005/08/27)
* -------------------------
@@ -46,7 +54,7 @@ $language_data = array (
3 => "/{-(?:(?R)|.)-}/s", //Nested Comments
),
'CASE_KEYWORDS' => 0,
- 'QUOTEMARKS' => array('"',"'"),
+ 'QUOTEMARKS' => array('"'), // SyntaxHighlight_GeSHi modification; see CHANGES above.
'ESCAPE_CHAR' => '\\',
'KEYWORDS' => array(
/* main haskell keywords */