6

インライン出力を生成する 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>タグを削除するには?

4

1 に答える 1

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 タグを削除します。

于 2012-04-25T07:23:54.847 に答える