Как преобразовать строку, содержащую макрос, в вики-разметке в формат xhtml

Во время процедуры миграции с 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').


person user2424485    schedule 09.01.2015    source источник


Ответы (1)


Мне удалось заставить его работать, используя интерфейс 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 внедрил правильный экземпляр.

person Community    schedule 11.03.2019