This plugin allows you to have code fragments automatically formatted and highlighted. It uses the Beautifier library (included) written by Mike Jewell.
%CODE{"language"}%
and %ENDCODE%
. The following table indicates the values used for the different languages:
Language Syntax bash %CODE{"bash"}%
...%ENDCODE%
C++ %CODE{"cpp"}%
...%ENDCODE%
C# %CODE{"csharp"}%
...%ENDCODE%
Java %CODE{"java"}%
...%ENDCODE%
JavaScript %CODE{"javascript"}%
...%ENDCODE%
Lua %CODE{"lua"}%
...%ENDCODE%
Makefile %CODE{"makefile"}%
...%ENDCODE%
Perl %CODE{"perl"}%
...%ENDCODE%
PL/SQL %CODE{"plsql"}%
...%ENDCODE%
Python %CODE{"python"}%
...%ENDCODE%
PHP3 %CODE{"php3"}%
...%ENDCODE%
Scheme %CODE{"scheme"}%
...%ENDCODE%
TCL %CODE{"tcl"}%
...%ENDCODE%
HTML %CODE{"html"}
...%ENDCODE%
XML %CODE{"xml"}%
...%ENDCODE%
Verilog %CODE{"verilog"}%
...%ENDCODE%
VHDL %CODE{"vhdl"}%
...%ENDCODE%
Additional languages can be added since the Beautifier library is flexible and can support a wide range of language families. Other languages can be added with relative ease by downloading the full PHP dist from http://www.beautifier.org and converting the relevant language file from PHP to Perl.
The code fragments are formaated using CSS. To change the look, upload a new version of style.css to this topic.
%CODE{"cpp"}% void foo() { print("Do stuff.\n"); } %ENDCODE%
Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%
, i.e. %BEAUTIFIERPLUGIN_SHORTDESCRIPTION%
Note: You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the server where TWiki is running.
BeautifierPlugin.zip
in your twiki installation directory, this will also install the Beautifier library by default. Content:
configure
in your TWiki installation, and enable the plugin in the {Plugins} section.
File: | Description: |
---|---|
data/TWiki/BeautifierPlugin.txt | NEW |
data/TWiki/VarCODE.txt | NEW |
lib/Beautifier/Context.pm | NEW |
lib/Beautifier/Core.pm | NEW |
lib/Beautifier/HFile.pm | NEW |
lib/Beautifier/Magic.pm | NEW |
lib/Beautifier/MagicConfig.pm | NEW |
lib/HFile/HFile_bash.pm | NEW |
lib/HFile/HFile_cpp.pm | NEW |
lib/HFile/HFile_csharp.pm | NEW |
lib/HFile/HFile_html.pm | NEW |
lib/HFile/HFile_java.pm | NEW |
lib/HFile/HFile_javascript.pm | NEW |
lib/HFile/HFile_lua.pm | NEW |
lib/HFile/HFile_makefile.pm | NEW |
lib/HFile/HFile_perl.pm | NEW |
lib/HFile/HFile_php3.pm | NEW |
lib/HFile/HFile_plsql.pm | NEW |
lib/HFile/HFile_python.pm | NEW |
lib/HFile/HFile_scheme.pm | NEW |
lib/HFile/HFile_tcl.pm | NEW |
lib/HFile/HFile_vhdl.pm | NEW |
lib/HFile/HFile_xml.pm | NEW |
lib/Output/ANSI.pm | NEW |
lib/Output/DocBook.pm | NEW |
lib/Output/HTML.pm | NEW |
lib/TWiki/Plugins/BeautifierPlugin.pm | NEW |
pub/TWiki/BeautifierPlugin/style.css | NEW |
#include <nworld.h> /** @brief Advance the simulation by one timeslice. */ void nWorld::StepSim() { // Iterate simulation loop for (node = entityList.GetHead(); node != NULL; node = node->GetSucc()) { entity = (nEntity*)node->GetPtr(); entity->Trigger(this, this->stepSize); } }
BeautifierPlugin Error: Unable to handle "unknown" language.
testing an invalid language setting...
Date | Change | Name |
---|---|---|
20 May 2007 | added JavaScript language file, removed legacy CODE_lang construct | TWiki:Main.WillNorris![]() |
30 Apr 2007 | warnings cleanup; no functional changes | TWiki:Main.WillNorris![]() |
27 Apr 2007 | automatically adds CSS for formatting code fragments | TWiki:Main.WillNorris![]() |
1 Jan 2006 | upgraded to TWiki::Func::extractNameValuePair for better parameter parsing, upgraded TWiki:Plugins.BuildContrib![]() |
TWiki:Main.WillNorris![]() |
26 Jul 2003 | Syntax fixes from TWiki:Main/WillNorris![]() |
TWiki:Main/LingLo![]() |
10 Feb 2003 | Syntax fix from TWiki:Main/JoshMore![]() |
TWiki:Main/LingLo![]() |
28 Dec 2002 | Accepts mixed case language names | TWiki:Main/LingLo![]() |
20 Dec 2002 | Changed syntax to allow for simpler addition of new languages | TWiki:Main/LingLo![]() |
16 Oct 2002 | Added nebula nodes and links to Python scripts, but it doesn't work since the node names are usually in strings | TWiki:Main/LeafGarland![]() |
30 Jul 2002 | Added nebula nodes and links to TCL scripts | TWiki:Main/LeafGarland![]() |
30 Jul 2002 | Changed Beautifier::Core to use 'linkscripts' | TWiki:Main/LeafGarland![]() |
28 Jul 2002 | Created | TWiki:Main/LingLo![]() |
Plugin Author: | TWiki:Main/LingLo![]() |
Plugin Version: | 27 Apr 2007 |
CPAN Dependencies: | none |
Other Dependencies: | Beautifier![]() |
Perl Version: | 5.005 |
Plugin Home: | http://TWiki.org/cgi-bin/view/Plugins/BeautifierPlugin![]() |
Feedback: | http://TWiki.org/cgi-bin/view/Plugins/BeautifierPluginDev![]() |
Related Topics: TWikiPreferences, TWikiPlugins
-- TWiki:Main.LingLo - 18 Dec 2002