All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.swagger.codegen.v3.utils.Markdown Maven / Gradle / Ivy

There is a newer version: 3.0.62
Show newest version
package io.swagger.codegen.v3.utils;

import org.commonmark.node.Node;
import org.commonmark.parser.Parser;
import org.commonmark.renderer.html.HtmlRenderer;


/**
 * Utility class to convert Markdown (CommonMark) to HTML.
 * This class is threadsafe.
 */
public class Markdown {

    // see https://github.com/atlassian/commonmark-java
    private final Parser parser = Parser.builder().build();
    private final HtmlRenderer renderer = HtmlRenderer.builder().build();

    /** 
     * Convert input markdown text to HTML.
     * Simple text is not wrapped in 

...

. * @param markdown text with Markdown styles. If null, "" is returned. * @return HTML rendering from the Markdown */ public String toHtml(String markdown) { if (markdown == null) return ""; Node document = parser.parse(markdown); String html = renderer.render(document); html = unwrapped(html); return html; } // The CommonMark library wraps the HTML with //

... html ...

\n // This method removes that markup wrapper if there are no other

elements, // do that Markdown can be used in non-block contexts such as operation summary etc. private static final String P_END = "

\n"; private static final String P_START = "

"; private String unwrapped(String html) { if (html.startsWith(P_START) && html.endsWith(P_END) && html.lastIndexOf(P_START) == 0) return html.substring(P_START.length(), html.length() - P_END.length()); else return html; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy