Confluence Docs 3.0 : User Macro Plugins This page last changed on Nov 03, 2008 by smaddox.
| You can create user macros without writing a plugin through the User Macros administration menu.
## Adding a user macro plugin User Macros are a kind of Confluence plugin module. For more information about plugins in general, read Confluence Plugin Guide. To learn how to install and configure plugins (including macros), read Installing and Configuring Plugins Manually. For an introduction to writing your own plugins, read Writing Confluence Plugins
| User macro plugin modules are available in Confluence 2.3 or later
## User Macro Plugin Modules User macro plugin modules allow plugin developers to define simple macros directly in the `atlassian-plugin.xml` file, without writing any additional Java code. User macro plugin modules are functionally identical to User Macros configured through the administrative console, except that they can be packaged and distributed in the same way as normal plugins.
| User macros installed by plugin modules do not appear in the user macro section of the administrative console, and are not editable from within the user interface. They appear just as normal plugin modules in the plugin interface.
### Configuring a Macro Plugin Module Macro plugin modules are configured entirely inside the `atlassian-plugin.xml` file, as follows:
    <atlassian-plugin name='Hello World Macro' key='confluence.extra.helloworld'>
        <plugin-info>
            <description>Example user macro</description>
            <vendor name="Atlassian Software Systems" url="http://www.atlassian.com"/>
            <version>1.0</version>
        </plugin-info>

        <user-macro name='helloworld' key='helloworld' hasBody='true' bodyType='raw' outputType='html'>
            <description>Hello, user macro</description>
            <template><![CDATA[Hello, $body!]]></template>
        </user-macro>

        <!-- more macros... -->
    </atlassian-plugin>
The <template> section is required, and defines the velocity template that will be used to render the macro All the velocity variables available in User Macros are available in user macro plugin modules The name and key of the macro must be specified the same as Macro Plugins No class attribute is required The attributes of the <user-macro> element match the corresponding configuration for user macros: ### Available Attributes
Attribute | Required | Default Value | Allowed Values
--- | --- | --- | ---
hasBody | No | false | true – the macro expects a body (i.e. {hello}World{hello}) false – the macro does not expect a body (i.e. Hello, {name})
bodyType | No | raw | raw – the body will not be processed before being given to the template escapehtml – HTML tags will be escaped before being given to the template rendered – the body will be rendered as wiki text before being given to the template
outputType | No | html | html – the template produces HTML that should be inserted directly into the page wiki – the template produces Wiki text that should be rendered to HTML before being inserted into the page

Document generated by Confluence on Nov 05, 2009 23:34