如何将wiki标记中包含宏的字符串转换为xhtml格式

问题描述 投票:0回答:1

在从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')。

confluence
1个回答
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);

setter setXhtmlContent()就是Confluence注入正确实例的地方。

© www.soinside.com 2019 - 2024. All rights reserved.