首先你需要一个markdown解析器

比如有常见的markdown和markdown2,其他的可以参考这个网站的评价

我选择了mistune,自己继承写一个渲染的Renderer

mistune的doc也有提及基本写法


#!/usr/bin/env python
# -*- coding: utf-8 -*- import mistune
import sys
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 main(argv):
name = argv[0]
md_name = '%s.md' % (name)
outfile = '%s.html' % (name) with open(md_name) as mdfile:
md_text = mdfile.read()
rd = HighlightRenderer()
markdown = mistune.Markdown(renderer=rd)
html = markdown(md_text) # 为了避免中文乱码 以及添加高亮样式
head_css = '<meta http-equiv="Content-Type"\
content="text/html; charset=utf-8" />\n'
css_name = "code.css"
code_css = '<link rel="stylesheet" href="' + css_name \
+ '" type="text/css"/>\n'
code_css = head_css + code_css with open(outfile, 'w') as output:
output.write(code_css + html) if __name__ == "__main__":
main(sys.argv[1:])

利用pygments的命令生成特定主题的css:

pygmentize -f html -a .codehilite -S monokai > code.css

之后运行这个python文件,假设markdown文件是data.md,运行 python solve.py data 即可

具体还有什么样式可以在 pygments网站

最新文章

  1. 保存知乎收藏夹功能的NodeJS版本
  2. Strong AI Versus Weak AI
  3. python 练习 17
  4. POJ 3258
  5. IOS 中关于自定义Cell 上的按钮 开关等点击事件的实现方法(代理)
  6. C#检查foreach为null判断
  7. 第 9 章 MySQL数据库Schema设计的性能优化
  8. pstree 命令详解
  9. 读书笔记(chapter4)
  10. Linux系列:Fedora虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)
  11. Java 多线程(四)之守护线程(Daemon)
  12. Python知识(1)----基础入门和进阶总结。
  13. java使用Redis6--sentinel单点故障主从自动切换
  14. 【spoj】DIVCNTK
  15. IOS7 隐藏状态栏 (电池栏)
  16. c调用 lua 栈操作
  17. JDK自带监控工具
  18. Tomcat性能调整完整教程
  19. NOIP Mayan游戏
  20. 笔记-python-调试

热门文章

  1. (win10)Wamp环境下php升级至PHP7.2
  2. .1-浅析webpack源码之webpack.cmd
  3. [转]DevOps解决方案-腾讯云
  4. RowFilter遇上特殊字符*%&#39;[]\
  5. NodeJS+Express开发web,为什么中文显示为乱码
  6. OpenGL学习笔记:Console工程下如何不显示控制台黑窗口只显示Windows窗口
  7. EasyUI 添加一行的时候 行号出现负数的解决方案
  8. 4.socket(-)之控制台
  9. Android-远程Service
  10. spring-bean实例化三种方式