From 408c8847b33718f87dbe516f9889efc001ec6a56 Mon Sep 17 00:00:00 2001 From: Sibo Van Gool Date: Tue, 25 Jan 2022 14:34:43 +0100 Subject: [PATCH] [fixes #825] Add MarkdownUtil --- .../net/sf/openrocket/util/MarkdownUtil.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 core/src/net/sf/openrocket/util/MarkdownUtil.java diff --git a/core/src/net/sf/openrocket/util/MarkdownUtil.java b/core/src/net/sf/openrocket/util/MarkdownUtil.java new file mode 100644 index 000000000..093a7625a --- /dev/null +++ b/core/src/net/sf/openrocket/util/MarkdownUtil.java @@ -0,0 +1,30 @@ +package net.sf.openrocket.util; + +import org.commonmark.node.Node; +import org.commonmark.parser.Parser; +import org.commonmark.renderer.html.HtmlRenderer; + +/** + * This class formats a Markdown text (e.g. from the GitHub API) to HTML + * + * @author Sibo Van Gool + */ +public class MarkdownUtil { + /** + * Convert input Markdown text to HTML. + * @param markdown text with Markdown styles. + * @return HTML rendering from the Markdown + */ + public static String toHtml(String markdown) { + if (markdown == null) return ""; + + // Convert JSON string new line to markdown newline + markdown = markdown.replace("\\r\\n", "\n"); + + Parser parser = Parser.builder().build(); + Node document = parser.parse(markdown); + HtmlRenderer renderer = HtmlRenderer.builder().build(); + + return renderer.render(document); + } +}