用Python制作markdown编辑器
2016-04-24 10:41
615 查看
还记得在上篇提到的rest-framework,文档中提到了markdown也是可选应用。
那么这篇我们就来尝试使用markdown来制作一个在线的可以预览的editor。
使用起来简单地就是两个函数:
markdown(text)
markdownFromFile(input, output)
具体参见文档:http://pythonhosted.org/Markdown/index.html
markdown(text)会直接把text转换成html格式返回。
我们在应用中就用这个就行了。
首先,在views.py中添加视图:
将从post穿过来的md_content转换成html格式。然后传给post/mdeditor.html这个template返回给浏览器。
所以下一步就是建立一个这样的模板。
我们使用来做编辑器。那么要在表单中返回服务器,就需要将这个值付给一个input标签,就像上面代码做的一样。
从views.py传过来的preview_html默认会对一些字符进行转义,所以需要添加 | safe
打开浏览起就可以看到效果啦。我们这里使用了python markdown这个应用,可以看到相当的方便。
在上面的代码中,如果使用ajax将内容传回就更好了。但是如果javascript就有markdown的相应的应用就不用传回服务器了,所以如果真要自己使用那么还是找相应的js库方便。
那么这篇我们就来尝试使用markdown来制作一个在线的可以预览的editor。
安装 Python Markdown
pip install markdown
使用起来简单地就是两个函数:
markdown(text)
markdownFromFile(input, output)
具体参见文档:http://pythonhosted.org/Markdown/index.html
markdown(text)会直接把text转换成html格式返回。
我们在应用中就用这个就行了。
首先,在views.py中添加视图:
... from markdown import markdown ... def mdeditor(request): preview_html = "" if request.method == 'POST': md_content = request.POST['md_content'] print("md_content: {}".format(md_content)) preview_html = markdown(md_content) context = {'preview_html':preview_html,} return render(request, 'post/mdeditor.html', context)
将从post穿过来的md_content转换成html格式。然后传给post/mdeditor.html这个template返回给浏览器。
所以下一步就是建立一个这样的模板。
<html> <head><title>markdow editor</title> <script type="text/javascript"> function getEditorContent(){ document.getElementById("md_content").value = document.getElementById("editor").innerHTML; } </script> </head> <body> <div id="editor" style="padding-bottom: 200px" contenteditable="true"> </div> <form action="mdeditor" method="post" onsubmit="getEditorContent()"> {% csrf_token %} <input type="hidden" id="md_content" name="md_content"/> <input type="submit" /> </form> {{ preview_html | safe }}<br> </body> </html>
我们使用来做编辑器。那么要在表单中返回服务器,就需要将这个值付给一个input标签,就像上面代码做的一样。
从views.py传过来的preview_html默认会对一些字符进行转义,所以需要添加 | safe
打开浏览起就可以看到效果啦。我们这里使用了python markdown这个应用,可以看到相当的方便。
在上面的代码中,如果使用ajax将内容传回就更好了。但是如果javascript就有markdown的相应的应用就不用传回服务器了,所以如果真要自己使用那么还是找相应的js库方便。
相关文章推荐
- 步入python与Opencv
- Python学习笔记08
- python 生成qrcode二维码
- python基础一
- Python 中else介绍.举例,代码
- python中sort()与sorted()区别
- Principle of Computing (Python)学习笔记(1) 2048
- 【python】matplotlib在把坐标轴移到中间后如何去掉两个坐标轴上多余的一个0?
- python抓取网页内容并进行语音播报
- [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)
- python内置函数
- 如何入门 Python 爬虫?
- python函数参数+lambda表达式
- python列表
- python源码乱码问题
- python工具pycharm使用-断点调试
- python函数定义与使用+返回值简解
- python字符串
- python数字类型
- Python数据可视化练习