package ru.bvn13.voidforum.support.web; import com.vladsch.flexmark.ast.Node; import com.vladsch.flexmark.ext.gfm.strikethrough.StrikethroughExtension; import com.vladsch.flexmark.ext.tables.TablesExtension; import com.vladsch.flexmark.ext.youtube.embedded.YouTubeLinkExtension; import com.vladsch.flexmark.html.HtmlRenderer; import com.vladsch.flexmark.parser.Parser; import com.vladsch.flexmark.util.options.MutableDataSet; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import java.util.Arrays; @Service @Qualifier("flexmark") public class FlexmarkMarkdownService implements MarkdownService, SyntaxHighlightService { @Override public String renderToHtml(String content) { MutableDataSet options = new MutableDataSet(); // uncomment to set optional extensions options.set(Parser.EXTENSIONS, Arrays.asList( TablesExtension.create(), StrikethroughExtension.create(), //YoutubeLinkTransformer.YouTubeLinkExtension.create(), YouTubeLinkExtension.create() )); // uncomment to convert soft-breaks to hard breaks //options.set(HtmlRenderer.SOFT_BREAK, "
\n"); Parser parser = Parser.builder(options).build(); HtmlRenderer renderer = HtmlRenderer.builder(options).build(); // You can re-use parser and renderer instances Node document = parser.parse(content); String html = renderer.render(document); // "

This is Sparta

\n" return html; } @Override public String highlight(String content) { return content; } }