# mds2html **Repository Path**: stephenlovevicky/mds2html ## Basic Information - **Project Name**: mds2html - **Description**: 在github的petterobam大佬mds2index.html项目基础上修复完善的多Markdown生成Html项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-27 - **Last Updated**: 2025-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 声明:项目来源于[https://github.com/petterobam/mds2index.html](https://github.com/petterobam/mds2index.html),感谢🙏大佬!!原项目介绍可点击跳转阅读 >目前本项目已用于公司自动化生成SDK的API文档流程中,便捷高效美观 >重开项目是因大佬很久没有维护老项目了,其引入的markdown转html的核心库pegdown已经没法用了,报错如下: ``` java.lang.RuntimeException: Error creating extended parser class: Could not determine whether class 'org.pegdown.Parser$$parboiled' has already been loaded at org.parboiled.Parboiled.createParser(Parboiled.java:58) at org.pegdown.PegDownProcessor.(PegDownProcessor.java:94) at org.pegdown.PegDownProcessor.(PegDownProcessor.java:63) at my.mds2index.utils.Md2HtmlUtils.parseHtml(Md2HtmlUtils.java:20) at my.mds2index.config.Mds2indexConfig.getPageArticle(Mds2indexConfig.java:219) at my.mds2index.config.Mds2indexConfig.get(Mds2indexConfig.java:96) at my.mds2index.utils.Md2HtmlUtils.parsePageByParam(Md2HtmlUtils.java:47) at my.mds2index.MainApp.main(MainApp.java:47) Caused by: java.lang.RuntimeException: Could not determine whether class 'org.pegdown.Parser$$parboiled' has already been loaded at org.parboiled.transform.AsmUtils.findLoadedClass(AsmUtils.java:213) at org.parboiled.transform.ParserTransformer.transformParser(ParserTransformer.java:35) at org.parboiled.Parboiled.createParser(Parboiled.java:54) ... 7 more Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) accessible: module java.base does not "opens java.lang" to unnamed module @256216b3 at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:200) at java.base/java.lang.reflect.Method.setAccessible(Method.java:194) at org.parboiled.transform.AsmUtils.findLoadedClass(AsmUtils.java:206) ... 9 more ``` >查询了哈,可以用[flexmark-java](https://github.com/vsch/flexmark-java)项目替换掉pegdown,因此有了这个修复版项目,在修复了这个转换库的基础上还优化了入参格式(将之前使用的一个根目录下的markdown 换成了可多个绝对路径模式)和生成网页的部分格式(主要是表格显示)问题,因为我是用于生成Sdk的文档页,所以也重新美化了哈模版本页,具体在/mds2html/src/main/resources下面的config和template >食用方法:download项目,用 idea 打开项目,安装好 maven 依赖,执行 MainApp 的 main 方法即可 >output文件夹里面有生成好的成品jar包mds2html.jar,配合config.yml和template.html,使用如下命令即可实现自动化生成 ```java -jar mds2html.jar config.yml /Users/xxx/Documents/AndroidProjects/xxxx/README_ErrCode.md,/Users/stephen/Documents/AndroidProjects/xxxx/README_External.md template.html output.html``` >生成的效果图如下: > ![效果图](output/preview1.jpg) >附赠一个登录页如下,加点接口啥的就可控制文档的权限显示 > ![效果图](output/preview2.jpg)