src/main/java/de/uapcore/lightpit/viewmodel/IssueDetailView.java

changeset 162
2adc8623dd89
parent 146
b0e83cab0bde
equal deleted inserted replaced
161:3d9218457b62 162:2adc8623dd89
1 package de.uapcore.lightpit.viewmodel; 1 package de.uapcore.lightpit.viewmodel;
2 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;
3 import de.uapcore.lightpit.entities.Issue; 8 import de.uapcore.lightpit.entities.Issue;
4 import de.uapcore.lightpit.entities.IssueComment; 9 import de.uapcore.lightpit.entities.IssueComment;
5 10
11 import java.util.Arrays;
6 import java.util.List; 12 import java.util.List;
7 13
8 public class IssueDetailView extends ProjectView { 14 public class IssueDetailView extends ProjectView {
9 private Issue issue; 15 private Issue issue;
10 16
23 } 29 }
24 30
25 public void setComments(List<IssueComment> comments) { 31 public void setComments(List<IssueComment> comments) {
26 this.comments = comments; 32 this.comments = comments;
27 } 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 }
28 } 47 }

mercurial