diff --git a/pom.xml b/pom.xml
index 980ba60..ccd5df8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.scijava
pom-scijava
- 26.0.0
+ 29.2.1
@@ -84,6 +84,8 @@ Wisconsin-Madison.
deploy-to-scijava
+
+ 0.62.2
@@ -95,9 +97,16 @@ Wisconsin-Madison.
- org.markdownj
- markdownj
- 0.3.0-1.0.2b4
+ com.vladsch.flexmark
+ flexmark-all
+ ${flexmark.version}
+
+
+
+
+ junit
+ junit
+ test
diff --git a/src/main/java/org/scijava/plugins/text/markdown/MarkdownTextFormat.java b/src/main/java/org/scijava/plugins/text/markdown/MarkdownTextFormat.java
index d866208..cd9ada5 100644
--- a/src/main/java/org/scijava/plugins/text/markdown/MarkdownTextFormat.java
+++ b/src/main/java/org/scijava/plugins/text/markdown/MarkdownTextFormat.java
@@ -30,18 +30,18 @@
package org.scijava.plugins.text.markdown;
-import com.petebevin.markdown.MarkdownProcessor;
-
+import com.vladsch.flexmark.util.ast.Node;
+import com.vladsch.flexmark.html.HtmlRenderer;
+import com.vladsch.flexmark.parser.Parser;
import java.util.Arrays;
import java.util.List;
-
import org.scijava.plugin.Plugin;
import org.scijava.text.AbstractTextFormat;
import org.scijava.text.TextFormat;
/**
- * Text format for Markdown.
+ * Text format for
+ * Markdown.
*
* @author Curtis Rueden
*/
@@ -55,8 +55,11 @@ public List getExtensions() {
@Override
public String asHTML(final String text) {
- final MarkdownProcessor markdown = new MarkdownProcessor();
- return markdown.markdown(text);
+ Parser parser = Parser.builder().build();
+ HtmlRenderer renderer = HtmlRenderer.builder().build();
+
+ Node node = parser.parse(text);
+ return renderer.render(node);
}
}
diff --git a/src/test/java/org/scijava/plugins/text/markdown/MarkdownTextFormatTest.java b/src/test/java/org/scijava/plugins/text/markdown/MarkdownTextFormatTest.java
new file mode 100644
index 0000000..6c5ebfd
--- /dev/null
+++ b/src/test/java/org/scijava/plugins/text/markdown/MarkdownTextFormatTest.java
@@ -0,0 +1,57 @@
+
+package org.scijava.plugins.text.markdown;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.scijava.Context;
+import org.scijava.io.handle.DataHandleService;
+import org.scijava.text.TextService;
+
+public class MarkdownTextFormatTest {
+
+ private static Context context;
+
+ private final String markdown = "ImageJ*2* uses **SciJava**\n";
+ private final String expected =
+ "ImageJ2 uses SciJava
\n";
+
+ @BeforeClass
+ public static void setUp() {
+ context = new Context(TextService.class, DataHandleService.class);
+ }
+
+ @AfterClass
+ public static void tearDown() {
+ context.dispose();
+ }
+
+ @Test
+ public void testMarkdownToHTML() {
+ MarkdownTextFormat format = new MarkdownTextFormat();
+ String html = format.asHTML(markdown);
+ assertEquals("Format markdown as HTML", expected, html);
+ }
+
+ @Test
+ public void testTextServiceMarkdown() throws IOException {
+ File tmpFile = File.createTempFile("MarkdownTextFormatTest", ".md");
+ tmpFile.deleteOnExit();
+
+ try (BufferedWriter writer = new BufferedWriter(new FileWriter(tmpFile))) {
+ writer.write(markdown);
+ }
+ TextService textService = context.getService(TextService.class);
+ String html = textService.asHTML(tmpFile);
+ assertEquals("Handler for Markdown format", MarkdownTextFormat.class,
+ textService.getHandler(tmpFile).getClass());
+ assertEquals("Markdown converted from file", "" + expected +
+ "", html);
+ }
+}