There is the following xthml-macro:
<xhtml-macro name="pinkbutton" class="ro.fortech.att.confluence.macro.PinkButtonMacro" key='pinkbutton'>
<description>PinkButton</description>
<category name="confluence-content"/>
<parameters>
<parameter name="label" required="true" type="string"/>
<parameter name="link" type="string" required="true"/>
</parameters>
</xhtml-macro>
And also the following class:
public class PinkButtonMacro extends FortechBaseMacro {
private static final String MACRO_BODY_TEMPLATE = "components/pinkbutton.vm";
@RequiresFormat(Format.View)
public String execute(Map<String, String> params, String body, ConversionContext conversionContext) throws MacroExecutionException {
Map<String, Object> context = MacroUtils.defaultVelocityContext();
putParamIfExists_EmptyTextIfNot(params, context, "label");
putParamIfExists_EmptyTextIfNot(params, context, "link");
return VelocityUtils.getRenderedTemplate(MACRO_BODY_TEMPLATE, context);
}
What I want is to replace the parameter name "label" to "Button label" and "link" to "Button link". The problem occures in the `execute` method because of the params.
Is there a way to get the params if there is a space character in the xhtml-macro parameter name?
As far as I know, parameters cannot have spaces. Most of the time dashes are used instead, so button-label and button-link. If you want a different name to appear in the editor window, then you'll need to include it in the .properties file. See the example here for more details:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.