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
- vue 匯入.md檔案(markdown轉HTML)VueHTML
- JavaScript實現線上Markdown編輯器、轉換HTML工具-toolfk程式設計師工具網JavaScriptHTML程式設計師
- Django markdown 實現Django
- 使用Python 實現 PDF 到 HTML 的轉換PythonHTML
- HTML+CSS實現太極旋轉效果HTMLCSS
- Java 將HTML轉為XMLJavaHTMLXML
- Java 將HTML轉為XPSJavaHTML
- Java 將HTML轉為WordJavaHTML
- jspdf + html2canvas 實現html轉pdf (提高解析度版本)JSHTMLCanvas
- 推薦一個markdown格式轉html格式的開源JavaScript庫HTMLJavaScript
- 谷歌外掛 HTML-to-Markdown谷歌HTML
- Java 將Html轉為PDF(二)JavaHTML
- Vue SpringBoot實現Html和Markdown格式內容(含圖片上傳)儲存到MySQLVueSpring BootHTMLMySql
- 使用UiBot實現批次html轉換成PDF檔案UIHTML
- 如何實現 Markdown 撰寫文章
- 【轉】堆排序Heap Sort——Java實現排序Java
- java實現連結串列反轉Java
- Java實現emf轉jpg png 圖片轉換Java
- Java 將Word轉為HTML的方法JavaHTML
- AI來實現程式碼轉換!Python轉Java,Java轉Go不在話下?AIPythonJavaGo
- 把HTML轉成PDF的4個方案及實現方法HTML
- Laravel 使用 laravel-snappy 包 實現 HTML 轉 PDF 和 PNGLaravelAPPHTML
- 用html5實現圖片的旋轉--照片牆HTML
- Java 將Markdown檔案轉換為Word和PDF文件Java
- 用Java實現samza轉換成flinkJava
- Markdown 利用HTML進行優雅排版HTML
- Java 將PPT幻燈片轉為HTMLJavaHTML
- HTML+CSS實現選單的3D翻轉特效HTMLCSS3D特效
- MarkDown語法教程(轉)
- Markdown常用轉義字元字元
- 一款開源的Markdown轉富文字編輯器的實現原理剖析
- Unicode編碼和中文互轉(JAVA實現)UnicodeJava
- 音樂格式轉換:java程式碼實現Java
- Java 將PDF轉為HTML時儲存到流JavaHTML
- jQuery之html()的實現jQueryHTML
- HTML原生UI的實現HTMLUI
- 自己實現HTML-BeautifyHTML