我有一个与 Jira 集成的 Java 应用程序。集成意味着用户可以以应用程序格式创建问题,应用程序会将其传输到 Jira 服务器。反之亦然:用户首先可以在 Jira Server 上创建问题,然后将其转移到应用程序。
应用程序以 XHTML 形式保留问题描述。 Jira 将其保留在自己的标记中。所以我需要一个转换器。
我决定使用
com.atlassian.renderer:atlassian-renderer
库。 XHTML -> jira 转换非常简单:
private DefaultWysiwygConverter converter= new DefaultWysiwygConverter();
String jiraMarkup = converter.convertXHtmlToWikiMarkup(xhtmlString);
但反之亦然,转换非常复杂!我不能只打电话
String xhtmlString= converter.convertWikiMarkupToXHtml(newjiraMarkup);
DefaultWysiwygConverter
需要传递一个WikiStyleRenderer
实例。该库不包含默认的 WikiStyleRenderer
实现。它有一个 V2RendererFacade
,但它的构造函数需要四个参数。它们中的每一个都是抽象,需要以某种方式实现等等......
public V2RendererFacade(RendererConfiguration rendererConfiguration, LinkRenderer defaultLinkRenderer, EmbeddedResourceRenderer defaultEmbeddedRenderer, Renderer renderer) {
this.rendererConfiguration = rendererConfiguration;
this.defaultLinkRenderer = defaultLinkRenderer;
this.defaultEmbeddedRenderer = defaultEmbeddedRenderer;
this.renderer = renderer;
}
有什么简单直接的方法可以进行这种转换吗?有工作示例吗?
这对我有用:
RendererManager rendererManager = ComponentAccessor.getComponent(RendererManager.class);
JiraRendererPlugin renderer = rendererManager.getRendererForType("atlassian-wiki-renderer");
String output = renderer.render(issue.getDescription(), issue.getIssueRenderContext());