Parse Markdown to HTML with Underlining text in Java using CommonMark Ins Extension

Tags: CommonMark Java CommonMark CommonMark Ins CommonMark Extension commonmark-ext-ins Markdown Markdown underline HTML Convert Parser Parse HtmlRenderer InsExtension

In this Java tutorial we learn how to convert markdown string into HTML string which enables underlining of text by enclosing it in ++ syntax using the CommonMark library and the CommonMark Ins Extension library.

How to add CommonMark and CommonMark Ins Extension libraries to the Java project

To use the Java CommonMark and CommonMark Ins 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-ins:0.17.2'

To use the Java CommonMark and CommonMark Ins Extension libraries in the Maven build project, add the following dependency into the pom.xml file.


To have more information about the CommonMark Java library you can visit the project repository at

How to parse Markdown to HTML with enable underline text in Java

In the following Java example code we show you how to use the Parser, HtmlRenderer classes of the CommonMark library and InsExtension class of the CommonMark Ins Extension library to convert a given String in markdown syntax including underline syntax (using ++) into a String in HTML format which generated underline text in ín tags.

import org.commonmark.Extension;
import org.commonmark.ext.ins.InsExtension;
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 ParseMarkdownUnderliningToHTML {
    public static void main(String... args) {
        String markdownValue = "++Simple Solution++";

        String htmlValue = convertMarkdownToHTML(markdownValue);

        System.out.println("Markdown String:");
        System.out.println("HTML String:");

    public static String convertMarkdownToHTML(String markdown) {
        List<Extension> extensions = Arrays.asList(InsExtension.create());
        Parser parser = Parser.builder().extensions(extensions).build();
        Node document = parser.parse(markdown);
        HtmlRenderer htmlRenderer = HtmlRenderer.builder().extensions(extensions).build();
        return htmlRenderer.render(document);
The output is:
Markdown String:
++Simple Solution++

HTML String:
<p><ins>Simple Solution</ins></p>

Happy Coding 😊