• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Thinkphp5框架中引入Markdown编辑器操作示例
    POST TIME:2021-10-18 03:43

    本文实例讲述了Thinkphp5框架中引入Markdown编辑器操作。分享给大家供大家参考,具体如下:

    编辑器下载地址以及演示:https://pandao.github.io/editor.md/

    1.把下载的项目放在public目录下

    2.页面中引入jquery.js,editormd.js,editormd.css

    demo

    !DOCTYPE html>
    html lang="en">
    head>
      meta charset="UTF-8">
      title>markdown测试/title>
      link rel="stylesheet" href="/public/markdown/css/editormd.css" rel="external nofollow" />
      script src="__JS__/jquery.min.js">/script>
      script src="/public/markdown/editormd.js">/script>
    /head>
    body>
      form action="{:url('test')}" enctype="multipart/form-data" method='post'>
        div id="content-editormd" class="form-group">
          textarea style="display:none;" class="form-control" id="content-editormd-markdown-doc" name="content-editormd-markdown-doc">/textarea>
        /div>
        button>提交/button>
      /form>
    script type="text/javascript">
      $(function() {
        editormd("content-editormd", {
          placeholder : '编辑你的内容...',
          width  : "100%",
          height : 1000,
          syncScrolling : "single",
          path  : "/public/markdown/lib/",
          watch  : true,
          previewTheme : "white",//预览
          theme : 'white',//工具栏
          saveHTMLToTextarea : true, // 保存HTML到Textarea
          // 图片上传
          imageUpload : true,
          imageFormats: ["jpg","jpeg","gif","png","bmp","webp"],
          imageUploadURL: "/api/Upload/markdownUpload",
            toolbarIcons : function() { //自定义工具栏,后面有详细介绍
         return editormd.toolbarModes['full']; // full, simple, mini
       },
        });
      });
    //上传
    /*
    {
      success : 0 | 1,      // 0 表示上传失败,1 表示上传成功
      message : "提示的信息,上传成功或上传失败及错误信息等。",
      url   : "图片地址"    // 上传成功时才返回
    }
    */
    /script>
    /body>
    /html>
    
    

    上传图片

      public function markdownUpload(){
        $config = [
          'size' => 2097152,
          'ext' => 'jpg,gif,png,bmp'
        ];
     
        $file = $this->request->file('editormd-image-file');
        $upload_path = str_replace('\\', '/', ROOT_PATH . 'public/uploads');
        $save_path  = '/uploads/';
        $info    = $file->validate($config)->move($upload_path);
        if ($info) {
          $result = [
            'success' => 1,
            'message' => '上传成功',
            'url'  => str_replace('\\', '/', '/public/'.$save_path . $info->getSaveName())
          ];
        } else {
          $result = [
            'success'  => 0,
            'message' => $file->getError(),
            'url'  => str_replace('\\', '/', '/public/'.$save_path . $info->getSaveName())
          ];
        }
        return json($result);
      }
    

    3.页面加载markdown格式内容

    !DOCTYPE html>
    html lang="en">
    head>
     meta charset="UTF-8">
     title>页面加载markdown格式内容/title>
     link href="/public/markdown/css/editormd.min.css" rel="external nofollow" rel="external nofollow" rel="stylesheet" />
     script src="__JS__/jquery.min.js">/script>
     script src="/public/markdown/lib/marked.min.js">/script>
     script src="/public/markdown/lib/prettify.min.js">/script>
     script src="/public/markdown/lib/raphael.min.js">/script>
     script src="/public/markdown/lib/underscore.min.js">/script>
     script src="/public/markdown/lib/sequence-diagram.min.js">/script>
     script src="/public/markdown/lib/flowchart.min.js">/script>
     script src="/public/markdown/lib/jquery.flowchart.min.js">/script>
     script src="/public/markdown/editormd.js">/script>
    /head>
    body>
     div id="doc-content">
     textarea style="display:none;">
    ```php
     lt;?php
     
     echo 1;
     ?gt;
    ```
    /textarea>
    /div>
     
    script type="text/javascript">
      var testEditor;
      $(function () {
        testEditor = editormd.markdownToHTML("doc-content", {//注意:这里是上面div的id
          htmlDecode: "style,script,iframe",
          emoji: true,
          taskList: true,
          tocm: true,
          tex: true, // 默认不解析
          flowChart: true, // 默认不解析
          sequenceDiagram: true, // 默认不解析
          codeFold: true
        });});
     
    /script>
    /body>
    /html>
    
    

    4.直接展示html格式的内容

    !DOCTYPE html>
    html lang="en">
    head>
     meta charset="UTF-8">
     title>前端显示/title>
     link href="/public/markdown/css/editormd.min.css" rel="external nofollow" rel="external nofollow" rel="stylesheet" />
     script src="__JS__/jquery.min.js">/script>
     script src="/public/markdown/lib/marked.min.js">/script>
     script src="/public/markdown/lib/prettify.min.js">/script>
     script src="/public/markdown/editormd.min.js">/script>
     
    /head>
    body>
     div id="doc-content">
     {:htmlspecialchars_decode($data)}
     /div>
    script type="text/javascript">
      $(function () {
        editormd.markdownToHTML("doc-content");
      })
    /script>
    /body>
    /html>
    
    

    更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

    希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • 详解Docker 下开发 hyperf 完整使用示例
    • PhpStorm 如何优雅的调试Hyperf的方法步骤
    • php框架知识点的整理和补充
    • php中Workerman框架实例讲解
    • 浅谈php常用的7大框架的优缺点
    • php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
    • ThinkPHP5框架中使用JWT的方法示例
    • Thinkphp5框架异常处理操作实例分析
    • 浅谈减少Hyperf框架的扫描时间
    上一篇:PHP数组基本用法与知识点总结
    下一篇:Thinkphp5框架异常处理操作实例分析
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信