今天看到了一个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. gitter 卸载_最佳Gitter频道:VR和AR
  2. opencv4 c++ 提取图片中的白色区域_修正!【从零学习OpenCV 4】分割图像——分水岭法...
  3. 腾讯数平精准推荐 | 横扫ICDAR 2019,斩获七项冠军
  4. Socket通信---网络通信学习笔记(一)
  5. redis源码剖析(十二)—— RDB持久化
  6. java 保存的代码怎么写_java实现写入并保存txt文件的示例代码
  7. php mysql复杂查询_PHP MySQL如何做更复杂的查询
  8. TensorFlow神经网络(一)前向传播
  9. 酒水饮料行业进销存软件前十排行榜,强推第一款
  10. 第二代蜂窝移动通信系统概述
  11. 96---Python 绘制阿基米德螺旋线
  12. vue3.0父子组件警告Extraneous non-emits event listeners (closeSetDialog) were passed to component but could
  13. 微信小程序+Node服务器
  14. 云服务器一键搭建脚本
  15. cos和sin的使用
  16. 记ePub.js使用过程中的那些事
  17. BZOJ.1812.[IOI2005]Riv 河流(树形背包)
  18. 第十四章 SQL命令 CREATE TABLE(一)
  19. 小程序实现图片放大预览功能
  20. 自动化工具Pyautogui和Pywinauto详细介绍和使用

热门文章

  1. C语言strlen函数求字符串长度及自己实现
  2. python下载完了之后怎么用_pc软件下载平台注册哪个好
  3. 【转】猿人学爬虫知识整合
  4. 根据某城市普通出租车收费标准编写程序对车费进行计算。
  5. 【工具】推荐一款切图神器,设计稿一键导出 Vue/微信小程序 代码
  6. 何恺明霸榜,近10年里的具有影响力的一作(年轻)AI学者大盘点
  7. R语言绘图边框的单位
  8. 【Linux基础】如何编写Makefile文件?
  9. 小H超级推广王更新升级有哪些变化
  10. flash实时音乐真实频率变化(全as)正在直播教程