Markdown编辑器——Editor.md的使用

最近在写一个个人博客项目,其中用到了一款开源的Markdown文本编辑器——Editor.md,记录一下将其集成到项目中的方法,以及踩的坑。

1. 从官网上下载源码

官网地址:Editor.md - 开源在线 Markdown 编辑器

最新版本: v1.5.0,更新于 2015-06-09 (已经很久没有更新版本了,但在项目中用的还是非常多的)

Markdown编辑器——Editor.md的使用

下载下来之后是一个压缩包,解压

Markdown编辑器——Editor.md的使用

2. 将需要的资源导入项目

创建一个Springboot项目,在resources/statics目录下创建一个lib子目录,用来放项目中需要的页面插件,再创建editormd目录用来放Editor.md的资源。

代码结构如下:

Markdown编辑器——Editor.md的使用

将刚才解压的editor.md-master中的一部分资源拷贝到项目的editormd目录里。

Markdown编辑器——Editor.md的使用

Markdown编辑器——Editor.md的使用

3. 编写页面展示代码

可以参考官方给的例子,在解压后的editor.md-master/examples目录下可以找到很多例子,其实必须要做的只有以下四步。

引入css

<link rel="stylesheet" href="../../static/lib/editormd/css/editormd.min.css">

引入js

<script src="../../static/lib/editormd/editormd.min.js"></script>

在页面创建一个区域用来显示Markdown编辑器

 <!--z-index: number :设置元素的堆叠顺序,number大的排在前面-->
 <div id="md-content" style="z-index: 1 !important">
     <textarea name="content" placeholder="博客内容" style="display: none">                   </textarea>
 </div>

用js初始化这块区域

<script type="text/javascript">
     // 初始化markdown编辑器
     var contentEditor
     $(function() {
         //md-content必须和页面区域的最外层div的id相同
         contentEditor = editormd("md-content", {
             // 在页面显示的宽度
             width   : "100%",
             // 高度
             height  : 640,
             // 单滚动条
             syncScrolling : "single",
             // lib资源的路径
             path    : "../../static/lib/editormd/lib/"
         });
     });
 </script>

4. 最终页面显示效果

Markdown编辑器——Editor.md的使用

5. 踩到的坑

  • Firstblood

Refused to apply style from 'http://localhost:63342/mysite/templates/static/lib/editormd/lib/codemirror/addon/dialog/dialog.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

Markdown编辑器——Editor.md的使用

原因是初始化markdown编辑器中,lib的路径没有写对。

  • Doublekill

Uncaught TypeError: Cannot read properties of undefined (reading 'value') at Function.CodeMirror.fromTextArea (codemirror.min.js:40) at init.setCodeMirror (editormd.min.js:2) at editormd.min.js:2 at HTMLScriptElement.t.isIE8.r.onload (editormd.min.js:3)

画面显示区域什么也没显示。

原因是粗心大意,不是class,而应该是id,本质上是初始化markdown编辑器那段js代码里面指定的页面区域的id没有被找到,检查一下两者是不是一致。

Markdown编辑器——Editor.md的使用

上一篇:gitbook使用


下一篇:vue + mavon-editor 后端将markdown内容写成接口展示