Hi,
One of our customer requirement is to update the JIRA issue description value over the confluence page.
To get it done I implemented following solution with help of #ScriptRunner plugin.
Below is the Sample code to convert WIKI data into storage format. Written in script console.
import com.atlassian.confluence.content.render.xhtml.ConversionContext
import com.atlassian.confluence.content.render.xhtml.DefaultConversionContext
import com.atlassian.confluence.xhtml.api.XhtmlContent
import com.atlassian.confluence.pages.Page
import com.atlassian.confluence.core.DefaultSaveContext
import com.atlassian.sal.api.component.ComponentLocator
import com.atlassian.confluence.pages.PageManager
import org.apache.commons.lang.StringUtils
import com.atlassian.confluence.core.ContentEntityObject
PageManager pagemanager = ComponentLocator.getComponent(PageManager);
XhtmlContent xhtmlContent = ComponentLocator.getComponent(XhtmlContent);
try{
Page page = pagemanager.getPage(75990487);
ContentEntityObject contentEntityObject = page.getBodyContent().getContent();
final List<RuntimeException> wikiMarkupToStorageConversionErrors = new ArrayList();
final ConversionContext conversionContext = new DefaultConversionContext(page.toPageContext())
String jiraText = "Hi\r\n\r\n \r\n\r\nThis is +created+ for{color:#de350b}[SolutionBook|https://solutionbook.xxxx.com/]{color} testing purpose. _Please ignore._ \r\n||*JIRA*||Confluence||\r\n|Test|Best|\r\n\r\n \r\n :)\r\n * 1\r\n * 2\r\n * 3\r\n\r\n-Test-\r\n{code:java}\r\n{java code}{code}\r\n{panel}\r\n*Panel Header*\r\n\r\nPanel Text\r\n{panel}\r\n{noformat}\r\n*no* further _formatting_ is done here{noformat}\r\naksdfhasdf"
String jiradata = xhtmlContent.convertWikiToStorage(jiraText,conversionContext,wikiMarkupToStorageConversionErrors)
String pageBody = page.getBodyAsString()
pageBody = pageBody.replace("suresh",jiradata);
page.setBodyAsString(pageBody);
pagemanager.saveContentEntity(page,null);
return "pageBodyStr"
}catch(e){
log.error("Something went wrong whilw updating toc parameter:"+e.getMessage());
}
Suresh Sakhare
Software Engineer
Red Hat India
Pune,INDIA
6 accepted answers
0 comments