Parse Markdown Strikethrough to HTML in Java with CommonMark Strikethrough Extension

Tags: CommonMark Java CommonMark CommonMark Strikethrough CommonMark Extension commonmark-ext-gfm-strikethrough Markdown Markdown strikethrough HTML Convert Parser Parse HtmlRenderer StrikethroughExtension

In this Java tutorial we learn how to convert a markdown string with GFM strikethrough using ~~ (GitHub Flavored Markdown) into HTML string using the CommonMark library and CommonMark Strikethrough Extension library.

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

To use the Java CommonMark and CommonMark Strikethrough 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-gfm-strikethrough:0.17.2'

To use the Java CommonMark and CommonMark Strikethrough 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-gfm-strikethrough</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 GFM strikethrough to HTML in Java

In the following Java example code we show you how to use the Parser, HtmlRenderer classes of the CommonMark library and StrikethroughExtension class of the CommonMark Strikethrough Extension library to convert a given String in markdown syntax including GitHub Flavored Markdown strikethrough (using ~~) into a String in HTML format.

ParseMarkdownStrikethroughToHTML.java

import org.commonmark.Extension;
import org.commonmark.ext.gfm.strikethrough.StrikethroughExtension;
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 ParseMarkdownStrikethroughToHTML {
    public static void main(String... args) {
        String markdownValue = "~~Simple Solution~~";

        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(StrikethroughExtension.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><del>Simple Solution</del></p>

Happy Coding 😊