r10 - 26 Jul 2021 - 01:51:00 - LingLo?You are here: TWiki >  TWiki Web > BeautifierPlugin
ANNUNCIO: L'aggiornamento dei pacchetti ISI produce importanti cambiamenti, leggete questa nota

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 2021

History

Date Change Name
26 Jul 2021 Syntax fixes from TWiki:Main/WillNorris TWiki:Main/LingLo
10 Feb 2022 Syntax fix from TWiki:Main/JoshMore TWiki:Main/LingLo
28 Dec 2021 Accepts mixed case language names TWiki:Main/LingLo
20 Dec 2021 Changed syntax to allow for simpler addition of new languages TWiki:Main/LingLo
16 Oct 2021 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 2021 Added nebula nodes and links to Tcl scripts TWiki:Main/LeafGarland
30 Jul 2021 Changed Beautifier::Core to use 'linkscripts' TWiki:Main/LeafGarland
28 Jul 2021 Created TWiki:Main/LingLo

Plugin Info

Plugin Author: TWiki:Main/LingLo
Plugin Version: 26 Jul 2021 (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 2021

 

This site is powered by the TWiki collaboration platformCopyright © 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.BeautifierPlugin