用Python制作markdown编辑器
还记得在上篇提到的rest-framework,文档中提到了markdown也是可选应用。
那么这篇我们就来尝试使用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制作markdown编辑器的更多相关文章
- Python技能树及CSDN MarkDown编辑器测评
测评目录 python技能树测评 python技能树是什么 python技能树长什么样 如何学习python技能树 python技能树可能需要的改进 对python技能树的总结 CSDN MarkDo ...
- 自己动手制作更好用的markdown编辑器-01
这里文章都是从个人的github博客直接复制过来的,排版可能有点乱. 原始地址 http://benq.im 文章目录 1. 简介 2. 项目结构 3. 程序主界面 4. 拖动窗口 5. app ...
- mac好用的markdown编辑器
在刚开始接触markdown的时候,就被吸引了.此后一直在找贴心的好用的markdown编辑器.印象笔记和马克飞象配合着用也是挺好的,唯一的缺点就是比较封闭,发个笔记的链接给同学,还得注册才能看,导致 ...
- Markdown编辑器语法指南2
人的一切痛苦, 本质上都是对自己的无能的愤怒. --王小波 1 Markdown编辑器的基本用法 1.1 代码 如果你只想高亮语句中的某个函数名或关键字,可以使用 `function_name()` ...
- NanUI for Winform 使用示例【第二集】——做一个所见即所得的Markdown编辑器
经过了这一个多星期的调整与修复,NanUI for .NET Winform的稳定版已经发布.应广大群友的要求,现已将NanUI的全部代码开源. GitHub: https://github.com/ ...
- 使用python制作ArcGIS插件(2)代码编写
使用python制作ArcGIS插件(2)代码编写 by 李远祥 上一章节已经介绍了如何去搭建AddIn的界面,接下来要实现具体的功能,则到了具体的编程环节.由于使用的是python语言进行编程,则开 ...
- 使用python制作ArcGIS插件(1)工具介绍
使用python制作ArcGIS插件(1)工具介绍 by 李远祥 ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作.相对于以往9.x系列,addin的无论是 ...
- Linux编辑器篇-分享10个最好的Markdown编辑器
在这篇文章中,兄弟连Linux培训会分享一些可以在 Linux 上安装使用的最好的 Markdown 编辑器.虽然你在 Linux 平台上能找到非常多的 的 Markdown 编辑器,但是在这里我们将 ...
- Markdown编辑器使用说明
Markdown编辑器使用说明 #编辑器使用说明编辑器仅用来编辑文章的样式,建议在其他文档中写好内容,再复制到此处编辑样式--- ## 编辑器使用介绍—非开发者 非开发者,可以将编辑框内容全部删掉,使 ...
随机推荐
- C程序设计语言练习题1-9
练习1-9 编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // ...
- MySQL扩展
一.使用MySQL特有的函数! 1>到年底还有几天 select datediff('2014-12-31','2014-6-21');//此函数用于计算日期 ...
- LeetCode_Combination Sum
Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C wher ...
- ISO7816通讯协议在工控主板EM9160中的实现方案
在新的国家电网智能终端相关标准中,规定了通过专门的加密芯片来保证设备数据安全性的方法,而设备主控单元与加密芯片采用了广泛应用的ISO7816通讯协议.工控主板EM9160为了适应这一新的技术需求,对其 ...
- 人人必知的10个jQuery小技巧
收集的10个 jQuery 小技巧/代码片段,可以帮你快速开发. 1.返回顶部按钮 你可以利用 animate 和 scrollTop 来实现返回顶部的动画,而不需要使用其他插件. // Back t ...
- Swift字符串常用操作总结
转自:http://www.jianshu.com/p/52e7580166ff 1.string转换为Int/Long/Float/Double/Bool等 var str1="100&q ...
- JavaScript 精髓整理篇之一(对象篇)postby:http://zhutty.cnblogs.com
废话篇头: 由于工作关系,所以写博文的时间有那么点~~,其实是输入法太懒了,都是输入法的错~~ 这一系列的博客将总结所有关于JavaScript语言的精髓,适合0基础到大师级别人物阅读. <Ja ...
- 基于注解的Spring MVC
1.加入�jar 2.web.xml配置: <?xml version="1.0" encoding="UTF-8"?> <web-app v ...
- gcc/g++/make 编译信息带颜色输出
假设编译一个项目错误警告太多.很不好找,所以很希望输出信息能够带有颜色. 但是 gcc 4.9.0 之前的版本号并不支持,非常多情况下是不能替换编译器的,比方使用交叉编译器, 也能够使用 colorg ...
- mini2440裸机试炼之——DMA直接存取 实现Uart(串口)通信
这个仅仅能作为自己初步了解MDA的开门篇 实现功能: 将字符串数据通过DMA0通道传递给UTXH0,然后在终端 显示.传输数据完后.DMA0产生中断,beep声, LED亮. DMA基本知识 计算机系 ...