mirror of https://github.com/bvn13/VoidForum.git
49 lines
1.7 KiB
Java
49 lines
1.7 KiB
Java
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, "<br />\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); // "<p>This is <em>Sparta</em></p>\n"
|
|
|
|
return html;
|
|
}
|
|
|
|
@Override
|
|
public String highlight(String content) {
|
|
return content;
|
|
}
|
|
}
|