简介

Editor.md 是一款开源的、可嵌入的 Markdown 在线编辑器(组件),基于 CodeMirror、jQuery 和 Marked 构建。需要的小伙伴可在GitHub上下载使用(https://github.com/pandao/editor.md/)。完整的demo也可以参考下面的地址:https://pandao.github.io/editor.md/examples/index.html。

下面是这款在线编辑器的特性。

  • 支持通用 Markdown / CommonMark 和 GFM (GitHub Flavored Markdown) 风格的语法,也可变身为代码编辑器;
  • 支持实时预览、图片(跨域)上传、预格式文本/代码/表格插入、代码折叠、跳转到行、搜索替换、只读模式、自定义样式主题和多语言语法高亮等功能;
  • 支持 ToC(Table of Contents)、Emoji表情、Task lists、@链接等 Markdown 扩展语法;
  • 支持 TeX 科学公式(基于 KaTeX)、流程图 Flowchart 和 时序图 Sequence Diagram;
  • 支持识别和解析 HTML 标签,并且支持自定义过滤标签及属性解析,具有可靠的安全性和几乎无限的扩展性;
  • 支持 AMD / CMD 模块化加载(支持 Require.js & Sea.js),并且支持自定义扩展插件;
  • 兼容主流的浏览器(IE8+)和 Zepto.js,且支持 iPad 等平板设备;

这款在线编辑器有一个缺点就是无法将HTML转换为markdown语法。不过在未来可能会弥补好这一点。

Django配置

  • 在github上将整个下载下来后放入django项目的static目录下

  • html页面插入下面的代码
<link rel="stylesheet" href="{% static 'plugins/markdown_editor/css/editormd.css' %}"><div id="test-editormd""><textarea name="content" style="display:none;" id="content"></textarea>
</div><script src="{% static 'plugins/markdown_editor/editormd.js' %}"></script><script type="text/javascript">var testEditor;$(function() {$.get('{% static 'plugins/markdown_editor/examples/test.md' %}', function(md){testEditor = editormd("test-editormd", {width: "90%",height: 740,path : '{% static 'plugins/markdown_editor/lib/' %}',theme : "dark",previewTheme : "dark",editorTheme : "pastel-on-dark",markdown : md,codeFold : true,//syncScrolling : false,saveHTMLToTextarea : true,    // 保存 HTML 到 TextareasearchReplace : true,//watch : false,                // 关闭实时预览htmlDecode : "style,script,iframe|on*",            // 开启 HTML 标签解析,为了安全性,默认不开启    //toolbar  : false,             //关闭工具栏//previewCodeHighlight : false, // 关闭预览 HTML 的代码块高亮,默认开启emoji : true,taskList : true,tocm            : true,         // Using [TOCM]tex : true,                   // 开启科学公式TeX语言支持,默认关闭flowChart : true,             // 开启流程图支持,默认关闭sequenceDiagram : true,       // 开启时序/序列图支持,默认关闭,//dialogLockScreen : false,   // 设置弹出层对话框不锁屏,全局通用,默认为true//dialogShowMask : false,     // 设置弹出层对话框显示透明遮罩层,全局通用,默认为true//dialogDraggable : false,    // 设置弹出层对话框不可拖动,全局通用,默认为true//dialogMaskOpacity : 0.4,    // 设置透明遮罩层的透明度,全局通用,默认值为0.1//dialogMaskBgColor : "#000", // 设置透明遮罩层的背景颜色,全局通用,默认为#fffimageUpload : true,imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],imageUploadURL : "{% url 'admin:markdown_image_upload' %}",onload : function() {console.log('onload', this);}});});
</script>
  • 前端代码中的imageUploadURL字段是图片上传的地址,该功能要在后端视图中自己实现。本次图片存放在fastdfs分布式文件存储系统中,关于这个查看Django搭建fastdfs。后端返回的参数可以源码中查看获取,有三个参数:success、message、url,如下图所示:

后端接收的参数名为editormd-image-file,如下图所示:

from django.http import JsonResponse
from django.conf import settingsclass Markdown_Upload_image(View):def post(self,request):FDFS_Client = Fdfs_client('utils/fastdfs/client.conf')image_file = request.FILES.get('image_file')if not image_file:return JsonResponse({'success':0,'message':'上传图片为空'})if image_file.content_type not in ('image/jpeg', 'image/png', 'image/gif'):return JsonResponse({'success': 0, 'message': '不能上传非图片文件'})try:image_ext_name = image_file.name.split('.')[-1]except Exception as e:image_ext_name = 'jpg'try:upload_res = FDFS_Client.upload_by_buffer(image_file.read(), file_ext_name=image_ext_name)except Exception as e:return JsonResponse({'success': 0, 'message': '图片上传异常'})if upload_res.get('Status') != 'Upload successed.':return JsonResponse({'success': 0, 'message': '图片上传到服务器失败'})image_name = upload_res.get('Remote file_id')image_url = settings.FASTDFS_SERVER_DOMAIN + image_namereturn JsonResponse({'success':1,'message':'上传图片成功','url':image_url})

Editor.md的常用方法

  • testEditor.gotoLine(num);

功能是到达指定行,参数num是一个正整数。

  • testEditor.show();

显示这个在线编辑器,如果已经显示,则该方法无效。

  • testEditor.hide();

隐藏这个在线编辑器,如果已经隐藏,则该方法无效。

  • testEditor.getMarkdown();

以markdown的格式返回编辑器内的内容。可用alert()方法弹出来显示。

  • testEditor.getHTML();

以HTML的格式返回编辑器内的内容。可用alert()方法弹出来显示。

  • testEditor.watch();

开启实时预览功能。

  • testEditor.unwatch();

关闭实时预览功能。

  • testEditor.previewing();

隐藏工具栏,编辑器展示此时的文本预览的内容。(全窗口预览HTML)

  • testEditor.fullscreen();

将编辑器全屏展示,按ESC恢复。

  • testEditor.showToolbar();

显示编辑器工具栏,如果已经显示,该方法失效。

  • testEditor.hideToolbar();

隐藏编辑器工具栏,如果已经隐藏,该方法失效。

  • testEditor.config('key','value');

对testEditor的属性进行配置或修改。

Django搭建强大好用的文本编辑器相关推荐

  1. editplus字符转16进制_EditPlus–一款小巧功能强大的老牌代码文本编辑器

    这是一款小巧功能强大的老牌代码文本编辑器,可处理文本.网页和程序语言的文字编辑器,也可以将它作为C/Java/Php等语言的简单IDE调试编辑工具 软件功能 语法突出显示 EditPlus默认支持功能 ...

  2. django项目中使用KindEditor富文本编辑器

    先从官网下载插件,放在static文件下 前端引入 学习python中有什么不懂的地方,小编这里推荐加小编的python学习群:895,817, 687 有任何不懂的都可以在里面交流,还有很好的视频教 ...

  3. Linux 命令之 sed -- 功能强大的流式文本编辑器

    文章目录 一.命令介绍 二.命令格式 三.常用选项 四.sed 子命令 五.sed 替换标记 六.sed 元字符集 七.命令示例 (一)用指定的字符串替换掉指定的字符串 (二)删除文档中的空白行 (三 ...

  4. django 常用static\media\邮箱\富文本编辑器配置(备忘)

    STATIC_URL = '/static/' STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ]MEDIA_URL = '/media/' ...

  5. Django学习18 -- 富文本编辑器(Rich Edit)

    1. 富文本编辑器,Rich Edit CharField,单行文本(Django默认) TextField,多行文本(Django默认) 富文本编辑器是能显示(编辑)图文效果的输入控件 2. Dja ...

  6. 强大的HTML文本编辑器:BBEdit for Mac

    还在找一款专业的HTML文本编辑器吗?BBEdit For Mac是著名编辑器BBEdit适用于Mac OS平台版本,用于编辑HTML文件,文本文件及程序源代码,BBEdit是全球领先的专业HTML和 ...

  7. LFCS 系列第二讲:如何安装和使用纯文本编辑器 vi/vim

    LFCS 系列第二讲:如何安装和使用纯文本编辑器 vi/vim 几个月前, Linux 基金会发起了 LFCS (Linux 基金会认证系统管理员Linux Foundation Certified ...

  8. 如何安装和使用纯文本编辑器 vi/vim

    2019独角兽企业重金招聘Python工程师标准>>> 这篇文章是系列教程的第二讲,在这个部分中,我们会介绍 vi/vim 基本的文件编辑操作,帮助读者理解编辑器中的三个模式,这是 ...

  9. HTML文本编辑器BBEdit 14 for Mac

    BBEdit是强大专业的HTML文本编辑器,BBEdit专门针对Web作者和软件开发人员的需求而制作,为编辑,搜索和处理文本提供了丰富的高性能功能,具有强大的智能搜索.代码折叠.FTP上传等功能,是程 ...

最新文章

  1. 太火!这本AI图书微软强推,程序员靠它拿下50K!
  2. 进入Android Dalvik虚拟机之Dalvik指令集
  3. ol xyz 加载天地图_OpenLayer学习之加载天地图
  4. 常用PHP array数组函数
  5. 帝国理工大学2021-22电气与电子工程系应用机器学习硕士课程大纲
  6. mysql 序号_脚本搭建Nginx、Redis、MySql、Maven
  7. oracle有sysdata,Oracle基础
  8. Spark 性能相关参数配置详解-压缩与序列化篇
  9. 图解前端之正则表达式
  10. 全国计算机信息处理技术员报名官网入口,信息处理技术员考试,就是这么简单!...
  11. Linu下安装ffmpeg
  12. 【lstm做文本分类保存】
  13. mediapipe系列之一脸部特征点标记
  14. 苹果 App Clip 技术详解
  15. 计算机进入bios,如何进入bios(电脑进入BIOS的两种实用方法)
  16. 王菲给师父打电话拜年,受高人指点,她扶摇直上联手天王横扫歌坛
  17. Java P1413 滑雪
  18. sony6000正在连接服务器,极速对焦+11张每秒连拍 Sony A6000评测
  19. 武汉新时标文化传媒有限公司短视频的类型
  20. 2017.02.18 这一周的面试

热门文章

  1. 删除pdf复制过来文字的回车或空格
  2. 微信公众号 :h5获取code,授权等问题
  3. DWR(Direct Web Remoting)原理和实例
  4. 复盘韵达快运四年征程:“品”快运行业的“咸与淡”
  5. python数据建模工具_数据探索很麻烦?推荐一款史上最强大的特征分析可视化工具:yellowbrick...
  6. Android培训班(110)start_kernel函数7
  7. PTA 7-66 时间换算
  8. 13.mysql-修改表名
  9. Autojs实现蚂蚁森林自动收取能量球
  10. 多标签资源管理器哪个最好用