Recent Changes - Search:

Cookbook

PmWiki

pmwiki.org

Beautifier

Summary: Perform syntax highlighting for source code displayed on wiki pages
Version:
Prerequisites: PmWiki version: 2 or later
Status:
Maintainer:
Discussion: Beautifier-Talk
Categories: Layout

Questions answered by this recipe

Can I use PmWiki to perform syntax highlighting for source code displayed on wiki pages?

Answer

Yes, the beautifier.tgzΔ script integrates Mike Jewell's Beautifier (http://www.beautifier.org -- site now defunct) into PmWiki and adds custom markup for source code blocks.

(Beautifer website gone as of 2007-08-20)
FWIW, it's still available at Sourceforge

Notes

This version of Beautifier requires PmWiki 2 or later. It's based on the beautifier recipe that was developed for PmWiki 0.6 by Jason Perkins. Once installed, it adds markup of the form

=lang [=
lang source code
=]

where lang is any of the supported beautifiers.

Installation

Start by downloading and unpacking beautifier.tgzΔ to the cookbook/beautifier/ directory. This default package provides support for C++, C#, JavaScript, Lua, Perl, PHP, Python, VB.NET, and XML (sort of). If you want support for other languages, you can grab more HFiles for the Beautifier from Koders or download all the available HFiles from SourceForge (the original site is dead). While you're there, give some props to Mike for making this excellent tool available.

In your local/config.php file, you must include the beautifier.php script and register any languages you want to use. The following would register all of the language beautifiers distributed with the script:

    include_once('cookbook/beautifier/beautifier.php');
    register_beautifier('cpp');
    register_beautifier('csharp');
    register_beautifier('javascript');
    register_beautifier('lua');
    register_beautifier('php3');
    register_beautifier('python');
    register_beautifier('vbdotnet');
    register_beautifier('xml');

For more control over the appearance of the formatted code, you may wish to set $BeautifierOutputType='css', which will use Beautifier's CSS writer instead of the default HTML. You'll want to create your own CSS entries to support the highlighting.

Markup

To enter source code into PmWiki, use the following markup:

=csharp [=
// C# source code goes here
=]

Replace "csharp" with the appropriate language identifier (php3, vbdotnet, etc.) This page has the beautifier enabled for php3, csharp, and css, so you can play with it in the sandbox below.

The formatted output of Beautifier is placed into a <pre class="sourcecode"></pre> tag, so you can tweak the appearance of the block in a stylesheet. Here's a nice one:

 .sourcecode {
   background-color: #eef;
   border: #666 1px solid;
   padding: 1em;
 }

See Also

Contributors

  • Jason Perkins
  • PedroRabinovitch (not much really, just corrected a typo at the replacement pattern. I'll add more soon)
  • Pm - revised for PmWiki 2.0, 2004-12-02

Comments

See discussion at Beautifier-Talk

Edit - History - Print - Recent Changes - Search
Page last modified on September 02, 2012, at 03:36 PM