Tags:
view all tags
---+!! Syntax Highlighting Plugin <!-- Contributions to this plugin are appreciated. Please update the plugin page at http://twiki.org/cgi-bin/view/Plugins/SyntaxHighlightingPlugin or provide feedback at http://twiki.org/cgi-bin/view/Plugins/SyntaxHighlightingPluginDev. If you are a TWiki contributor please update the plugin in the SVN repository. * Set SHORTDESCRIPTION = Highlight source code fragments for many languages --> <sticky> <div class="twikiTocFloat"> %TOC{title="Page contents"}% </div> <div style="float:right; margin:0 0 20px 20px; padding: 0 10px 0 10px;"> <a href="%PUBURLPATH%/%WEB%/%TOPIC%/cpp-screenshot.png"><img src="%PUBURLPATH%/%WEB%/%TOPIC%/cpp-screenshot-300.png" alt="cpp screenshot" title="CPP example (click to enlarge)" width="300" height="287" border="0" /></a> </div></sticky> %SHORTDESCRIPTION% ---++ Introduction The Syntax Highlighting Plugin is used to emphasize the rendering of your wiki text according to several languages. It currently uses =enscript= to render its output. ---++ Supported languages %IF{ "context SyntaxHighlightingPluginEnabled" then="The currently installed =enscript= supports highlighting of the following languages: $percntSYNTAXHIGHLIGHTING{supported}$percnt" else="Recent versions of =enscript= support highlighting of the following languages: ada, asm, awk, bash, c, changelog, cpp, csh, delphi, diff, diffs, diffu, dylan, eiffel, elisp, forth, fortran, fortran_pp, haskell, html, icon, idl, inf, java, javascript, ksh, lua, m4, mail, makefile, matlab, nroff, oberon2, objc, outline, oz, pascal, perl, php, postscript, pyrex, python, rfc, ruby, scheme, sh, skill, smalltalk, sml, sql, states, synopsys, tcl, tcsh, tex, vba, verilog, vhdl, vrml, wmlscript, zsh You need to installed and enabled the !SyntaxHighlightingPlugin to see the actual languages that are available." }% Additional languages can be added, see [[http://www.markkurossi.com/genscript/index.html][genscript documentation]]. ---++ Syntax Rules To use this plugin, use the following syntax: <verbatim> <sticky> %CODE{ lang="cpp" num="10" numstep="2" }% ...code... %ENDCODE% </sticky> </verbatim> The =<sticky>= tags are required to prevent TWiki's WYSIWYG editor from removing line breaks inside the code block. In addition, =%<nop>SYNTAXHIGHLIGHTING{supported}%= returns the list of currently supported languages as indicated above. ---+++ CODE Parameters %INCLUDE{ "VarCODE" section="parameters" }% __Note:__ The default can be set in configure ---++ Examples The following text: <verbatim> <sticky> %CODE{"c++"}% #include <iostream> int main() { // Hello world example std::cout << "Hello, world." << std::endl; } %ENDCODE% </sticky> </verbatim> gives (if installed): <sticky> %CODE{"c++"}% #include <iostream> int main() { // Hello world example std::cout << "Hello, world." << std::endl; } %ENDCODE% </sticky> You can also output numbered lines starting at 10 with this text: <verbatim> <sticky> %CODE{"sh" num="10"}% #!/bin/sh languages=`enscript --help-highlight | grep 'Name:' | cut -d ' ' -f 2` for l in $languages; do cat << EOF * $l EOF done %ENDCODE% </sticky> </verbatim> gives (if installed): <sticky> %CODE{"sh" num="10"}% #!/bin/sh languages=`enscript --help-highlight | grep 'Name:' | cut -d ' ' -f 2` for l in $languages; do cat << EOF * $l EOF done %ENDCODE% </sticky> ---++ Plugin Installation & Configuration %TWISTY{ mode="div" showlink="Show details %ICONURL{toggleopen}% " hidelink="Hide details %ICONURL{toggleclose}% " }% * For an __automated installation__, run the [[%SCRIPTURL{configure}%][configure]] script and follow "Find More Extensions" in the in the __Extensions__ section. * See the [[http://twiki.org/cgi-bin/view/Plugins/BuildContribInstallationSupplement][installation supplement]] on TWiki.org for more information. * Or, follow these __manual installation__ steps: * Download the ZIP file from the extension home on twiki.org (see below). * Unzip ==%TOPIC%.zip== in your twiki installation directory. * Set the ownership of the extracted directories and files to the webserver user. * Install the dependencies (if any). * Plugin __configuration and testing__: * Run the [[%SCRIPTURL{configure}%][configure]] script and enable the plugin in the __Plugins__ section. * Configure additional plugin settings in the __Extensions__ section if needed. * Test if the installation was successful using the examples provided. * Configure settings in Extensions section: * =$TWiki::cfg{Plugins}{SyntaxHighlightingPlugin}{EnscriptPath}= # path to enscript script * =$TWiki::cfg{Plugins}{SyntaxHighlightingPlugin}{DefaultLang}= # Default language * =$TWiki::cfg{Plugins}{SyntaxHighlightingPlugin}{Numbering}= # Default for line numbering, 'off' or 'on' * =$TWiki::cfg{Plugins}{SyntaxHighlightingPlugin}{Step}= # Default step of numbering * =$TWiki::cfg{Plugins}{SyntaxHighlightingPlugin}{Style}= # Style of pre tag containing the source code * =$TWiki::cfg{Plugins}{SyntaxHighlightingPlugin}{NumStyle}= # Style of numbering column * =$TWiki::cfg{Plugins}{SyntaxHighlightingPlugin}{Debug}= # Debug setting * Change of Syntax: Content of an older version of this plugin with the following syntax needs to be updated: %BR% =%<nop>begin sh%= %BR% =...code...= %BR% =%<nop>end%= %BR% This has been changed to be more consistent with other twiki variables. There is a script included which will replace the old syntax with the new one. To use it, copy it from the =tools= directory and into your =data= directory. When you run it, it will look through your webs and replace the syntax. Note that its not the best script in the world, so always test it on a copy of your data first! * Plugin Files: | ==data/TWiki/SyntaxHighlightingPlugin.txt== | Plugin topic | | ==data/TWiki/VarCODE.txt== | Variable documentation topic | | ==pub/TWiki/SyntaxHighlightingPlugin/cpp-screenshot.png== | | | ==pub/TWiki/SyntaxHighlightingPlugin/cpp-screenshot-300.png== | | | ==lib/TWiki/Plugins/SyntaxHighlightingPlugin.pm== | Perl module | | ==lib/TWiki/Plugins/SyntaxHighlightingPlugin/Config.spec== | | | ==tools/SyntaxHighlightingPlugin_covert.pl== | | * Additional languages can be added, see [[http://www.markkurossi.com/genscript/index.html][genscript documentation]]. %ENDTWISTY% ---++ Plugin Info %TABLE{ tablewidth="100%" columnwidths="170," }% | Plugin Author: | TWiki:Main.AndrewRJones | | Previous Authors: | TWiki:Main.NicolasTisserand, TWiki:Main.NicolasBurrus, Perceval Anichini | | Copyright: | © 2002-2016 Peter Thoeny, [[http://twiki.org/][TWiki.org]] %BR% © 2002-2016 TWiki:TWiki.TWikiContributor | | License: | GPL ([[http://www.gnu.org/copyleft/gpl.html][GNU General Public License]]) | | Plugin Version: | 2016-01-22 | %TWISTY{ mode="div" showlink="Show Change History %ICONURL{toggleopen}%" hidelink="Hide Change History %ICONURL{toggleclose}%" }% %TABLE{ tablewidth="100%" columnwidths="170," }% | 2019-12-04: | TWikibug:Item7873: unescaped braces in regex are escaped. | | 2016-01-22: | TWikibug:Item7708: Switch to GPL 3; copyright update to 2016 | | 2014-03-26: | TWikibug:Item7470: SyntaxHighlightingPlugin may fail to recognize enscript supporting languages | | 2013-12-11: | TWikibug:Item7399: Auto-detect supported languages -- TWiki:Main.PeterThoeny | | 2013-04-04: | TWikibug:Item7211: Add Scala support -- TWiki:Main.HideyoImazu | | 2013-02-14: | TWikibug:Item7091: Show source code of undefined or unsupported language, but warn user; use configure settings for defaults; rename numstep parameter to step & make numstep undocumented; add VarCODE variable documentation -- TWiki:Main.PeterThoeny | | 2013-02-13: | TWikibug:Item7091: Add style and numstyle parameters -- TWiki:Main.PeterThoeny | | 2013-02-13: | TWikibug:Item7123: Use TWISTY in installation instructions and change history | | 2012-11-15: | TWikibug:Item7035: Number step support -- TWiki:Main.YaojunFei | | 2011-05-14: | TWikibug:Item6701: Small fix in Config.spec -- TWiki:Main.PeterThoeny | | 2010-10-23: | TWikibug:Item6530: Doc improvements - TWiki:Main.PeterThoeny, TWiki:Main.AndreasKeil | | 2008-09-11: | TWikibug:Item5995: Rewritten to work on TWiki 4.2 | | 2002-07-12: | Initial version | %ENDTWISTY% %TABLE{ tablewidth="100%" columnwidths="170," }% | TWiki Dependency: | $TWiki::Plugins::VERSION 1.1 | | Dependencies: | enscript >= 1.6.3, CPAN:IPC::Run | | Plugin Home: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC% | | Feedback: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev | | Appraisal: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal | __Related Topics:__ VarCODE, %SYSTEMWEB%.TWikiPreferences, %SYSTEMWEB%.TWikiPlugins
Edit
|
Attach
|
Watch
|
P
rint version
|
H
istory
:
r2
<
r1
|
B
acklinks
|
V
iew topic
|
Raw edit
|
More topic actions...
Topic revision: r1 - 2019-12-04
-
TWikiContributor
Home
Site map
Lab web
Main web
Sandbox web
TWiki web
TWiki Web
User registration
Users
Groups
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
P
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
User Reference
ATasteOfTWiki
TextFormattingRules
TWikiVariables
FormattedSearch
QuerySearch
TWikiDocGraphics
TWikiSkinBrowser
InstalledPlugins
Admin Maintenance
Reference Manual
InterWikis
ManagingUsers
ManagingWebs
TWikiSiteTools
TWikiPreferences
WebPreferences
Categories
Admin Documentation
Admin Tools
Developer Doc
User Documentation
User Tools
Account
Log In
Register User
Edit
Attach
Copyright © 1999-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback
Note:
Please contribute updates to this topic on TWiki.org at
TWiki:TWiki.SyntaxHighlightingPlugin
.