tech.chakapoko.com
Home / Java / flexmark-java

[Java]flexmark-javaでMarkdownをHTMLに変換する

基本的な使い方

次のコードは flexmark-java を使った簡単な例です。Markdown をパースするために Parser のインスタンスを、HTML に変換するために HtmlRenderer のインスタンスを生成して使っています。

package com.example;

import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.parser.Parser;
import com.vladsch.flexmark.util.ast.Document;

public class Example {
    public static void main(String[] args) {

        String md = "# Header1\n" +
                "\n" +
                "- List1\n" +
                "- List2\n" +
                "- List3\n";

        Parser parser = Parser.builder().build();
        HtmlRenderer renderer = HtmlRenderer.builder().build();

        Document document = parser.parse(md);
        String html = renderer.render(document);

        System.out.println(html);
    }
}

出力結果:

<h1>Header1</h1>
<ul>
  <li>List1</li>
  <li>List2</li>
  <li>List3</li>
</ul>

拡張の追加

次のコードは URL を自動的にリンクに変換(AutoLink)する拡張を追加する例です。

package com.example;

import com.vladsch.flexmark.ext.autolink.AutolinkExtension;
import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.parser.Parser;
import com.vladsch.flexmark.util.ast.Document;
import com.vladsch.flexmark.util.builder.Extension;
import com.vladsch.flexmark.util.options.MutableDataSet;

import java.util.ArrayList;
import java.util.List;

public class Example {
    public static void main(String[] args) {

        String md = "http://example.com";

        MutableDataSet options = new MutableDataSet();

        List<Extension> extensions = new ArrayList<>();
        extensions.add(AutolinkExtension.create());
        options.set(Parser.EXTENSIONS, extensions);

        Parser parser = Parser.builder(options).build();
        HtmlRenderer renderer = HtmlRenderer.builder(options).build();

        Document document = parser.parse(md);
        String html = renderer.render(document);

        System.out.println(html);
    }
}

出力結果:

<p><a href="http://example.com">http://example.com</a></p>