开发 web Markdown

简介: 在 web 程序编写笔记时用的上, 例如阿里云写博客的页面就用到了 Markdown 技术, 与 csdn 发布博客也使用了该技术

markdown-开发

  1. 解压 editor.md-master.zip
  2. 导入 web 项目
  3. 编辑 html 页面
  4. 编写 servlet 获取值

解压 editor.md-master.zip AND 导入 web 项目


editor.md-master.zip: 下载链接


编写 html 页面使用

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8" />
        <title>markdown</title>
        <link rel="stylesheet" href="editor/examples/css/style.css" />
        <link rel="stylesheet" href="editor/css/editormd.css" />
        <%-- 需要导入两个 CSS --%>
    </head>
    <body>
        
        <div id="test-editormd">
            <textarea style="display:none;">
                <%-- 页面一开始显示的内容 --%>
            </textarea>
        </div>
        
           <button onclick="save()" class="btn">save</button>
           
        <%-- 导入jquery --%>
        <script src="editor/examples/js/jquery.min.js"></script>
        <%-- 导入 editormd 语法 --%>
        <script src="editor/editormd.min.js"></script>
        
        <script type="text/javascript">
            var editor;

            /** 初始化编辑器:
                    1. 需要注意的 path 目录指定的是 editor 中的 lib/
            */
            $(function() {
                editor = editormd("test-editormd", {
                    width   : "90%",
                    height  : 640,
                    syncScrolling : "single",
                    path    : "editor/lib/",
                    saveHTMLToTextarea : true
                });
            });
            
            /** 获取编辑器的内容 */
            function save() {
                var markdown = editor.getMarkdown();
                var HTML = editor.getHTML();                
                
                console.log(markdown);
                console.log(HTML);
                
                $.ajax({
                    url:"markdownDemo",
                    type:"post",
                    data:{
                        "markdown":markdown,
                        "HTML":HTML
                    },
                    success:function(data) {
                        alert(data);
                    }
                });
                
            }
            
        </script>
    </body>
</html>

编写 servlet 获取值

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {
        
        String markdown = request.getParameter("markdown");
        String HTML = request.getParameter("HTML");
        
        System.out.println(markdown);
        System.out.println(HTML);
        
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write("操作成功!");
        
}

初始化编辑器的值介绍

描述
width 编辑器的宽
height 编辑器的高
syncScrolling 同步滚动
path editor 中的 lib/ 目录
saveHTMLToTextarea 是否保存 HTML 数据

页面渲染 markdown 笔记

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8" />
        <title>HTML Preview(markdown to html) - Editor.md examples</title>
        <link rel="stylesheet" href="css/style.css" />
        <link rel="stylesheet" href="editor-md/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;
            }
        </style>
    </head>
    <body>
        <span id="id" class="id" ></span>
        <div id="layout">
            <div id="test-editormd-view2">
                <textarea id="append-test" style="display:none;"></textarea>          
            </div>
        </div>
        <script src="js/jquery-2.0.3.min.js"></script>
        <script src="editor-md/lib/marked.min.js"></script>
        <script src="editor-md/lib/prettify.min.js"></script>
        
        <script src="editor-md/lib/raphael.min.js"></script>
        <script src="editor-md/lib/underscore.min.js"></script>
        <script src="editor-md/lib/sequence-diagram.min.js"></script>
        <script src="editor-md/lib/flowchart.min.js"></script>
        <script src="editor-md/lib/jquery.flowchart.min.js"></script>

        <script src="editor-md/editormd.js"></script>
        <script type="text/javascript">
            $(function() {
                
                /**
                    1. 获取到数据 editor-md 源数据
                    2. 将返回的源数据添加到容器中[id:append-test]
                    3. 接着下面渲染视图
                    注意: ajax 可能需要同步请求
                */
                $.ajax({
                    type: "get", 
                    url: "markdown", 
                    data: {
                        "id": ${动态获取的数据库ID}
                    }, cache:false, async:false, 
                    success: function(result){
                        console.log(result);
                        $("#append-test").empty().append(result.putContext);
                    } 
                });
                
                var testEditormdView, testEditormdView2;
                
                $.get("editor-md/examples/test.md", function(markdown) {
                    
                    testEditormdView = editormd.markdownToHTML("test-editormd-view", {
                        markdown        : markdown ,//+ "\r\n" + $("#append-test").text(),
                        //htmlDecode      : true,       // 开启 HTML 标签解析,为了安全性,默认不开启
                        htmlDecode      : "style,script,iframe",  // you can filter tags decode
                        //toc             : false,
                        tocm            : true,    // Using [TOCM]
                        //tocContainer    : "#custom-toc-container", // 自定义 ToC 容器层
                        //gfm             : false,
                        //tocDropdown     : true,
                        // markdownSourceCode : true, // 是否保留 Markdown 源码,即是否删除保存源码的 Textarea 标签
                        emoji           : true,
                        taskList        : true,
                        tex             : true,  // 默认不解析
                        flowChart       : true,  // 默认不解析
                        sequenceDiagram : true,  // 默认不解析
                    });
                    
                    //console.log("返回一个 jQuery 实例 =>", testEditormdView);
                    
                    // 获取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>
目录
相关文章
|
6天前
|
关系型数据库 MySQL
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
|
2天前
|
安全 测试技术 PHP
掌握现代Web开发:PHP 8的新特性与最佳实践
【5月更文挑战第5天】 在当今快速发展的网络世界中,PHP作为一种流行的服务器端脚本语言,持续地演化着。最新的PHP 8版本引入了一系列令人兴奋的新特性和性能改进,为开发者提供了更加强大和灵活的工具。本文将深入探讨PHP 8中的新特性,包括联合类型、名称参数、匹配表达式等,并分享一些最佳实践,帮助开发者提高代码质量,优化性能,并确保安全性。通过这些实用技巧和示例,您将能够构建更高效、更安全的PHP应用程序。
|
7天前
|
开发框架 JavaScript 前端开发
【JavaScript 与 TypeScript 技术专栏】TypeScript 在 Web 开发中的前沿应用
【4月更文挑战第30天】TypeScript在Web开发中日益重要,以其强大的类型系统提升代码质量,支持组件化开发,与React、Vue、Angular等框架良好集成。在大型项目管理中,TypeScript助于代码组织和优化,提高团队协作效率。此外,它提升开发体验,提供智能提示和错误检测。众多成功案例证明其前沿应用,未来将在Web开发领域持续发挥关键作用。
|
8天前
|
前端开发 JavaScript 测试技术
【PHP开发专栏】PHP Web开发基础与流程
【4月更文挑战第29天】本文介绍了PHP Web开发的基础和流程,帮助初学者入门。内容包括Web服务器与PHP解释器的工作原理、HTML/CSS/JavaScript基础知识、PHP语法与数据库操作。开发流程涵盖项目规划、环境搭建、数据库设计、代码编写、测试与调试,以及部署与维护。此外,文中还强调了使用框架、代码组织、安全性及性能优化等进阶知识和最佳实践,旨在培养优秀PHP开发者。
|
8天前
|
前端开发 JavaScript 开发者
前端技术栈:探索现代Web开发的核心要素与代码实践
前端技术栈:探索现代Web开发的核心要素与代码实践
18 1
|
10天前
|
前端开发 数据管理 Ruby
blog-engine-10-middleman 静态站点生成器,利用了现代 Web 开发中的所有快捷方式和工具
这篇内容介绍了Middleman,一个基于Ruby的静态网站生成器。Middleman的特点包括静态网站生成、模板系统、前端技术支持、数据管理和简单的部署。安装步骤涉及安装Ruby和运行`gem install middleman`。使用方法包括在`source`目录编写内容,使用`middleman server`预览,`middleman build`构建网站,然后部署到服务器。Middleman的优势在于速度、灵活性和数据管理,但需要Ruby知识,且社区规模较小。适合熟悉Ruby并寻求强大建站工具的用户。
|
11天前
|
存储 缓存 JSON
【Web开发】会话管理与无 Cookie 环境下的实现策略
【Web开发】会话管理与无 Cookie 环境下的实现策略
|
13天前
|
Java Maven Kotlin
[AIGC] 请你写一遍博客介绍 “使用idea+kotinlin+springboot+maven 结合开发一个简单的接口“,输出markdown格式,用中文回答,请尽可能详细
[AIGC] 请你写一遍博客介绍 “使用idea+kotinlin+springboot+maven 结合开发一个简单的接口“,输出markdown格式,用中文回答,请尽可能详细
|
13天前
|
开发框架 前端开发 安全
Java从入门到精通:2.2.2学习使用Spring框架进行Web应用开发
Java从入门到精通:2.2.2学习使用Spring框架进行Web应用开发
|
13天前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式