将markdown文件转换为html文件

首先当然是Typora自带转换啦:

image-20200816215751516

接下来是我所听闻之(zhaung)方(bi)法有以下几种

python环境工具之脚本大法【自csdn转载】

可以将markdown文件通过python的一些库函数较好的转换成html文件

效果预览

源码预览:

import mistune
import sys
import codecs
import os
from pygments import highlight
from pygments.lexers import get_lexer_by_name
from pygments.formatters import html
 
 
class HighlightRenderer(mistune.Renderer):
 
    def block_code(self, code, lang):
        if not lang:
            return '\n<pre><code>%s</code></pre>\n' % \
                mistune.escape(code)
        lexer = get_lexer_by_name(lang, stripall=True)
        formatter = html.HtmlFormatter()
        return highlight(code, lexer, formatter)
 
 
def md2html(s):
    with codecs.open(s, mode='r', encoding='utf-8') as mdfile:
        md_text = mdfile.read()
        extras = ['code-friendly', 'fenced-code-blocks', 'footnotes']
        renderer = HighlightRenderer()
        markdown = mistune.Markdown(renderer=renderer)
        html_text = markdown(md_text)
        html_text = html_text.replace('highlight', 'cnblogs_code ')
 
        html_name = '%s.html' % (s[:-3])
        with codecs.open(html_name, 'w', encoding='utf-8', errors='xmlcharrefreplace') as output_file:
            output_file.write(html_text)
 
 
def getAllFile(path, suffix='.'):
    "recursive is enable"
    f = os.walk(path)
    fpath = []
 
    for root, dir, fname in f:
        for name in fname:
            if name.endswith(suffix):
                fpath.append(os.path.join(root, name))
 
    return fpath
 
 
def convertAll(path):
    flist = getAllFile(path, ".md")
    for fname in flist:
        md2html(fname)
 
 
if __name__ == "__main__":
    path = ''
    if len(sys.argv) == 1:
        path = os.getcwd()
 
    elif len(sys.argv) == 2:
        path = sys.argv[1]
    else:
        print("error parameter")
        exit()
 
    convertAll(path)

该工具出自大神之手为将其转换为html文件后上传至博客园而写,配合博客园的一些其他设置可以实现高亮代码等多种功能

详情请访问

trouble shooting:

1、在安装软件时可能会遇到一些问题其实可能是因为python库的依赖没有安装 比如mistune是python对md文件的支持,pygments是实现高亮代码功能的库函数 请使用python的包管理器来安装它们

# pip install mistune
# pip install pygments
如果是python3的包管理器命令是pip3请这样输入
# pip3 install mistune
# pip3 install pygments

node环境工具之i5ting

该工具的一大特点是在左侧栏将会生成各小结的目录列表

效果预览:

npm install i5ting_toc -g

如果觉得安装太慢可以使用淘宝代理加速安装工具cnpm来安装(就是将所有npm换成cnpm就会自动代理加速了)

使用方法如下:

i5ting_toc -f <需要转换的文件名>.md

此时会在目录下生成preview文件夹,其中会有一个与markdown同名的html文件。

MarkdownMonster项目

该项目是一项大型的可以配合博客发布的软件,其中真好有一项功能是将md文件转换为html,不仅如此还可以实现互转(即将html文件转换为markdown文件的强大功能),其还可以通过api发布的模式来将md文件转换为html文件后上传至wordPress, Medium以及任何使用MetaWeblog API的博客平台。

感兴趣的小伙伴请移步另一篇文章

如何批量上传文章至各大博客平台(含markdown文件)

当然如果小伙伴不需要跟过花里胡哨的功能只是想让md文件变为html文件使用上述两种办法应该就能满足需要了。

MarkdownMonster的github项目地址

posted on 2020-08-02 21:26  臻の境意  阅读(7580)  评论(0编辑  收藏  举报

导航