使用python来开发markdown脚本扩展的实例分享

关于markdown

在刚才的导语里提到,markdown 是一种用来写作的轻量级「标记语言」,它用简洁的语法代替排版,而不像一般我们用的字处理软件 word 或 pages 有大量的排版、字体设置。它使我们专心于码字,用「标记」语法,来代替常见的排版格式。例如此文从内容到格式,甚至插图,键盘就可以通通搞定了。目前来看,支持 markdown 语法的编辑器有很多,包括很多网站(例如简书)也支持了 markdown 的文字录入。markdown 从写作到完成,导出格式随心所欲,你可以导出 html 格式的文件用来网站发布,也可以十分方便的导出 pdf 格式,这种格式写出的简历更能得到 hr 的好感。甚至可以利用 cloudapp 这种云服务工具直接上传至网页用来分享你的文章,全球最大的轻博客平台 tumblr,也支持使用 mou 这类 markdown 工具进行编辑并直接上传。

python的markdown扩展开发
近期使用python的markdown写了一个文档小程序,由于需要用到一些额外的功能,所以就对markdown进行了一些简单的扩展,进而记录下编写的模板。直接贴代码:

#encoding=utf-8
##预处理器
from markdown.preprocessors import preprocessor
class codepreprocessor(preprocessor):
def run(self, lines):
new_lines = []
flag_in = false
block = []
for line in lines:
if line[:3]==’!!!’:
flag_in = true
block.append(” % line[3:].strip())
elif flag_in:
if line.strip() and line[0]==’!’:
block.append(line[1:])
else:
flag_in = false
block.append(”)
block.append(line)
new_lines.extend(block)
block = []
else:
new_lines.append(line)
if not new_lines and block:
new_lines = block
return new_lines
##后置处理器
from markdown.postprocessors import postprocessor
class codepostprocessor(postprocessor):
def run(self, text):
t_list = []
for line in text.split(‘\n’):
if line[:5]==’

!

Posted in 未分类