Class designation: Interface org.apache.wiki.api.plugin.WikiPlugin

WikiPlugin is the Java interface for a JSPWiki plugin. As noted in the Javadocs:

The plugin should return XHTML-compliant HTML markup (i.e. close all tags, quote attributes values, use <br /> instead of <br>, etc.

API#

The WikiPlugin interface contains a single method:

public String execute( WikiContext context, Map<String,String> params ) throws PluginException
This is the main entry point for any plugin. The parameters are parsed, and a special parameter called "_body" signifies the name of the plugin body, i.e. the part of the plugin that is not a parameter of the form "key=value". This is separated using an empty line. Note that it is preferred that the plugin returns XHTML-compliant HTML (i.e. close all tags, use <br /> instead of <br>, etc.

Parameters#

  • context - The current WikiContext.
  • params - A Map which contains key-value pairs. Any parameter that the user has specified on the wiki page will contain String-String parameters, but it is possible that at some future date, JSPWiki will give you other things that are not Strings.

Returns #

HTML, ready to be included into the rendered page.

Throws#

PluginException - In case anything goes wrong.

Example#

Following is an example of a simple "Hello World" plugin. This returns an HTML <div> element containing the content of the text parameter, or "Hello World!" if it is absent.

public class HelloWorld implements WikiPlugin
{

    public String execute( WikiContext context, Map<String,String> params )
            throws PluginException
    {
        StringBuilder out = new StringBuilder();
        try {
            out.append( "<div class=\"helloworld\">\n" );            
            String text = (String)params.get("text");
            if ( text == null ) {
                out.append("Hello, World!");
            } else {
                out.append( text );
            }
            out.append( "</div>" );
        } catch ( Exception e ) {
            out.append( "<div class=\"error\">\n" );
            out.append( e.getClass().getName()
                    + " thrown by HelloWorld plugin: " + e.getMessage() );
            out.append( "</div>\n" );
        }
        return out.toString();
    }

}

Once installed, this plugin would be invoked via the following WikiMarkup:

[{HelloWorld text='Good morning.'}]


See: JSPWiki Core Plugins, Installing a plugin

Category.Plugins