Java 實現 markdown轉Html
以來github的開源專案flexmark-java
maven依賴:
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-all</artifactId>
<version>0.34.48</version>
</dependency>
精簡依賴:
<!--markdown to html-->
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark</artifactId>
<version>0.34.48</version>
</dependency>
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-util</artifactId>
<version>0.34.48</version>
</dependency>
<!--表格渲染外掛-->
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-tables</artifactId>
<version>0.34.48</version>
</dependency>
API簡單實用
package com.pzy;
import com.vladsch.flexmark.ast.Node;
import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.parser.Parser;
import com.vladsch.flexmark.pdf.converter.PdfConverterExtension;
import com.vladsch.flexmark.profiles.pegdown.Extensions;
import com.vladsch.flexmark.profiles.pegdown.PegdownOptionsAdapter;
import com.vladsch.flexmark.util.options.DataHolder;
import org.apache.commons.io.IOUtils;
import org.junit.Test;
import java.io.*;
/**
* Unit test for simple App.
*/
public class AppTest {
@Test
public void simpleTest() throws IOException {
String html = markdown2Html();
StringBuilder htmlStructBuilder = new StringBuilder();
htmlStructBuilder.append("<html>");
htmlStructBuilder.append("<head>");
htmlStructBuilder.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
InputStream stream = this.getClass().getClassLoader().getResourceAsStream("markdown.css");
String styleContent = IOUtils.toString(stream, "UTF-8");
htmlStructBuilder.append(String.format("<style type=\"text/css\"> %s </style>", styleContent));
htmlStructBuilder.append("</head>");
htmlStructBuilder.append(String.format("<body class='markdown-body'>%s</body>", html));
htmlStructBuilder.append("<html>");
PrintStream printStream = new PrintStream(new FileOutputStream(new File("test.html")), true);
printStream.println(htmlStructBuilder.toString());
printStream.close();
DataHolder OPTIONS = PegdownOptionsAdapter.flexmarkOptions(true,
Extensions.ALL
);
PdfConverterExtension.exportToPdf("test.pdf", htmlStructBuilder.toString(), "", OPTIONS);
}
/**
* markdown文件轉html內容
*
* @return
* @throws IOException
*/
private String markdown2Html() throws IOException {
DataHolder OPTIONS = PegdownOptionsAdapter.flexmarkOptions(true,
Extensions.ALL
);
InputStream stream = this.getClass().getClassLoader().getResourceAsStream("test.md");
String htmlContent = IOUtils.toString(stream, "UTF-8");
Parser parser = Parser.builder(OPTIONS).build();
HtmlRenderer renderer = HtmlRenderer.builder(OPTIONS).build();
Node document = parser.parse(htmlContent);
return renderer.render(document);
}
}
相關文章
- 原生 JS 實現 HTML 轉 Markdown,以及其實現邏輯JSHTML
- Markdown轉HTMLHTML
- 如何實現將markdown檔案實時轉換為html文件HTML
- java Html2Image 實現html轉圖片功能JavaHTML
- Django markdown 實現Django
- JavaScript實現線上Markdown編輯器、轉換HTML工具-toolfk程式設計師工具網JavaScriptHTML程式設計師
- vue 匯入.md檔案(markdown轉HTML)VueHTML
- HTML中樹的實現方法 (轉)HTML
- 如何實現 Markdown 撰寫文章
- 谷歌外掛 HTML-to-Markdown谷歌HTML
- JAVA中HTML轉PDFJavaHTML
- HTML+CSS實現太極旋轉效果HTMLCSS
- 推薦一個markdown格式轉html格式的開源JavaScript庫HTMLJavaScript
- java 實現文字格式轉換Java
- Java 將HTML轉為WordJavaHTML
- Java 將HTML轉為XMLJavaHTMLXML
- XSLT實現XML文件轉換成HTML文件XMLHTML
- 使用Python 實現 PDF 到 HTML 的轉換PythonHTML
- Vue SpringBoot實現Html和Markdown格式內容(含圖片上傳)儲存到MySQLVueSpring BootHTMLMySql
- 03 如何利用Markdown實現極速排版
- jspdf + html2canvas 實現html轉pdf (提高解析度版本)JSHTMLCanvas
- Markdown 利用HTML進行優雅排版HTML
- java實現連結串列反轉Java
- 【轉】堆排序Heap Sort——Java實現排序Java
- java實現url轉碼、解碼Java
- 用 Java 實現回撥例程 (轉)Java
- Java Web Start 實現關鍵 (轉)JavaWeb
- 用HTML實現COMBOX 下拉選擇框 (轉)HTML
- Java 將HTML轉為XPSJavaHTML
- Java 將Html轉為PDF(二)JavaHTML
- Java不是增強的HTML(轉)JavaHTML
- Java 將Markdown檔案轉換為Word和PDF文件Java
- 10分鐘實現Typora(markdown)編輯器
- Java實現emf轉jpg png 圖片轉換Java
- 【ApiDoc】自動化匯出介面文件之HTML/Markdown/PDF實踐APIHTML
- 一款開源的Markdown轉富文字編輯器的實現原理剖析
- 【轉】跳躍表-原理及Java實現Java
- Java Thread實現讀寫同步 (轉)Javathread