# HG changeset patch # User Mike Becker # Date 1607169900 -3600 # Node ID 2adc8623dd89ba5a22045c11bf8369e38e75f5be # Parent 3d9218457b62c457539a818550807e82be9046e8 enables markdown support in issue descriptions and comments - fixes #10 diff -r 3d9218457b62 -r 2adc8623dd89 build.gradle.kts --- a/build.gradle.kts Wed Nov 25 11:17:39 2020 +0100 +++ b/build.gradle.kts Sat Dec 05 13:05:00 2020 +0100 @@ -32,6 +32,7 @@ implementation("org.slf4j:slf4j-api:${slf4jVersion}") implementation("org.apache.logging.log4j:log4j-core:${log4jVersion}") implementation("org.apache.logging.log4j:log4j-slf4j-impl:${log4jVersion}") + implementation("com.vladsch.flexmark:flexmark-all:0.62.2") } } } diff -r 3d9218457b62 -r 2adc8623dd89 src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java --- a/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java Wed Nov 25 11:17:39 2020 +0100 +++ b/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java Sat Dec 05 13:05:00 2020 +0100 @@ -72,7 +72,7 @@ } } - private void populate(ProjectView viewModel, PathParameters pathParameters, DaoProvider dao) throws SQLException { + private void populate(ProjectView viewModel, PathParameters pathParameters, DaoProvider dao) { final var projectDao = dao.getProjectDao(); final var versionDao = dao.getVersionDao(); final var componentDao = dao.getComponentDao(); @@ -480,6 +480,8 @@ viewModel.setIssue(issue); viewModel.setComments(issueDao.listComments(issue)); + viewModel.processMarkdown(); + forwardView(req, resp, viewModel, "issue-view"); } diff -r 3d9218457b62 -r 2adc8623dd89 src/main/java/de/uapcore/lightpit/viewmodel/IssueDetailView.java --- a/src/main/java/de/uapcore/lightpit/viewmodel/IssueDetailView.java Wed Nov 25 11:17:39 2020 +0100 +++ b/src/main/java/de/uapcore/lightpit/viewmodel/IssueDetailView.java Sat Dec 05 13:05:00 2020 +0100 @@ -1,8 +1,14 @@ package de.uapcore.lightpit.viewmodel; +import com.vladsch.flexmark.ext.gfm.strikethrough.StrikethroughExtension; +import com.vladsch.flexmark.ext.tables.TablesExtension; +import com.vladsch.flexmark.html.HtmlRenderer; +import com.vladsch.flexmark.parser.Parser; +import com.vladsch.flexmark.util.data.MutableDataSet; import de.uapcore.lightpit.entities.Issue; import de.uapcore.lightpit.entities.IssueComment; +import java.util.Arrays; import java.util.List; public class IssueDetailView extends ProjectView { @@ -25,4 +31,17 @@ public void setComments(List comments) { this.comments = comments; } + + public void processMarkdown() { + final var options = new MutableDataSet() + .set(Parser.EXTENSIONS, Arrays.asList(TablesExtension.create(), StrikethroughExtension.create())) + .toImmutable(); + final var parser = Parser.builder(options).build(); + final var renderer = HtmlRenderer.builder(options).build(); + + issue.setDescription(renderer.render(parser.parse(issue.getDescription()))); + for (var comment : comments) { + comment.setComment(renderer.render(parser.parse(comment.getComment()))); + } + } } diff -r 3d9218457b62 -r 2adc8623dd89 src/main/webapp/WEB-INF/jsp/issue-view.jsp --- a/src/main/webapp/WEB-INF/jsp/issue-view.jsp Wed Nov 25 11:17:39 2020 +0100 +++ b/src/main/webapp/WEB-INF/jsp/issue-view.jsp Sat Dec 05 13:05:00 2020 +0100 @@ -97,7 +97,9 @@ - +
+ ${issue.description} +
@@ -183,8 +185,8 @@ -
- +
+ ${comment.comment}
diff -r 3d9218457b62 -r 2adc8623dd89 src/main/webapp/lightpit.css --- a/src/main/webapp/lightpit.css Wed Nov 25 11:17:39 2020 +0100 +++ b/src/main/webapp/lightpit.css Sat Dec 05 13:05:00 2020 +0100 @@ -269,3 +269,21 @@ .row > div { display: table-cell; } + +/* MARKDOWN STYLES */ + +div.markdown-styled p:first-child { + margin-top: 0; +} + +div.markdown-styled table { + border-collapse: collapse; +} + +div.markdown-styled td, +div.markdown-styled th { + padding: 0.25em; + border-style: solid; + border-color: darkgray; + border-width: 1pt; +}