Sat, 05 Dec 2020 13:05:00 +0100
enables markdown support in issue descriptions and comments - fixes #10
1 package de.uapcore.lightpit.viewmodel;
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;
11 import java.util.Arrays;
12 import java.util.List;
14 public class IssueDetailView extends ProjectView {
15 private Issue issue;
17 private List<IssueComment> comments;
19 public void setIssue(Issue issue) {
20 this.issue = issue;
21 }
23 public Issue getIssue() {
24 return issue;
25 }
27 public List<IssueComment> getComments() {
28 return comments;
29 }
31 public void setComments(List<IssueComment> comments) {
32 this.comments = comments;
33 }
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();
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 }