public interface Macro
| Modifier and Type | Field and Description |
|---|---|
static String |
RAW_PARAMS_KEY |
| Modifier and Type | Method and Description |
|---|---|
String |
execute(Map<String,Object> parameters,
String body,
RenderContext renderContext)
Execute the macro.
|
RenderMode |
getBodyRenderMode()
If the macro has a body, return the mode in which the body of the macro
should be rendered.
|
TokenType |
getTokenType(Map<String,Object> parameters,
String body,
RenderContext context)
Declares what sort of html elements are returned by the macro.
|
WysiwygBodyType |
getWysiwygBodyType()
Defines how the Macro's body should be rendered for Wysiwyg editors.
|
boolean |
hasBody()
Determine if the macro is a one-shot macro, or one that takes a body.
|
boolean |
isInline()
Deprecated.
since Renderer 6 (Confluence 3.1) use
getTokenType(java.util.Map<java.lang.String, java.lang.Object>, java.lang.String, com.atlassian.renderer.RenderContext) instead, which will by
default call this method. However, for macros to be backwardly compatible they will still need to implement
isInline() too. |
boolean |
suppressMacroRenderingDuringWysiwyg()
Suppress the rendering of the macro -- the macro's body may still be rendered (depending on the render mode of
the macro), but the HTML the macro adds will not be created.
|
boolean |
suppressSurroundingTagDuringWysiwygRendering()
Suppress surrounding div/span during Wysiwyg rendering.
|
static final String RAW_PARAMS_KEY
TokenType getTokenType(Map<String,Object> parameters, String body, RenderContext context)
TokenType.INLINE elements will have paragraphs drawn around them, or be incorporated into paragraphs
they are included in.
TokenType.BLOCK elements will be treated as their own paragraph, splitting any paragraphs they
would otherwise be in.
TokenType.INLINE_BLOCK elements will not have paragraphs drawn around them, but they won't split any
paragraphs they appear in either.
Macros that contain elements that shouldn't appear in a paragraph, such as pre, should return
TokenType.BLOCK. If it produces a span, replacement text or text decoration, return
TokenType.INLINE. If it affects logic of whether its children are displayed but doesn't add its own
content, or you aren't sure what to return, return TokenType.INLINE_BLOCK.
parameters - the parameters passed to the macro. These are useful here for macros that take parameters
which dramatically alter the appearance of the macro.body - the macro body is provided in case its content could have a bearing on the type of element
returned by the macrocontext - the context is provided in case its content could have a bearing on the type of element
returned by the macroboolean isInline()
getTokenType(java.util.Map<java.lang.String, java.lang.Object>, java.lang.String, com.atlassian.renderer.RenderContext) instead, which will by
default call this method. However, for macros to be backwardly compatible they will still need to implement
isInline() too.
Most macros will want to return false here.
boolean hasBody()
RenderMode getBodyRenderMode()
If this method returns null, it causes the macro processor to treat the macro as one that returns wiki-text rather than HTML. The body of the macro will be passed in un-rendered, and the macro's output will be inserted back into the page for further normal processing by the wiki-engine.
String execute(Map<String,Object> parameters, String body, RenderContext renderContext) throws MacroException
getBodyRenderMode()).
Macros are expected to output HTML. The output of macros will not be subjected to any
further processing by the wiki-engine. If your macro produces wiki-text, you are responsible
for rendering that text to HTML yourself using a SubRenderer
or WikiStyleRenderer. If your macro returns pure wiki-text, you
can force further processing in the normal chain by returning null from getBodyRenderMode()
parameters - the parameters included in the macrobody - the content of the body of the macrorenderContext - the rendering context in which the macro was executedMacroException - if the macro fails in some unremarkable way. If the
macro fails in a way that is important to the server maintainer
(i.e. something is badly wrong), throw a RuntimeException instead.boolean suppressSurroundingTagDuringWysiwygRendering()
boolean suppressMacroRenderingDuringWysiwyg()
WysiwygBodyType getWysiwygBodyType()
false from suppressSurroundingTagDuringWysiwygRendering(),
true from suppressMacroRenderingDuringWysiwyg() and true from hasBody().Copyright © 2019 Atlassian. All rights reserved.