在从Confluence 3.5.13到Confluence 5.0.3的迁移过程中,我需要在我的MacroMigration类中将包含一些文本和宏的字符串转换为xhtml格式。
我尝试过以下代码:
WikiStyleRenderer wikiStyleRenderer = (WikiStyleRenderer) ContainerManager.getComponent("wikiStyleRenderer");
String result= wikiStyleRenderer.convertWikiToXHtml(new PageContext(context.getEntity()), body.getBody());
它适用于简单文字,但只要它包含对宏的引用(例如{info:title=int Random(int range)}{info}
),结果就是换行符('\n'
)。
答案 0 :(得分:0)
我已经成功使用com.atlassian.confluence.xhtml.api.XhtmlContent接口使它正常工作。这是我的做法:
private XhtmlContent xhtmlContent;
public void setXhtmlContent(XhtmlContent xhtmlContent) {
this.xhtmlContent = xhtmlContent;
}
public MacroDefinition migrate(MacroDefinition macroDefinition,
ConversionContext context) {
MacroBody body = macroDefinition.getBody();
List<RuntimeException> migrationExceptions = new ArrayList<RuntimeException>();
String resultContent;
resultContent = xhtmlContent.convertWikiToStorage(body.getBody(),
context, migrationExceptions);
二传手setXhtmlContent()仅在此处供Confluence注入正确的实例。