Confluence 2.9 : User Macros
This page last changed on Jul 02, 2008 by mike@atlassian.com.
User macros allow you to create simple formatting macros using the Confluence web interface.
You need to have System Administrator permissions in order to create user macros. On this page: Error formatting macro: toc: java.lang.NullPointerException
Creating a User MacroTo create a user macro,
ExamplesExample 1: User Macro to Create a Red BoxAs an example, let's write a simple macro that simply creates a red box (using an existing Confluence style) around some text (useful for writing about error conditions for example - hence the macro name 'error'). After clicking "New User Macro", enter error as the Name of your macro, and then put the following in the Template text area:
<div class="errorbox">$body</div>
Then click Add. You should now see your new macro in the User Macros library, and you can now enable and disable it individually. To use the macro within a page, you would add notation like: {error}This is bad{error} And your page would (magically!) have an error box on it, like so: This is bad Example 2: User Macro to Display 'Hello World'Take a look at an example of a 'Hello World' macro. Example 3: User Macro to Demonstrate the Use of ParametersThis example demonstrates how you can pass parameters into your macro. Let's say you want to write your own font colour macro: <span style="color: $param0">$body</span>
The usage of this macro would be: {colour:red}Some example text{colour} which will produce: Some example text If your macro requires more than one parameter, you can use variables $param0 to $param9 to represent them. To specify multiple parameters, use: {colour:red|blue|green} Where red, blue and green are the 1st, 2nd and 3rd parameters respectively. Alternatively, you can also use explicitly named parameters in your macro. These macro parameters will appear as variables with the name $param<x> where <x> is the name of your parameter. To specify named parameters, use: {style:colour=red} In your user macro you can then use $paramcolour which will have the value red in this case. Available ObjectsThe user macro above uses the $body object, which is available for use within your user macro template if the macro has a body. You can pass parameters to your user macro in the same way as any other macro, separated by the pipe | sign. These parameters are provided to your template as param1, param2, ... paramN. The complete list of objects available for use are:
Normally, a parameter like $param2 that is missing will appear as '$param2' in the output. To display nothing when a variable is not set, use an exclamation mark after the dollar sign like '$!param2'. You can read more about object usage in the Velocity Template Overview. User Macro LibraryBelow is a list of existing user macros, written by other Confluence users. If you wish, you can install these on your Confluence site.
RELATED TOPICSUser Macro Plugins |
![]() |
Document generated by Confluence on Aug 07, 2008 19:08 |