应用场景(需求):
最近在用 tornado 开发web service 的api,api变化更新较大。想以一种简单方便的形式供前端开发人员及测试人员随时查看。
想这样实现,浏览器 get 方法访问 /help/api 接口即可查看 server端 api_help.txt 的内容。然而直接发送到浏览器后发现,显示的格式中没有了缩进及换行,没法看。
于是想在发送前调用一个txt2html的函数将该文本内容转为html格式内容。
deftxt2html(txt):'''将txt以行为单位加上
标签'''defescape(txt):'''将txt文本中的空格、&、、(")、(')转化成对应的的字符实体,以方便在html上显示'''txt= txt.replace('&','&')
txt= txt.replace(' ',' ')
txt= txt.replace('
txt= txt.replace('>','>')
txt= txt.replace('"','"')
txt= txt.replace('\'',''')returntxt
txt=escape(txt)
lines= txt.split('\n')for i, line inenumerate(lines):
lines[i]= '
' + line + ''#lines[i] = '
' + line + '
'txt = ''.join(lines)return txt
附使用例子:
classAPIHelp(tornado.web.RequestHandler):defget(self):
with open('api_help.txt', 'r') as f:
txt=f.read()
txt= '''
XXX WebService API 文档XXX WebService API 文档:
%s
''' %txt2html(txt)
self.write(txt)
后来想到《python 基础教程》中就有这个现成的例子,第20章 项目1:即使标记 (p321),看了看有点复杂,有时间再写下来。
如果不是用 python 实现,其他方法倒有很多:
vim 的 “:TOhtml” 命令可以方便地将文本内容生成html代码。参考:
还有其他小工具可以方便地实现。
还搜到下面一些有趣的内容:
[Python学习]文本转换工具AsciiDoc
Python: 纯文本转PNG