Markdown文本编辑器在信息发布及信息交互功能上的使用(一)

Markdown是一种可以使用普通文本编辑器编写的标记语言,通过类似HTML的标记语法,它可以使普通文本内容具有一定的格式。

MarkdownEditor 是一款基于浏览器的 Markdown 文本编辑器,功能非常简单实用。

在线地址:http://jbt.github.io/markdown-editor

资源地址:https://github.com/jbt/markdown-editor

此文本编辑器使用许可描述为“只要你喜欢,你可以随意复制、修改和使用他。(Feel free to take the code and copy it and modify it and use it however you like. )”

其中的图标的使用是此开源产品的一项特色,如下图所示。

源代码中所引用资源如下代码块所示:

  <script src="markdown-it.js"></script>
  <script src="markdown-it-footnote.js"></script>
  <script src="highlight.pack.js"></script>
  <script src="emojify.js"></script>
  <script src="codemirror/lib/codemirror.js"></script>
  <script src="codemirror/overlay.js"></script>
  <script src="codemirror/xml/xml.js"></script>
  <script src="codemirror/markdown/markdown.js"></script>
  <script src="codemirror/gfm/gfm.js"></script>
  <script src="codemirror/javascript/javascript.js"></script>
  <script src="codemirror/css/css.js"></script>
  <script src="codemirror/htmlmixed/htmlmixed.js"></script>
  <script src="codemirror/lib/util/continuelist.js"></script>
  <script src="rawinflate.js"></script>
  <script src="rawdeflate.js"></script>
  <link rel="stylesheet" href="base16-light.css">
  <link rel="stylesheet" href="codemirror/lib/codemirror.css">
  <link rel="stylesheet" href="default.css">

注:按个人的习惯,把JavaScript代码改为JS文件夹下,样式代码改为CSS文件夹下。另有emoji目录,存储信息交互时所使用的靓丽的图标。

修改源代码目标及内容

目标

  • 提取Markdown文本原文,用于存储后台数据库中;
  • 提取Markdown文本编辑器所转换的HTML文档,也是用于存储到后台数据库。

修改内容

源代码中已经有类似导出/存储文档的功能代码,识别出来稍微修改即可。

    function saveAsMarkdown(){
      var code = editor.getValue();
      var blob = new Blob([code], { type: ‘text/plain‘ });
      saveBlob(blob, "untitled.md");
    }

    function saveAsHtml() {
      var code = document.getElementById(‘out‘).innerHTML;
      var blob = new Blob([code], { type: ‘text/plain‘ });
      saveBlob(blob, "untitled.html");
    }

新增代码

需要增加便捷上传图片功能,实现图文混排。可以借用源代码中快捷键(Ctrl/Cmd + S)方式处理,可参见源代码如下:

    function showMenu() {
      document.getElementById(‘menu‘).style.display = ‘block‘;
    }

    document.addEventListener(‘keydown‘, function(e){
      if(e.keyCode == 83 && (e.ctrlKey || e.metaKey)){
        e.preventDefault();
        showMenu();
        return false;
      }
    });

信息发布功能设计

界面设计

信息发布界面是上下结构,上面是在线显示,下面输入框是在线编辑。

功能设计

功能名称 功能描述 备注
信息发布 发布编辑好的信息内容 Markdown文本和HTML文本分别保存
上传图片 上传图片文件到系统 编辑器里是链接,在线显示是图片
编辑 提供编辑按钮,方便修改
退出 退出编辑状态,关闭窗口

信息存储

信息发布内容所涉及到的Markdown原文、转换后的HTML文档及图片,分别保存到文档数据库(MongoDB)中。

其他

扩展支持流程图和UML时序图

扩展支持流程图和UML时序图功能,在信息发布中不实用,仅作技术交流研究,需要额外引入插件,流程图使用flowchart,开源地址为:https://github.com/adrai/flowchart.js

风险与问题

  • 风险是用户需要学习使用Markdown标记语言,虽然很简单,但是有些人不愿意学习;
  • 问题之一是此开源包在显示二级标题(##)时,转译过来的HTML文档有下水平线,在使用时需要更正处理;
  • 问题之二是不支持单行换行转换,换行需要是在编辑器里换两次行。

资源

本人下载整理资源地址:http://pan.baidu.com/s/1jGrc4nk,如果失效请联系反馈。

后记

引用他人的话:Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用。看到这里请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单。常用的标记符号也不超过十个,这种相对于更为复杂的 HTML 标记语言来说,Markdown 可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果。

如有其他易用开源资源及建议,欢迎反馈、交流。

时间: 2024-10-14 03:46:09

Markdown文本编辑器在信息发布及信息交互功能上的使用(一)的相关文章

ASP.NET MVC + 百度富文本编辑器 + EasyUi + EntityFrameWork 制作一个添加新闻功能

本文将交大伙怎么集成ASP.NET MVC + 百度富文本编辑器 + EasyUi + EntityFrameWork来制作一个新闻系统 先上截图: 添加页面如下: 下面来看代码部分 列表页如下: 1 @{ 2 Layout = null; 3 } 4 5 <!DOCTYPE html> 6 7 <html> 8 <head> 9 <meta name="viewport" content="width=device-width&qu

富文本编辑器宽度自适应及取消自动保存功能

1.富文本编辑器宽度自适应设置 初始化富文本编辑器是 设置属性 initialFrameWidth: '100%' 2.富文本编辑器取消自动保存功能 在ueditor.all.js中找到 UE.registerUI('autosave', function(editor) { 这个方法并注释掉. 原文地址:https://www.cnblogs.com/wpp281154/p/11430976.html

Ueditor百度富文本编辑器添加h5手机端预览功能

一.需求分析 项目中用到富文本编辑器的地方很多,富文本编辑器一般都是在pc后台上,因为前端是手机端,因此每次再富文本编辑内容保存以后,在手机端展示的样式和我们在富文本中编辑的不太一样,因此就需要在编写完内容之后可以模拟手机端进行预览一下,但是后端用富文本编辑器的地方比较多,不适合在每个页面进行开发,因此做成插件功能放入ueditor之中的方式改动的代价比较小. 首先看下效果 二.代码 先在ueditor.css中添加按钮样式图片: 路径:ueditor\themes\default\css\ue

轻量级文本编辑器,Notepad最佳替代品:Notepad++

[crifan推荐]轻量级文本编辑器,Notepad最佳替代品:Notepad++ 版本:v3.0 Crifan Li 摘要 本文主要介绍了笔者crifan推荐的轻量级文本编辑器,Notepad最佳替代品:Notepad++,内容主要包含notepad,notepad2,notepad++,ultraEdit的比较,使用Notepad++前要了解的知识,Notepad++的插件,Notepad++的安装过程,Notepad++的各种常见和不常见的功能的详解 本文提供多种格式供: 在线阅读 HTM

程序员最喜欢的15款文本编辑器推荐

很多时候比如编程查看代码或者打开各种文档下我们都会用到文本编辑器,Windows自带的记事本功能很简陋并且打开大文件很慢,因此很多童鞋都会有自己喜欢的一款文本编辑器.在这里,西西挑选前15个最佳的文本编辑器,这些编辑器实际上主要适合程序员!如果觉得这些文本编辑器足够您的使用,欢迎点赞,如果还有更好的,可以给我们推荐哦. 1. Notepad++中文版: 这是 Windows 记事本一个最好的替换产品,优于Windows记事本的一个文本编辑器,完全免费且开源,对于不同的编程语言可以实现语法高亮,代

Linux学习之第五课时--文本编辑器

在linux系统中经常会修改配置文件,这些配置文件可以使用文本编辑器进行修改,最常使用的文本编辑器便是图形界面下的gedit以及字符界面下的nano和vim(vi) gedit文本编辑器 gedit是一款可以在linux图形界面下使用的兼容UTF-8的文本编辑器,使用GTK+编写而成,简单易用,对中文有良好的支持特性 在linux系统图形界面下单击面板上的[应用程序]  [附件]  [gedit文本编辑器]  或在图形界面下的终端中输入gedit命令 使用gedit文本编辑器的快捷键文档编辑 快

django之百度Ueditor富文本编辑器后台集成

Python3 + Django2.0 百度Ueditor 富文本编辑器的集成 百度富文本编辑器官网地址:http://fex.baidu.com/ueditor/ 疑问:为什么要二次集成? 答案:因为百度富文本编辑器Ueditor没有对python的支持 步骤1: 在官网下载Ueditor的任意版本代码:http://ueditor.baidu.com/website/download.html#ueditor 步骤2: 将下载的代码放入到 django 项目中 步骤3:前端引用 在前端HTM

设计时使用的14个文本编辑器

[转自e良师益友网]对于设计师来说选择设计使用的软件工具时,可视化的工具的易用性通常非常优异,因为它更符合人们交互和操作的自然逻辑.不过要精准控制网页和程序,你总需要一款称心如意的文本编辑器来帮你搞定代码. 从 某种程度上来说,文本编辑器看起来没有可视化程序那么高大上,但是多年以来网页开发的方式和基本流程都没有本质上的改变,因此网页开发也无法和文本编辑器 割裂开来.热爱文本编辑器的开发者和设计师都很清楚,一个得心应手的文本编辑器不仅高效而且具备良好的可控性,助力设计,加速开发. 下面我们看看精心

让富文本编辑器支持复制doc中多张图片直接粘贴上传

让富文本编辑器支持复制doc中多张图片直接粘贴上传 Chrome+IE默认支持粘贴剪切板中的图片,但是我要发布的文章存在word里面,图片多达数十张,我总不能一张一张复制吧? 我希望打开文档doc直接复制粘贴到富文本编辑器,直接发布 感觉这个似乎很困难,因为Ueditor本身不支持,粘贴后直接就是空白,这里面一定有原因. 好,开始尝试UMeditor,Chrome只能获得本地路径,无法读取文件. https://ueditor.baidu.com/website/umeditor.html(有兴