Как да конвертирате низ, съдържащ макрос в уики маркиране, в 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