Confluence blueprint substitution does not work in macros with plain-text body

Viewed 298

I've created a Confluence blueprint plugin as per the basic/intermediate/advanced tutorials available from Atlassian. I now want to update the page template to include a {HTML} macro with embedded CDATA, where a URL in that CDATA contains a portion to be substituted with user-entered data.

What I'd ideally like to do, with the <at:var...> being substituted with locationid:

<ac:structured-macro ac:name="html">
  <ac:plain-text-body>
    <![CDATA[<iframe src="http://...?locationid=<at:var at:name="locationid"/>"></iframe>]]>
  </ac:plain-text-body>
</ac:structured-macro>

Unfortunately this does not work; the <at:var at:name="..."> inside CDATA can't be substituted.

I've tried various formats of this, for example substituting in the entire CDATA string itself, even going as far as substituting in the entire <ac:structured-macro> block in a single string. None work.

A Google search brought up two very similar questions on the Atlassian community wiki, this and this. Furthermore I found a Confluence Server JIRA to fix this problem, but it's been rejected and closed.

Despite the evidence against a solution I'm hoping that someone creative has an idea of how I can achieve this?

Atlassian SDK: 6.2.14

1 Answers
Related