如何使用生成内联输出的body创建汇合宏?以下宏:
## @noparams
<font color="red">$body</font>
适用于此文
Before macro [macro starts here]macro body[macro ends here] after macro.
将创建此HTML代码:
<p>Before macro </p>
<font color="red">macro body</font>
<p>after macro.</p>
如何删除<p></p>
代码?
答案 0 :(得分:3)
这是Confluence的一个问题。为避免这种情况,您必须使用html输出。如果正文或宏包含wiki标记,那么您必须手动渲染它。我的解决方法如下:
## Use this macro to avoid new lines:
#macro(doNothing)#end
##
## (Do stuff with body in wiki format, if appropriate)
##
## Convert to html and remove paragraph tags:
#set($renderedhtml = "")
#if ($body && ($body.length()>0))
#set($globalHelper = $action.getHelper())
#set($renderedhtml = $globalHelper.renderConfluenceMacro("$body").replaceAll("</?[pP]>",""))
#end
##
## (Do stuff with body in html format, if appropriate)
##
## Output text:
$renderedhtml#doNothing()
编辑:如果您希望保留宏中的p标记,则需要修改正则表达式。上面代码中的正则表达式将删除所有p标记。