Macro Bodies in Forge

Many of our existing server and cloud apps are confluence macros that perform their work against user supplied content nested within the body of the macro. The Forge documentation shows how to configure macros through parameters but I don’t find support for macro body content. Is this available and if not when might we expect to see that support in Forge?

Jeff

8 Likes

Hey Jeff—I’ve reached out to the team responsible for this, but my understanding is that there are currently no concrete plans to do nested body macros.

1 Like

Hey Jeff!
We currently don’t support nested body macro, but we are actively looking at ways we might be able to support server-like behaviour inside of Forge Macros right now. I unfortunately don’t have a concrete timeline for when that will land, or what that experience might look like.

1 Like

Hi shraj, any update on this one? I’m trying to create a new Forge Macro, but also need to be able to parse the body of the macro…

Thanks,
Remo

1 Like

@remo.siegwart

Hey! I’m not entirely sure what you mean about the body of the macro in this case - from my understanding, the Forge Macros today only contain content that the app themselves have written, and therefore the app should have access to its own content. We don’t currently offer the ability to nest macros within each other like we see in Server/P2 (where there is a separate bodied component to the app), nor do we have concrete plans to do so in the near future.

It will be interesting to see what happens here, especially with regard to (hopefully) being able to eventually migrate existing Connect macros that have plain text bodies to Forge.

We have customers with pages that still use the old TinyMCE editor (which supported pasting/typing content in the macro body insitu on the page).

With the introduction of the Fabric editor, support for plaintext bodies was handled by replacing the preview on the right-hand side of the macro editor with a text area, which can be accessed in the browser through AP.confluence.getMacroBody().

The Forge equivalent would likely be a <TextArea> in a <MacroConfig> just like any other macro parameter, but there presumably would need to be some way of linking existing body content (created with the Connect version of the macro using either TinyMCE or Fabric) to this text area.

Perhaps something as simple as a reserved name, e.g. <TextArea name=“macroBody”/>?