Как программно преобразовать вики-разметку JIRA в HTML с помощью нативного API Atlassian?
Я пытаюсь получить описание проблемы от JIRA, чтобы поместить ее в шаблон формата хранилища слияния, чтобы создать страницу в слиянии. Но я не смог найти способ перевести описание необработанных данных в распознаваемый формат формата хранения. Вот конкретный пример: Для проблемы в JIRA со следующим описанием:
Строка описания, которую я получаю, вызывая com.atlassian.jira.issue.Issue.getDescription():
{color:#14892c}Recently Updated{color}
h1. *_As you and your team create content this area will fill up and display the latest updates._*
Если я не ошибаюсь, полученная строка - это ее шаблонное представление вики. Вставка его непосредственно в формат хранилища не будет распознаваться механизмом шаблонов, поэтому не будет правильно отображаться.
Я пытался использовать, чтобы заключить строку, но это не работает. Кажется, мне нужно преобразовать вики-представление в HTML или XHTML. Как я могу добиться этого в коде Java?
Спасибо
2 ответа
Чтобы преобразовать вики-разметку JIRA в вывод в формате HTML из JIRA:
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.ComponentManager;
public String renderWikiMarkup(Issue issue) {
RendererManager rendererManager = ComponentManager.getComponent(RendererManager.class);
JiraRendererPlugin renderer = rendererManager.getRendererForType("atlassian-wiki-renderer");
String output = renderer.render(issue.description, issue.getIssueRenderContext());
return output;
}
Вот полностью рабочее решение для Atlassian Jira 8.0.0 или новее.
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.RendererManager;
import com.atlassian.jira.issue.fields.renderer.JiraRendererPlugin;
import com.atlassian.jira.issue.fields.renderer.IssueRenderContext;
public String renderWikiMarkupOfDescription(String descriptor, Issue issue) {
RendererManager rendererManager = ComponentAccessor.getComponentOfType(RendererManager.class);
JiraRendererPlugin renderer = rendererManager.getRendererForType("atlassian-wiki-renderer");
String output = renderer.render(descriptor, new IssueRenderContext(issue));
return output;
}
public String renderWikiMarkupOfEnvironment(String environment, Issue issue) {
RendererManager rendererManager = ComponentAccessor.getComponentOfType(RendererManager.class);
JiraRendererPlugin renderer = rendererManager.getRendererForType("atlassian-wiki-renderer");
String output = renderer.render(environment, new IssueRenderContext(issue));
return output;
}
И использование:
renderWikiMarkupOfDescription(issue.getDescription(), issue);
renderWikiMarkupOfEnvironment(issue.getEnvironment(), issue);
И скриншоты, подтверждающие 100% успех работы: