Parse Markdown URLs and email addresses to HTML links in Java with CommonMark Autolink Extension
Tags: CommonMark Java CommonMark CommonMark Autolink CommonMark Extension commonmark-ext-autolink Markdown Markdown URL Markdown Email HTML Convert Parser Parse HtmlRenderer AutolinkExtension
In this Java tutorial we learn how to convert a markdown string into HTML string with automatically turning plain URLs and email addresses into HTML links using the CommonMark Java library and CommonMark Autolink Extensions library.
How to add CommonMark and CommonMark Autolink Extension libraries to the Java project
To use the Java CommonMark and CommonMark Autolink Extension libraries in the Gradle build project, add the following dependency into the build.gradle file.
implementation 'org.commonmark:commonmark:0.17.2'
implementation 'org.commonmark:commonmark-ext-autolink:0.17.2'
To use the Java CommonMark and CommonMark Autolink Extension libraries in the Maven build project, add the following dependency into the pom.xml file.
<dependency>
<groupId>org.commonmark</groupId>
<artifactId>commonmark</artifactId>
<version>0.17.2</version>
</dependency>
<dependency>
<groupId>org.commonmark</groupId>
<artifactId>commonmark-ext-autolink</artifactId>
<version>0.17.2</version>
</dependency>
To have more information about the CommonMark Java library you can visit the project repository at github.com/commonmark/commonmark-java
How to parse markdown with URLs and emails to HTML links in Java
In the following Java example code we show you how to use the Parser, HtmlRenderer classes of the CommonMark library and AutolinkExtension class of the CommonMark Autolink Extension library to convert a given String in markdown syntax including URLs and email addresses into HTML links.
ParseMarkdownURLToHTML.java
import org.commonmark.Extension;
import org.commonmark.ext.autolink.AutolinkExtension;
import org.commonmark.node.Node;
import org.commonmark.parser.Parser;
import org.commonmark.renderer.html.HtmlRenderer;
import java.util.Arrays;
import java.util.List;
public class ParseMarkdownURLToHTML {
public static void main(String... args) {
String markdownValue = "the links is https://simplesolution.dev\n" +
"my email: contact@simplesolution.dev";
String htmlValue = convertMarkdownToHTML(markdownValue);
System.out.println("Markdown String:");
System.out.println(markdownValue);
System.out.println();
System.out.println("HTML String:");
System.out.println(htmlValue);
}
public static String convertMarkdownToHTML(String markdown) {
List<Extension> extensions = Arrays.asList(AutolinkExtension.create());
Parser parser = Parser.builder().extensions(extensions).build();
Node document = parser.parse(markdown);
HtmlRenderer htmlRenderer = HtmlRenderer.builder().extensions(extensions).build();
return htmlRenderer.render(document);
}
}
Markdown String:
the links is https://simplesolution.dev
my email: contact@simplesolution.dev
HTML String:
<p>the links is <a href="https://simplesolution.dev">https://simplesolution.dev</a>
my email: <a href="mailto:contact@simplesolution.dev">contact@simplesolution.dev</a></p>
Happy Coding 😊