今天看到了一个Python库,名为markdown。瞬间就给了我一个灵感,那就是制作一个将markdown文件转换成html文件的小工具。

我的实验环境操作系统: Windows 7 64位 旗舰版

Python版本: 2.7.11

IDE: PyCharm pro 2016.1

所需依赖:optparser

markdown

转换核心

转换的过程很简单,只需要使用markdown库即可,具体使用方法如下:from markdown import markdown

def parse(md_text):

return markdown(md_text)

优化

为了使我们的程序更具特色,也就是类Unix命令行风格。我这里添加了optparser的支持。

核心代码如下:# OptParser库规范性用法,以实现Unix风格的命令行处理程序

usage = \

"""

'-i', --infile . source markdown file

'-o', --outfile. target html file

'-s', --style. stylesheet for output html file,this is not for mandatory

"""

parser = optparse.OptionParser(usage)

parser.add_option('-i', '--input', dest='infile', type='string', help='input markdown source file')

parser.add_option('-o', '--output', dest='outfile', type='string', help='out put html file')

(options, args) = parser.parse_args()

infile = options.infile

outfile = options.outfile

举例:python md2html.py -i input.md -o outputfile.html

# 我们在命令行输入的参数就会转移到下面的两个变量中了

(options, args) = parser.parse_args()

infile = options.infile

outfile = options.outfile

美化

为了使得我们的html更加的美观,我这里采取了BootStrap进行了美化。使用的方式是CDN的方式。这样可以使得我们的文件目录更加的清爽,而且可以给用户一个更加简便的使用体验。

使用的模板如下:

BootStrap模板

完整代码# coding:utf-8

# __author__ = 'Mark sinoberg'

# __date__ = '2016/7/8'

# __Desc__ = 将markdown文件转换为带有样式的html文件

from markdown import markdown

import optparse

# 创建一个专门用于处理解析器的工具类

class MDParser:

# 初始化开始

def __init__(self):

print 'Ready to parser markdown source file to html file.'

# 创建一个对输入文件进行解析的方法,输出文件即为符合html语法的不完整文件

def parsre(self, infile):

infile = open(infile, 'rb')

indata = infile.read()

indata = u'%s' % indata

infile.close()

parsedata = markdown(indata)

return parsedata

# 为输出文件添加自定义标题,并且添加缺少的html头部

def appendHead(self, data, title):

head = \

"""

%s

""" % title

newdata = head + data

return newdata

# 配合上面的添加头部文件,下面的这个方法适用于添加html尾部标签,使得文件符合html规范

def appendTail(self, data):

tail = \

"""

"""

data += tail

return data

# 将完整的html文件输出到指定的位置

def output(self, data, outfile):

outfile = open(outfile, 'wb')

outfile.write(data)

outfile.close()

print "Translated Succeed!"

# OptParser库规范性用法,以实现Unix风格的命令行处理程序

usage = \

"""

'-i', --infile . source markdown file

'-o', --outfile. target html file

'-s', --style. stylesheet for output html file,this is not for mandatory

"""

parser = optparse.OptionParser(usage)

parser.add_option('-i', '--input', dest='infile', type='string', help='input markdown source file')

parser.add_option('-o', '--output', dest='outfile', type='string', help='out put html file')

(options, args) = parser.parse_args()

infile = options.infile

outfile = options.outfile

if __name__ == "__main__":

tool = MDParser()

title = raw_input('Please input the title you want:\n')

parsedata = tool.parsre(infile)

data = tool.appendHead(parsedata, title)

fulldata = tool.appendTail(data)

tool.output(fulldata, outfile)

结果展示程序运行前

infile.md内容:

程序运行方法:

生成结果

缺点

这个工具最大的缺点就是不能将中文进行转换,原因是ascii码超出字符限制。

如果大家有更好的方法,不妨私信我! 大家一起学习!

将py文件转换成html,(2条消息)自制 Python小工具 将markdown文件转换成Html文件相关推荐

  1. 10-8 猫和狗 : 创建两个文件cats.txt和dogs.txt, 在第一个文件中至少存储三只猫的名字, 在第二个文件中至少存储三条狗的名字。 编写一个程序, 尝试读取这些文件, 并将其内容打印到

    10-8 猫和狗 : 创建两个文件cats.txt和dogs.txt, 在第一个文件中至少存储三只猫的名字, 在第二个文件中至少存储三条狗的名字. 编写一个程序, 尝试读取这些文件, 并将其内容打印到 ...

  2. Python之html与markdown互相转换

    Python之html与markdown互相转换 前言 1. html2text 2. html2markdown 3. pandoc 4. 批处理 前言 Typora可以很容易的将md导出为html ...

  3. Visual Subst - 简单将任意文件夹挂载模拟成驱动器盘符硬盘分区的小工具

    随着电脑的使用,硬盘里的资料一天比一天多,也越来越杂乱.一些朋友为了方便文件管理,会考虑重新分区,让C.D.E等盘符分别担任不同的角色.不过,不分区的话也有一些小工具可以帮你实现. Visual Su ...

  4. Android开发实用小工具十——进制转换工具

    文章目录 前言 一.效果展示 二.代码 1.样式布局 2.主代码 总结 前言 进制转换工具的开发与实现. 一.效果展示 二.代码 准备工作与我开发的另一个小工具(长度转换工具)所用一致,详情请看我上一 ...

  5. 嵌入式单片机开发小工具集 进制转换计算器 (持续更新)

    单片机开发工具集 文章目录 单片机开发工具集 前言 一,目录 二,模块 1,16进制转二进制寄存器 前言 在嵌入式单片机开发中,经常要处理一些不同进制的数据,查看配置寄存器等,需要用到一些特定功能的小 ...

  6. Android文件夹占用空间分析,安卓手机储存空间变小了?删掉这6个文件夹,瞬间腾出20G!...

    原标题:安卓手机储存空间变小了?删掉这6个文件夹,瞬间腾出20G! 相信很多用安卓的朋友都有一个苦恼:明明自己的手机是64G储存空间,不知道为什么用了没几天储存空间就少了一半,有的甚至还要多,这究竟是 ...

  7. java xlsx怎么转换成excel格式_python小工具 | Excel的xls和xlsx格式文件转换

    众所周知Excel文件格式转换可以通过"另存为"的方式转换格式,可以说是简单方便,但是对于大量文件转换或者经常重复进行转换操作时,这种方法就很不方便. 显然利用程序对xls和xls ...

  8. python win32选取文件夹_python小工具 | Excel的xls和xlsx格式文件转换

    众所周知Excel文件格式转换可以通过"另存为"的方式转换格式,可以说是简单方便,但是对于大量文件转换或者经常重复进行转换操作时,这种方法就很不方便. 显然利用程序对xls和xls ...

  9. print python excel分隔_办公自动化 Python 小工具,对Excel文件,按某一列拆分成多个Excel文件或sheet...

    使用pandas.xlwings.os 库文件,对Excel文件,按某一列拆分成多个Excel文件或sheet,提高工作效率. # -*- coding: utf-8 -*- "" ...

最新文章

  1. 从零开始安装 Caffe --CPU only----没有 pycaffe
  2. PO Create PO时关于汇率问题需要注意的步骤
  3. Solr字段类型field type的定义
  4. 千兆路由器怎么设置网速最快_200M的网速,换成千兆路由器,我得到了什么?...
  5. mysql可以关联视图_Mysql 五: 数据库自关联、视图
  6. html js脚本限制 正则,简单谈谈JS中的正则表达式
  7. 深入理解HTTP协议、HTTP协议原理分析【转】
  8. (转)淘淘商城系列——maven工程debug调试
  9. Spring学习总结(21)——Spring集成阿里巴巴数据库连接池DruidDataSource配置及其常见问题汇总
  10. 如何摆脱初学者的不自信,成为一名专业编程人士?
  11. Uva 1630 折叠串
  12. sqlite转sql2000数据库
  13. FW软件的安装及简单的使用;
  14. 游戏跟计算机不兼容,端游不兼容怎么解决
  15. 一张图理解贝叶斯公式
  16. wifi WPS功能介绍
  17. 【有利可图网】不懂ps排版?超详细排版教程送上!
  18. Python之第六章 内置容器 --- 字典(映射)
  19. Linux服务器被挖矿及解决办法
  20. 计组作业【题目记录】

热门文章

  1. 配置JupyterLab远程密码访问
  2. 96%被薅走的流量,云托管帮泡泡玛特防住了
  3. Godot Engine:街霸隆的动画(Idle/波动拳/升龙拳)导入步骤以及运行时的简单动画切换
  4. 图解Linux命令之--hdparm命令
  5. 2022国赛C:古代玻璃制品的成分分析与鉴别
  6. Mac使用触控板或苹果鼠标时指针跳跃的解决方法
  7. PHP——创建二维数组
  8. 使用Java多线程实现任务分发
  9. C#类库和用户控件库的区别及相互转换
  10. NestedVAE: Isolating Common Factors via Weak Supervision.