欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javaweb项目集成editor.md编辑器---markdown编辑器

程序员文章站 2022-07-14 08:51:40
...

最近写一个博客系统,需要集成编辑器,所以我就打算集成一个markdown编辑器用来编辑文章。在网上搜,好像editor.md这个国产开源的markdown编辑器比较好。不过想吐槽是网上的教程真的。。。哈哈哈,开始我们的教程:
1.首先在editor.md官网(http://pandao.github.io/editor.md/)下载这一个编辑器。
这是下载好后的文件目录

javaweb项目集成editor.md编辑器---markdown编辑器
2.将目录下的css目录,images目录,lib目录,plugins目录,src目录以及example目录中的css目录,js目录和整合一下
javaweb项目集成editor.md编辑器---markdown编辑器
3.将提取后的文件放在你项目的静态文件夹中,我用的idea,我放在web目录下的static文件夹中,
写一个html如下

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8" />
        <title>Simple example - Editor.md examples</title>
        <link rel="stylesheet" href="/static/Admin/editor/css/style.css" />
        <link rel="stylesheet" href="/static/Admin/editor/css/editormd.css" />
        <link rel="shortcut icon" href="https://pandao.github.io/editor.md/favicon.ico" type="image/x-icon" />
        <link rel="stylesheet" href="/static/Public/css/bootstrap_button.css">\
        <style>
            #submit_button{
                display:block;
                margin-left: 42%;
                margin-top: 2em;
                margin-bottom: 2em;
            }
            .input{
                display: block;
                margin-left: 20%;
            }
        </style>
    </head>
    <body>
        <div id="layout">
            <div id="my-editormd" >
                 <textarea id="my-editormd-markdown-doc" name="my-editormd-markdown-doc" style="display:none;"></textarea>
                <!-- 注意:name属性的值-->
                <textarea id="my-editormd-html-code" name="my-editormd-html-code" style="display:none;"></textarea>
            </div>
            <button class="button button-block button-rounded button-action button-large" id="submit_button">确认提交</button>

        </div>

        <script src="/static/Public/jquery.js"></script>
        <script src="/static/Admin/editor/js/editormd.js"></script>
        <script type="text/javascript">
            <!--为了让editor.md编辑器完整的显示出来-->
            var testEditor;
            $(function() {
                testEditor = editormd("my-editormd", {
                    width   : "90%",
                    height  : 640,
                    syncScrolling : "single",
                    path    : "/static/Admin/editor/lib/",
                    saveHTMLToTextarea : true
                });
            });
            <!--然后用ajax将编辑器中的md格式的数据提交到后台,存储在数据库中,有的人可能存储的是html格式的,也行,这个看你自己的选择了,不过存储.md格式还是要好一点-->
            $("#submit_button").click(function () {
                $.ajax({
                    type: "post",
                    url: "",
                    data: {
                        content:$("#my-editormd-html-code").val(),

                    },
                    contentType: "application/x-www-form-urlencoded; charset=utf-8",
                    dataType: "json",
                    success: function (data)
                    {

                    },
                    error:function () {

                    }
                });
            });
        </script>
    </body>
</html>

4.第三步是为了把数据存储到数据库中,这一步那就是将数据库存储的数据在前端显示。
同样的写个jsp文件如下

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html lang="zh">
<head>
    <meta charset="utf-8" />
    <title>HTML Preview(markdown to html) - Editor.md examples</title>
    <link rel="stylesheet" href="/static/Admin/editor/css/style.css" />
    <link rel="stylesheet" href="/static/Admin/editor/css/editormd.preview.css" />
    <link rel="shortcut icon" href="https://pandao.github.io/editor.md/favicon.ico" type="image/x-icon" />
    <style>
        .editormd-html-preview {
            width: 90%;
            margin: 0 auto;
            padding-top: 9em;
        }
    </style>
</head>
<body>
<div id="layout">
    <div id="test-editormd-view">
        <textarea style="display:none;" name="test-editormd-markdown-doc"></textarea>
    </div>
    <div id="test-editormd-view2">
                <%--存放md数据--%>
                <textarea id="append-test" style="display:none;">
                    ${articleContent}
                </textarea>
    </div>
</div>
<script src="/static/Public/jquery.js"></script>
<script src="/static/Admin/editor/lib/marked.min.js"></script>
<script src="/static/Admin/editor/lib/prettify.min.js"></script>
<script src="/static/Admin/editor/lib/raphael.min.js"></script>
<script src="/static/Admin/editor/lib/underscore.min.js"></script>
<script src="/static/Admin/editor/lib/sequence-diagram.min.js"></script>
<script src="/static/Admin/editor/lib/flowchart.min.js"></script>
<script src="/static/Admin/editor/lib/jquery.flowchart.min.js"></script>
<script src="/static/Admin/editor/js/editormd.js"></script>
<script type="text/javascript">
    $(function() {
        var testEditormdView, testEditormdView2;
        $.get("test.md", function(markdown) {
            testEditormdView = editormd.markdownToHTML("test-editormd-view", {
                markdown        : markdown ,//+ "\r\n" + $("#append-test").text(),
                htmlDecode      : "style,script,iframe",  // you can filter tags decode
                tocm            : true,    // Using [TOCM]
//                 markdownSourceCode : true, // 是否保留 Markdown 源码,即是否删除保存源码的 Textarea 标签
                emoji           : true,
                taskList        : true,
                tex             : true,  // 默认不解析
                flowChart       : true,  // 默认不解析
                sequenceDiagram : true,  // 默认不解析
            });
            // 获取Markdown源码
            //console.log(testEditormdView.getMarkdown());
            //alert(testEditormdView.getMarkdown());
        });
        testEditormdView2 = editormd.markdownToHTML("test-editormd-view2", {
            htmlDecode      : "style,script,iframe",  // you can filter tags decode
            emoji           : true,
            taskList        : true,
            tex             : true,  // 默认不解析
            flowChart       : true,  // 默认不解析
            sequenceDiagram : true,  // 默认不解析
        });
    });
</script>
</body>
</html>

上面几步都是我从我的项目里抽出来的代码,真实可用。
5.关于编辑器拓展功能的实现我就不多说了,这方面度娘上的文章很多了。

以上只是用源代码说明一下,怎样在Javaweb项目中集成editor.md编辑器,知识很浅,只是希望有些童鞋能少走些弯路。

相关标签: java web