universe@86: package de.uapcore.lightpit.viewmodel; universe@86: universe@162: import com.vladsch.flexmark.ext.gfm.strikethrough.StrikethroughExtension; universe@162: import com.vladsch.flexmark.ext.tables.TablesExtension; universe@162: import com.vladsch.flexmark.html.HtmlRenderer; universe@162: import com.vladsch.flexmark.parser.Parser; universe@162: import com.vladsch.flexmark.util.data.MutableDataSet; universe@146: import de.uapcore.lightpit.entities.Issue; universe@146: import de.uapcore.lightpit.entities.IssueComment; universe@86: universe@162: import java.util.Arrays; universe@146: import java.util.List; universe@86: universe@146: public class IssueDetailView extends ProjectView { universe@99: private Issue issue; universe@86: universe@124: private List comments; universe@86: universe@99: public void setIssue(Issue issue) { universe@86: this.issue = issue; universe@86: } universe@86: universe@86: public Issue getIssue() { universe@86: return issue; universe@86: } universe@86: universe@124: public List getComments() { universe@124: return comments; universe@124: } universe@124: universe@124: public void setComments(List comments) { universe@124: this.comments = comments; universe@124: } universe@162: universe@162: public void processMarkdown() { universe@162: final var options = new MutableDataSet() universe@162: .set(Parser.EXTENSIONS, Arrays.asList(TablesExtension.create(), StrikethroughExtension.create())) universe@162: .toImmutable(); universe@162: final var parser = Parser.builder(options).build(); universe@162: final var renderer = HtmlRenderer.builder(options).build(); universe@162: universe@162: issue.setDescription(renderer.render(parser.parse(issue.getDescription()))); universe@162: for (var comment : comments) { universe@162: comment.setComment(renderer.render(parser.parse(comment.getComment()))); universe@162: } universe@162: } universe@86: }