macros - Macro de usuario de confluencia en línea
confluence (1)
¿Cómo crear una macro de confluencia con un cuerpo que produce una salida en línea? La siguiente macro:
## @noparams
<font color="red">$body</font>
aplicado a este texto
Before macro [macro starts here]macro body[macro ends here] after macro.
Creará este código HTML:
<p>Before macro </p>
<font color="red">macro body</font>
<p>after macro.</p>
¿Cómo eliminar las etiquetas <p></p>
?
Este es un problema con Confluence. Para evitar esto, debe usar la salida html. Si el cuerpo o su macro contienen marcado wiki, entonces tendrá que renderizarlo a mano. Mi solución es la siguiente:
## 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()
EDITAR: Querrá modificar la expresión regular si hay etiquetas p en su macro que quiera conservar. La expresión regular en el código anterior eliminará TODAS las etiquetas p.