如何使用 WikiToXhtmlMigrator 使用 Confluence SDK 进行转换
How to Use WikiToXhtmlMigrator to Convert using Confluence SDK
我正在尝试将 WikiMarkup 数据转换为 Confluence 的基于 XHTML 的格式。我看到有两种不同的方法可以做到这一点。
1) 使用基于 rest/XML Rpc API convertWikiToStorageFormat(String token, String markup) 来做同样的事情。
2) 其他方法是使用 WikiToXhtmlMigrator 来完成相同的任务。因为我使用的是 Confluence SDK,所以我选择第二种方法来做同样的事情。
public String getXHTMLConvertedTextFromWiki(String markupData){
String content = null;
try {
RenderContext renderContext = new RenderContext();
DefaultConversionContext defaultConversionContext = new DefaultConversionContext(renderContext);
ExceptionTolerantMigrator wikiToXhtmlMigrator = (ExceptionTolerantMigrator) ContainerManager.getComponent("wikiToXhtmlMigrator");
content = wikiToXhtmlMigrator.migrate(markupData, defaultConversionContext).getContent();
}catch(Exception e){
e.printStackTrace();
}
return content;
}
但我总是遇到异常:
[INFO] [talledLocalContainer] java.lang.NullPointerException
[INFO] [talledLocalContainer] at com.atlassian.confluence.content.render.xhtml.migration.WikiToXhtmlMigrator.migrate(WikiToXhtmlMigrator.java:57)
[INFO] [talledLocalContainer] at com.atlassian.confluence.content.render.xhtml.migration.WikiToXhtmlMigrator.migrate(WikiToXhtmlMigrator.java:69)
我试图通过在 render Context 中设置 All 来推送渲染模式,但遇到了同样的异常。
renderContext.pushRenderMode(RenderMode.ALL);
请告诉我这个例子中的问题是什么,并展示正确的方法。
能够通过以下代码将标记转换为 Xhtml。
public String getXHTMLConvertedTextFromWiki(String wikiText){
String content = null;
try {
List<RuntimeException> exceptions = newArrayList();
XhtmlContent xhtmlContent = (XhtmlContent)ContainerManager.getComponent("xhtmlContent");
content = xhtmlContent.convertWikiToStorage(wikiText, new DefaultConversionContext(new PageContext()),exceptions);
for(RuntimeException e : exceptions){
log.error(e.getMessage());
}
}catch(Exception e){
e.printStackTrace();
}
return content;
}
请确保,如果从外部源读取页面标记数据,则在读取页面标记数据时不应丢失换行符。
我正在尝试将 WikiMarkup 数据转换为 Confluence 的基于 XHTML 的格式。我看到有两种不同的方法可以做到这一点。
1) 使用基于 rest/XML Rpc API convertWikiToStorageFormat(String token, String markup) 来做同样的事情。 2) 其他方法是使用 WikiToXhtmlMigrator 来完成相同的任务。因为我使用的是 Confluence SDK,所以我选择第二种方法来做同样的事情。
public String getXHTMLConvertedTextFromWiki(String markupData){
String content = null;
try {
RenderContext renderContext = new RenderContext();
DefaultConversionContext defaultConversionContext = new DefaultConversionContext(renderContext);
ExceptionTolerantMigrator wikiToXhtmlMigrator = (ExceptionTolerantMigrator) ContainerManager.getComponent("wikiToXhtmlMigrator");
content = wikiToXhtmlMigrator.migrate(markupData, defaultConversionContext).getContent();
}catch(Exception e){
e.printStackTrace();
}
return content;
}
但我总是遇到异常:
[INFO] [talledLocalContainer] java.lang.NullPointerException
[INFO] [talledLocalContainer] at com.atlassian.confluence.content.render.xhtml.migration.WikiToXhtmlMigrator.migrate(WikiToXhtmlMigrator.java:57)
[INFO] [talledLocalContainer] at com.atlassian.confluence.content.render.xhtml.migration.WikiToXhtmlMigrator.migrate(WikiToXhtmlMigrator.java:69)
我试图通过在 render Context 中设置 All 来推送渲染模式,但遇到了同样的异常。
renderContext.pushRenderMode(RenderMode.ALL);
请告诉我这个例子中的问题是什么,并展示正确的方法。
能够通过以下代码将标记转换为 Xhtml。
public String getXHTMLConvertedTextFromWiki(String wikiText){
String content = null;
try {
List<RuntimeException> exceptions = newArrayList();
XhtmlContent xhtmlContent = (XhtmlContent)ContainerManager.getComponent("xhtmlContent");
content = xhtmlContent.convertWikiToStorage(wikiText, new DefaultConversionContext(new PageContext()),exceptions);
for(RuntimeException e : exceptions){
log.error(e.getMessage());
}
}catch(Exception e){
e.printStackTrace();
}
return content;
}
请确保,如果从外部源读取页面标记数据,则在读取页面标记数据时不应丢失换行符。