# 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```
>生成的效果图如下:
> 
>附赠一个登录页如下,加点接口啥的就可控制文档的权限显示
> 