markdown转html工具之mdtool.jar

作者:ShibaInu

使用“富文本编辑器”:浏览器打开html文件,然后直接复制粘贴过来即可完成这篇文章。

markdown入门

这里假设大家已经熟悉markdown的语法,并了解markdown所带来的优点。

假设从未接触和使用过markdown,那么可以参考下面这个资料:Learning-Markdown (Markdown 入门参考)

推荐的markdown编辑器:typora

markdown文件传输的缺点

markdown文件在传输过程中,如果存在本地图片、gif等文件的引入,那么将很不利于传输发送给其他人。

尝试过的解决方案是:转为word、pdf、html等进行传输

尝试过的工具:typora,pandoc,i5ting_toc等(还有其他的忘记了)

最后我决定选择转为html的方案,因为我打算放到网上,方便保存和随时随地查看。

这些工具都不能完美的解决我的需求,因为我希望转为html文件后,图片要被压缩进html文件中,方便传输,而且文件体积也会减小。

markdown转换工具mdtool.jar

下载:关注微信公众号【浅谈java全栈技术】回复『 md转换工具』

使用

配置Java运行环境

参考:JDK8的安装和配置

文件说明

java 将markdown转图片 java markdown转html_java 将markdown转图片

配置工具环境

java 将markdown转图片 java markdown转html_java 将markdown转图片_02

修改.bat脚本

java 将markdown转图片 java markdown转html_markdown_03

脚本说明

  • mdtool.bat:转换单个markdown文件
  • mdtools.bat:转换当前文件夹下的所有markdown文件,即批量转换

验证

单个文件转换:mdtool(只需要输入不包含拓展名的markdown文件名即可)

java 将markdown转图片 java markdown转html_markdown_04

多个文件转换(批量转换):mdtools

java 将markdown转图片 java markdown转html_java_05

存在的问题(不影响使用):例如转换markdown文件的时候,如果图片不存在,即本地图片路径下找不到这个图片,会如下报错:

在markdown文件中放置了一个空图片引入代码<img src="" alt="" height="100%" width="100%"/>报错。(没有指定图片路径)

java.io.FileNotFoundException:
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(FileInputStream.java:195)
        at java.io.FileInputStream.<init>(FileInputStream.java:138)
        at org.itheima.tools.markdown.MarkdownUtils.base64Image(MarkdownUtils.java:119)
        at org.itheima.tools.markdown.MarkdownUtils.getBody(MarkdownUtils.java:95)
        at org.itheima.tools.markdown.MarkdownUtils.toHtml(MarkdownUtils.java:61)
        at org.itheima.tools.markdown.MarkdownUtils.toHtml(MarkdownUtils.java:39)
        at org.itheima.tools.markdown.MarkdownUtils.toHtml(MarkdownUtils.java:34)
        at org.itheima.tools.markdown.App.main(App.java:27)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)

查看生成后的文件

查看生成后的html文件是否实现了以下功能:

  • 结构化的目录
  • 目录是否包含滑动条
  • 目录是否包含锚点定位,可以跳转到目录指定的位置
  • png/jpg静态图片和gif动态图片是否压缩进去,gif图片是否正常显示动态效果

java 将markdown转图片 java markdown转html_html_06

打开生成的文件,发现这些功能都实现了,真的是非常的好!