Editormd的使用——在线编辑和查看文章

Editormd的使用——在线编辑和查看文章使用Editormd可以方便地在界面上嵌入markdown编辑器,并能够实时预览。先看一下实现效果:编辑文章界面:展示文章界面:用法:首先,到https://pandao.github.io/editor.md/下载Editormd的压缩包,解压到自己的静态资源文件夹下。第二步,引入必要的文件: <linkrel=”stylesheet”href=”/resource/assets/editormd/css/editormd.css”/><linkrel=

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

使用Editormd可以方便地在界面上嵌入markdown编辑器,并能够实时预览。
先看一下实现效果:
编辑文章界面:
在这里插入图片描述展示文章界面:
在这里插入图片描述
用法:

首先,到https://pandao.github.io/editor.md/下载Editormd的压缩包,解压到自己的静态资源文件夹下。
在这里插入图片描述 第二步,引入必要的文件:

	<link rel="stylesheet" href="/resource/assets/editormd/css/editormd.css"/>
    <link rel="stylesheet" href="/resource/assets/editormd/css/editormd.min.css"/>
    <script src="/resource/assets/js/jquery.min.js"></script>
    <script src="/resource/assets/editormd/editormd.min.js"></script>

Jetbrains全家桶1年46,售后保障稳定

注意:jquery文件必须要在editormd之前引入,否则会报editormd is undefined/zepto is undefined的错误

第三步,在html中添加如下代码:

<div id="my-editormd">
	<!-- 书写与实时显示的textarea -->
	<textarea id="my-editormd-markdown-doc" name="my-editormd-markdown-doc" style="display:none;"><%=content%></textarea>
	<!-- 用于后端获取md稳当内容,Java中:request.getParameter("my-editormd-html-code")-->
	<textarea id="my-editormd-html-code" name="my-editormd-html-code" style="display:none;"></textarea>
</div>

JavaScript代码如下所示:

 var editor;
    $(function() { 
   
        editor = editormd("my-editormd", { 
   //注意1:这里的就是上面的DIV的id属性值
            width   : "96%",
            height  : 600,
            syncScrolling : "single",
            path    : "/resource/assets/editormd/lib/",//注意2:你的路径
            saveHTMLToTextarea : true,//注意3:这个配置,方便post提交表单
            imageUpload : true,
            imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp"],//支持接收的图片上传的格式
            imageUploadURL : "/admin/uploadFile" //你的controller里为上传图片所设计的路径
        });
    });
// 通过editor.getMarkdown()可以获取到你所写的文章内容。可以使用encodeURIComponent()方法将文章内容编码后存储。
// 编码后的内容可以在后端调用URLDecoder.decode(content, "UTF-8")来解码
// var blogContent = encodeURIComponent(editor.getMarkdown())
// article.content = blogConent;
...

详细代码可以看https://github.com/FuGaZn/SpringBlog/blob/master/src/main/webapp/WEB-INF/views/admin/editArticle.jsp
实现图片上传功能的Controller下方法如下所示:

	@RequestMapping(value = "/admin/uploadFile", method = RequestMethod.POST)
    @ResponseBody
    public String uploadFile(HttpServletRequest request, HttpServletResponse response,
                                 @RequestParam(value = "editormd-image-file", required = false) MultipartFile attach){ 
   
        JSONObject jsonObject=new JSONObject();

        try { 
   
            request.setCharacterEncoding("utf-8");
            response.setHeader("Content-Type", "text/html");
            String rootPath = request.getSession().getServletContext().getRealPath("/resource/img");

            System.out.println("editormd上传图片:"+rootPath);

            /** * 文件路径不存在则需要创建文件路径 */
            File filePath = new File(rootPath);
            if (!filePath.exists()) { 
   
                filePath.mkdirs();
            }

            // 最终文件名
            File realFile = new File(rootPath + File.separator + attach.getOriginalFilename());
            Files.copy(attach.getInputStream(),realFile.toPath());
            //FileUtils.copyInputStreamToFile(attach.getInputStream(), realFile);

            // 下面response返回的json格式是editor.md所限制的,规范输出就OK
            jsonObject.put("success", 1);
            jsonObject.put("message", "上传成功");
            jsonObject.put("url", "/resource/img/"+attach.getOriginalFilename());
        } catch (Exception e) { 
   
            jsonObject.put("success", 0);
        }
        return jsonObject.toString();
    }

注意:SpringMVC项目需要在配置文件或配置类中引入对MultipartFile的支持
java配置类的写法:

    @Bean(name = "multipartResolver") // bean必须写name属性且必须为multipartResolver
    protected CommonsMultipartResolver multipartResolver() { 
   
        CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
        commonsMultipartResolver.setMaxUploadSize(5 * 1024 * 1024);
        commonsMultipartResolver.setMaxInMemorySize(0);
        commonsMultipartResolver.setDefaultEncoding("UTF-8");
        return commonsMultipartResolver;
    }

上面步骤完成后,就可以在页面中在线编辑文件并上传图片了。
接下来让我们看看如何把数据库编码后的md内容转换成html显示在页面上。
首先引入以下文件:

	<link rel="stylesheet" href="/resource/assets/editormd/css/editormd.min.css"/>
    <link rel="stylesheet" href="/resource/assets/editormd/css/editormd.css"/>
    <script src="/resource/assets/js/jquery.min.js"></script>
    <script src="/resource/assets/editormd/editormd.min.js"></script>

    <script src="/resource/assets/editormd/lib/marked.min.js"></script>
    <script src="/resource/assets/editormd/lib/prettify.min.js"></script>
    <script src="/resource/assets/editormd/lib/raphael.min.js"></script>
    <script src="/resource/assets/editormd/lib/underscore.min.js"></script>
    <script src="/resource/assets/editormd/lib/sequence-diagram.min.js"></script>
    <script src="/resource/assets/editormd/lib/flowchart.min.js"></script>
    <script src="/resource/assets/editormd/lib/jquery.flowchart.min.js"></script>

在html中添加如下内容:

<div id="test-editormd" style="width: 90%;padding-left: 5%" >
	<textarea style="display: none" name="test-editormd-markdown-doc"><%=content%></textarea>
</div>

在JavaScript中引入如下内容:

	var testEditor;
    $(function () { 
   
        testEditor = editormd.markdownToHTML("test-editormd", { 
   
            htmlDecode :"style, script, iframe",
            emoji           : true,
            taskList        : true,
            tex             : true,  // 默认不解析
            flowChart       : true,  // 默认不解析
            sequenceDiagram : true,  // 默认不解析
        });
    })

然后皆可以看到转换为html后的文章内容啦

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234752.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IDEA修改背景颜色大全(护眼绿等)

    IDEA修改背景颜色大全(护眼绿等)一.IDEA默认有3种背景颜色路径为File->settings->Editor->ColorScheme可以设置软件默认颜色,旁边的小齿轮添加颜色名字二.IDEA扩展颜色(护眼绿)第一种方法:IDEA设置一张背景图片,路径:File->Settings->Appearance&Behavior->Appearance第…

    2022年6月20日
    252
  • kubernetes可以实现容器集群的哪些功能_hadoop高可用集群搭建

    kubernetes可以实现容器集群的哪些功能_hadoop高可用集群搭建二进制方式部署Kubernetes高可用集群文章目录二进制方式部署Kubernetes高可用集群1.环境准备1.1.Kubernetes高可用集群部署方式1.2.Kubernetes集群弃用docker容器1.3.Kubernetes集群所需的证书1.4.环境准备1.5.安装cfssl证书生成工具2.操作系统初始化配置3.部署Etcd集群3.1.使用cfssl证书工具生成etcd证书3.2.部署etcd集群4.部署Docker服务4.1.安装docker4.2.为docker创建systemctl启动脚本

    2022年9月3日
    2
  • AbstractMethodError那些事

    AbstractMethodError那些事Java社区添加小编微信进入java学习交流群,小编微信:372787553,备注进群AbstractMethodErrorExceptioninthread“main”java.lang.AbstractMethodError这样的异常并不常见,如果您有幸遇到了,那么一定要珍惜,否则转瞬即逝!发生原因为什么会发生这样的错误?让我们看一下官方的解释:当应用程序尝试调用抽象方法时抛出。通常,该错误被编译器捕获;如果某些类的定义自上次编译当前执行的方法以来不兼容地更改,则此错误只能

    2022年5月30日
    31
  • pycharm2022激活码【在线注册码/序列号/破解码】

    pycharm2022激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    232
  • pycharm2021最新激活码(最新序列号破解)

    pycharm2021最新激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    196
  • 如何解压war包_tomcat自动解压war包

    如何解压war包_tomcat自动解压war包使用WinRAR即可解压,同目录下创建一个.zip文件,右键打开方式->WinRAR压缩文件管理器“向上”,到文件目录选择要解压的文件,点击“解压到”,解压到你想要的目录即可java中的war格式的压缩包怎么解压?你好,这些是打包好的部署包,将这些直接丢如TomcatWebApp目录下就可以通过Web访问了,如果你想看源码,用解压缩软件都可以的,就看这包里面有没有源码了,zip,win…

    2022年10月5日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号