Go to file
Umherirrender 0cb5db91b8 Track syntaxhighlighting as expensive parser tag hook
The shell out to get styled text is expensive.
Call Parser::incrementExpensiveFunctionCount to limit the highlighted
text snippet on a page and not reaching a timeout.

This would count each tag and not deduplicate the text snippet to count
only once or if pygmentize needs to call or is in the cache.
This also not affect Parsoid, not sure if the concept of expensive
parser function exists there

Bug: T316858
Change-Id: I8afe61e9be4a34e5f0725a9b65ef43c345e1be5f
2022-09-07 21:41:17 +02:00
.phan Migrate to new Phan 2019-03-02 13:43:16 +01:00
i18n Localisation updates from https://translatewiki.net. 2022-09-05 10:12:00 +02:00
includes Track syntaxhighlighting as expensive parser tag hook 2022-09-07 21:41:17 +02:00
maintenance Port to BoxedCommand 2021-09-10 11:47:28 -07:00
modules Line number highlight: Use getTargetFromFragment 2022-08-31 13:10:18 +00:00
pygments Update Pygments to 2.11.2 2022-01-17 23:51:19 +00:00
tests/parser Fix the case of empty <syntaxhighlight /> tags 2022-08-21 13:46:17 +02:00
.eslintrc.json build: Update devDependencies 2022-03-20 15:05:03 +00:00
.gitignore build: Upgrade eslint-config-wikimedia from 0.10.1 to 0.11.0 2019-04-03 16:26:40 -07:00
.gitreview Whoops, track not trace 2016-10-24 17:03:53 -07:00
.phpcs.xml build: Updating eslint-config-wikimedia to 0.18.2 2021-03-08 02:28:40 +00:00
.stylelintrc.json Use json extension for .stylelintrc 2017-08-19 10:30:45 +02:00
CODE_OF_CONDUCT.md build: Updating mediawiki/phan-taint-check-plugin to 1.3.0 2018-08-19 16:54:29 +00:00
composer.json build: Updating dependencies 2022-05-21 15:34:29 +00:00
COPYING Add COPYING 2014-01-22 19:44:32 +00:00
extension.json Line number highlight: Use getTargetFromFragment 2022-08-31 13:10:18 +00:00
Gruntfile.js build: Update devDependencies 2022-03-20 15:05:03 +00:00
package-lock.json build: Updating grunt to 1.5.3 2022-05-27 03:43:14 +00:00
package.json build: Updating grunt to 1.5.3 2022-05-27 03:43:14 +00:00
README Update pygments to 2.8.0 2021-02-18 16:12:33 +00:00
SyntaxHighlight.lexers.php Update Pygments to 2.11.2 2022-01-17 23:51:19 +00:00

This extension allows source code to be syntax highlighted on the wiki pages.
This README file might be out of date, have a look at the extension page
for updated information:

    https://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi

== Requirements ==

This version of the extension has been tested with Pygments 2.8.0 and
MediaWiki 1.35. To get releases of this extension compatible
with earlier versions of MediaWiki, visit:

    https://www.mediawiki.org/wiki/Special:ExtensionDistributor/SyntaxHighlight_GeSHi

== Installation ==

Add this line to your LocalSettings.php:

    wfLoadExtension( 'SyntaxHighlight_GeSHi' );

By default, this extension will use a bundled copy of Pygments 2.8.0. If you
would like to use a different copy of the library, you can set
$wgPygmentizePath to point to the path to the 'pygmentize' binary.

== Usage ==

On the wiki page, you can now use "source" elements:

<source lang="php">
<?php
    v = "string";    // sample initialization
?>
html text
<?php
    echo v;         // end of php code
?>
</source>

== Parameters ==

For details information of these parameters, see the documentation of Pygments'
HtmlFormatter at <http://pygments.org/docs/formatters/#HtmlFormatter>.

* lang;		Defines the language.
* line;		Corresponds to linenos="inline" option.
* start;	Corresponds to linenostart option.
* enclose;  If set to "none", corresponds to the nowrap=1 option.
* inline;   Corresponds to the nowrap=1 option.
* highlight;    Corresponds to hl_lines option (comma separated).

== Note ==

Pygments is generous about creating HTML elements: highlighting large blocks of
code can easily generate enough of them to crash a browser. As a guard, syntax
highlighting is turned off for code fragments larger than 100 kB.