Skip to topic | Skip to bottom
Home

Start of topic | Skip to actions

BeautifierPlugin

This plugin allows you to have code fragments automatically formatted and highlighted. It depends on the Beautifier library written by Mike Jewell.

Syntax Rules

  • Just paste the code between %CODE{"syntax"}% and %ENDCODE%. The following indicates the syntax used for the different languages:

Language Syntax
C++ %CODE{"cpp"}% ... %ENDCODE%
C# %CODE{"csharp"}% ... %ENDCODE%
Java %CODE{"java"}% ... %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%
XML %CODE{"xml"}% ... %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 easy by downloading the full PHP dist from http://www.beautifier.org and converting the relevant language file from PHP to Perl.

Examples

%CODE{"cpp"}%
   void foo() {
     print("Do stuff.\n");
   }
%ENDCODE%

BeautifierPlugin Global Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, i.e. %INTERWIKIPLUGIN_SHORTDESCRIPTION%

  • One line description, is shown in the TextFormattingRules? topic:
    • Set SHORTDESCRIPTION = Highlights and formats code fragments.

Plugin Installation Instructions

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.

  • Download the ZIP file from the Plugin web (see below)
  • Unzip BeautifierPlugin.zip in your twiki installation directory, this will also install the Beautifier library by default. Content:
    File: Description:
    data/TWiki/BeautifierPlugin.txt Plugin topic
    data/TWiki/BeautifierPlugin.txt,v Plugin topic repository
    lib/TWiki/Plugins/BeautifierPlugin.pm Plugin Perl module
  • To install the Beautifier library, either install it in the Perl library folder or unpack it into the twiki directory. For the latter, the following files are installed:
    File: Description:
    lib/Beautifier/Context.pm  
    lib/Beautifier/Core.pm  
    lib/Beautifier/HFile.pm  
    lib/Beautifier/Magic.pm  
    lib/Beautifier/MagicConfig.pm  
    lib/HFile/HFile_cpp.pm  
    lib/HFile/HFile_csharp.pm C#, courtesy of TWiki:Main/MatthewMastracci
    lib/HFile/HFile_java.pm  
    lib/HFile/HFile_lua.pm  
    lib/HFile/HFile_makefile.pm Makefile, courtesy of Agora:Main/BruceMitchener
    lib/HFile/HFile_perl.pm  
    lib/HFile/HFile_php3.pm  
    lib/HFile/HFile_plsql.pm PL/SQL, courtesy of TWiki:Main/FranzJosefSilli
    lib/HFile/HFile_python.pm  
    lib/HFile/HFile_scheme.pm  
    lib/HFile/HFile_tcl.pm  
    lib/HFile/HFile_xml.pm XML, courtesy of TWiki:Main/FranzJosefSilli
    lib/Output/ANSI.pm  
    lib/Output/DocBook.pm  
    lib/Output/HTML.pm  
    lib/TWiki/Plugins  
    lib/TWiki/Plugins/BeautifierPlugin.pm  
  • To get the doxygen-ish box around the code fragment, the following is needed in the skin's stylesheet:

div.fragment{
        background : #FFFFCC;
        border : 1px solid #CCCCCC;
        margin-left : 2em;
        margin-right : 2em;
        padding : 4px;
}
  • Test if the installation was successful:

#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);
        }
}

Bugs

  • Why doesn't it highlight Tcl keywords with 3 spaces in front? See AudioExample?, the first code snippet has 4 space indents the rest have 3.
    -- TWiki:Main/LeafGarland 31 Jul 2002

History

Date Change Name
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 Info

Plugin Author: TWiki:Main/LingLo
Plugin Version: 26 Jul 2003 (V1.14)
CPAN Dependencies: none
Other Dependencies: Beautifier (supplied)
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

-- LingLo? - 18 Dec 2002

You are here: TWiki > BeautifierPlugin

to top

Copyright © 1997-2024 California Institute of Technology.