Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Create macro via REST API

Oleksandr Rudak
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
November 6, 2019

Hi Viktor,

I have a very similar needs: I need to automatically generate HTML content and PUT it to the Confluence page.

My particular page should contain an "Expand" macro. I tried to copy HTML block containing it from another page and then modify and PUT it to Confluence, but got a view like this:

image.png

As you can see - macro doesn't work.

When I looked deeply in HTML code - I saw that each <div> tag containing macro looks like follows:

<div class="content-wrapper">
<div id="expander-2068011896" class="expand-container conf-macro output-block" data-hasbody="true" data-macro-name="expand" data-macro-id="c58eaef6-decc-453b-b27c-4807ca9e9950">
<div id="expander-control-2068011896" class="expand-control"><span class="expand-control-iconicon"> </span><span            class="expand-control-text">Click here to expand...</span></div>

.....
</div>

 

There are some attributes like:

  • id="expander-2068011896"
  • id="expander-control-2068011896"

Maybe the problem is that this ID's generating dynamically by backend once you publishing Confluence page throw web-browser, and works only in particular Confluence page? Just a suggestion...

However, the main question: how can I create HTML code containing Confluence macro, so that the macro will work properly in web-browser, after publishing it by REST API?

@Stephen Sifers, please share your suggestions.

It will be very appreciated!

1 answer

1 accepted

1 vote
Answer accepted
Sven Schatter _Lively Apps_
Atlassian Partner
November 6, 2019

Confluence doesn't use HTML but it's own version of XHTML as its storage format. When you view a page that storage format will be transformed into HTML. As you've already experienced trying to store that view HTML won't work. To create a expand macro you'll want to use the following storage format:

<ac:structured-macro ac:name="expand" ac:schema-version="1">
<ac:rich-text-body> <p>expandable content goes here</p>
</ac:rich-text-body>
</ac:structured-macro>
Oleksandr Rudak
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
November 8, 2019

That was really unexpected information! Thanks @Sven Schatter _Lively Apps_ for support, it works now!

3rdjkadjk
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 29, 2023

@Oleksandr Rudak how can one create or know a macro id of a specific macro ? 

Like Tyler Seader likes this

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events