1 package de.uapcore.lightpit.viewmodel; |
|
2 |
|
3 import com.vladsch.flexmark.ext.gfm.strikethrough.StrikethroughExtension; |
|
4 import com.vladsch.flexmark.ext.tables.TablesExtension; |
|
5 import com.vladsch.flexmark.html.HtmlRenderer; |
|
6 import com.vladsch.flexmark.parser.Parser; |
|
7 import com.vladsch.flexmark.util.data.MutableDataSet; |
|
8 import de.uapcore.lightpit.entities.Issue; |
|
9 import de.uapcore.lightpit.entities.IssueComment; |
|
10 |
|
11 import java.util.Arrays; |
|
12 import java.util.List; |
|
13 |
|
14 public class IssueDetailView extends ProjectView { |
|
15 private Issue issue; |
|
16 |
|
17 private List<IssueComment> comments; |
|
18 |
|
19 public void setIssue(Issue issue) { |
|
20 this.issue = issue; |
|
21 } |
|
22 |
|
23 public Issue getIssue() { |
|
24 return issue; |
|
25 } |
|
26 |
|
27 public List<IssueComment> getComments() { |
|
28 return comments; |
|
29 } |
|
30 |
|
31 public void setComments(List<IssueComment> comments) { |
|
32 this.comments = comments; |
|
33 } |
|
34 |
|
35 public void processMarkdown() { |
|
36 final var options = new MutableDataSet() |
|
37 .set(Parser.EXTENSIONS, Arrays.asList(TablesExtension.create(), StrikethroughExtension.create())) |
|
38 .toImmutable(); |
|
39 final var parser = Parser.builder(options).build(); |
|
40 final var renderer = HtmlRenderer.builder(options).build(); |
|
41 |
|
42 issue.setDescription(renderer.render(parser.parse(issue.getDescription()))); |
|
43 for (var comment : comments) { |
|
44 comment.setComment(renderer.render(parser.parse(comment.getComment()))); |
|
45 } |
|
46 } |
|
47 } |
|