
一、背景
我们项目开发人员写的文档都是markdown文件。对于其它组的同学要进行阅读不是很方便。每次编辑完markdown文件,我都是用软件将md文件转成HTML文件。刚开始转的时候,还没啥,转得次数多了,就觉得不能继续这样下去了。作为一名开发人员,还是让机器去做这些琐碎的事情吧。故写了两个脚本将md文件转成HTML文件,并将其放置在web服务器下,方便其他人员阅读。
主要有两个脚本和一个定时任务:
•一个python脚本,主要将md文件转成HTML文件;
•一个shell脚本,主要用于管理逻辑;
•一个linux定时任务,主要是定时执行shell脚本。
二、用python将markdown转成HTML
2.1 python依赖库
使用python的markdown库来转换md文件到HTML依赖两个库:
•pip install markdown
•pip install importlib
2.2 核心代码
核心代码其实只有一句,执行 markdown.markdown(text)就可以获得生成的HTML的原文。
input_file = codecs.open(in_file,mode="r",enCoding="utf-8")text = input_file.read()HTML = markdown.markdown(text)
2.3 HTML编码和HTML样式
直接markdown.markdown(text)生成的HTML文本,非常粗略,只是单纯的HTML内容。而且在浏览器内查看的时候中文乱码(在Chrome中),没有好看的CSS样式,太丑了。
解决办法也很简单,在保存文件的时候,将<Meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" />和CSS样式添加上。就这么简单解决了。
2.4 完整python内容
•读取md文件;
•将md文件转成HTML文本;
•添加CSS样式和保存HTML文本。
python代码内容:
#!/usr/bin/env python# -*- Coding: utf-8 -*-# 使用方法 python markdown_convert.py filenameimport sysimport markdownimport codecsCSS = '''<Meta http-equiv="Content-Type" content="text/HTML; charset=utf-8" /><style type="text/CSS"><!-- 此处省略掉markdown的CSS样式,因为太长了 --></style>'''def main(argv):name = argv[0]in_file = '%s.md' % (name)out_file = '%s.HTML' % (name)input_file = codecs.open(in_file,enCoding="utf-8")text = input_file.read()HTML = markdown.markdown(text)output_file = codecs.open(out_file,"w",enCoding="utf-8",errors="xmlcharrefreplace")output_file.write(CSS+HTML)if __name__ == "__main__":main(sys.argv[1:])
三、shell逻辑
3.1 逻辑说明
建立一个shell文件,用于进行逻辑处理,主要 *** 作如下:
•更新svn文件,将最新的md文件更新下来(此处假设md文件是测试文档.md);
•执行python markdown_convert.py $name将md文件转成HTML文件(生成测试文档.HTML);
•将转好的HTML迁移到web路径下(移动到HTML/测试文档.HTML);
•启动一个web服务(此处用的是python的SimplehttpServer的web服务器).
3.2 完整shell逻辑
#!/bin/bashname='测试文档'## 更新代码svn update## 删除HTML文件if [ -f "$name.HTML" ];thenrm "$name.HTML"fi## 生成HTMLif [ -f "$name.md" ];thenpython markdown_convert.py $namefi## 生成HTML目录if [ ! -d "HTML" ];thenmkdir "HTML"fi## 拷贝HTML文件if [ -f "$name.HTML" ];thenmv -f "$name.HTML" "HTML/"fi## 开启web服务器PID=`ps aux | grep 'python -m SimplehttpServer 8080' | grep -v 'grep' | awk '{print }'`if [ "$PID" = "" ];thencd HTMLnohup python -m SimplehttpServer 8080 &echo 'start web server'elseecho 'already start'fi四、linux定时任务
在shell命令下输入crontab -e进入linux定时任务编辑界面。在里面设置markdown2web.sh脚本的定时任务:
## 更新文档*/10 * * * * cd /home/xxx/doc; sh markdown2web.sh > /dev/null 2>&1
以上所述是小编给大家介绍的python 自动化将markdown文件转成HTML文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!
总结以上是内存溢出为你收集整理的python 自动化将markdown文件转成html文件的方法全部内容,希望文章能够帮你解决python 自动化将markdown文件转成html文件的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)