当前位置:首页 > CMS教程 > Thinkphp > 列表

Thinkphp5框架中引入Markdown编辑器操作示例

发布:smiling 来源: PHP粉丝网  添加日期:2022-03-11 11:35:44 浏览: 评论:0 

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

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

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

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

demo

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4.   <meta charset="UTF-8"
  5.   <title>markdown测试</title> 
  6.   <link rel="stylesheet" href="/public/markdown/css/editormd.css" rel="external nofollow" /> 
  7.   <script src="__JS__/jquery.min.js"></script> 
  8.   <script src="/public/markdown/editormd.js"></script> 
  9. </head> 
  10. <body> 
  11.   <form action="{:url('test')}" enctype="multipart/form-data" method='post'
  12.     <div id="content-editormd" class="form-group"
  13.       <textarea style="display:none;" class="form-control" id="content-editormd-markdown-doc" name="content-editormd-markdown-doc"></textarea> 
  14.     </div> 
  15.     <button>提交</button> 
  16.   </form> 
  17. <script type="text/javascript"
  18.   $(function() { 
  19.     editormd("content-editormd", { 
  20.       placeholder : '编辑你的内容...'
  21.       width  : "100%"
  22.       height : 1000, 
  23.       syncScrolling : "single"
  24.       path  : "/public/markdown/lib/"
  25.       watch  : true, 
  26.       previewTheme : "white",//预览 
  27.       theme : 'white',//工具栏 
  28.       saveHTMLToTextarea : true, // 保存HTML到Textarea 
  29.       // 图片上传 
  30.       imageUpload : true, 
  31.       imageFormats: ["jpg","jpeg","gif","png","bmp","webp"], 
  32.       imageUploadURL: "/api/Upload/markdownUpload"
  33.         toolbarIcons : function() { //自定义工具栏,后面有详细介绍 
  34.      return editormd.toolbarModes['full']; // full, simple, mini 
  35.    }, 
  36.     }); 
  37.   }); 
  38. //上传 
  39. /* 
  40. { 
  41.   success : 0 | 1,      // 0 表示上传失败,1 表示上传成功 
  42.   message : "提示的信息,上传成功或上传失败及错误信息等。", 
  43.   url   : "图片地址"    // 上传成功时才返回 
  44. } 
  45. */ 
  46. </script> 
  47. </body> 
  48. </html> 

上传图片

  1. public function markdownUpload(){ 
  2.   $config = [ 
  3.     'size' => 2097152, 
  4.     'ext' => 'jpg,gif,png,bmp' 
  5.   ]; 
  6.  
  7.   $file = $this->request->file('editormd-image-file'); 
  8.   $upload_path = str_replace('\\', '/', ROOT_PATH . 'public/uploads'); 
  9.   $save_path  = '/uploads/'
  10.   $info    = $file->validate($config)->move($upload_path); 
  11.   if ($info) { 
  12.     $result = [ 
  13.       'success' => 1, 
  14.       'message' => '上传成功'
  15.       'url'  => str_replace('\\', '/', '/public/'.$save_path . $info->getSaveName()) 
  16.     ]; 
  17.   } else { 
  18.     $result = [ 
  19.       'success'  => 0, 
  20.       'message' => $file->getError(), 
  21.       'url'  => str_replace('\\', '/', '/public/'.$save_path . $info->getSaveName()) 
  22.     ]; 
  23.   } 
  24.   return json($result); 

3.页面加载markdown格式内容

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4.  <meta charset="UTF-8"
  5.  <title>页面加载markdown格式内容</title> 
  6.  <link href="/public/markdown/css/editormd.min.css" rel="external nofollow" rel="external nofollow" rel="stylesheet" /> 
  7.  <script src="__JS__/jquery.min.js"></script> 
  8.  <script src="/public/markdown/lib/marked.min.js"></script> 
  9.  <script src="/public/markdown/lib/prettify.min.js"></script> 
  10.  <script src="/public/markdown/lib/raphael.min.js"></script> 
  11.  <script src="/public/markdown/lib/underscore.min.js"></script> 
  12.  <script src="/public/markdown/lib/sequence-diagram.min.js"></script> 
  13.  <script src="/public/markdown/lib/flowchart.min.js"></script> 
  14.  <script src="/public/markdown/lib/jquery.flowchart.min.js"></script> 
  15.  <script src="/public/markdown/editormd.js"></script> 
  16. </head> 
  17. <body> 
  18.  <div id="doc-content"
  19.  <textarea style="display:none;"
  20. ```php 
  21.  &lt;?php 
  22.    
  23.  echo 1; 
  24.  ?&gt; 
  25. ``` 
  26. </textarea> 
  27. </div> 
  28.    
  29. <script type="text/javascript"
  30.   var testEditor; 
  31.   $(function () { 
  32.     testEditor = editormd.markdownToHTML("doc-content", {//注意:这里是上面div的id 
  33.       htmlDecode: "style,script,iframe"
  34.       emoji: true, 
  35.       taskList: true, 
  36.       tocm: true, 
  37.       tex: true, // 默认不解析 
  38.       flowChart: true, // 默认不解析 
  39.       sequenceDiagram: true, // 默认不解析 
  40.       codeFold: true 
  41.     });}); 
  42.    
  43. </script> 
  44. </body> 
  45. </html> 

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

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4.  <meta charset="UTF-8"
  5.  <title>前端显示</title> 
  6.  <link href="/public/markdown/css/editormd.min.css" rel="external nofollow" rel="external nofollow" rel="stylesheet" /> 
  7.  <script src="__JS__/jquery.min.js"></script> 
  8.  <script src="/public/markdown/lib/marked.min.js"></script> 
  9.  <script src="/public/markdown/lib/prettify.min.js"></script> 
  10.  <script src="/public/markdown/editormd.min.js"></script> 
  11.    
  12. </head> 
  13. <body> 
  14.  <div id="doc-content"
  15.  {:htmlspecialchars_decode($data)} 
  16.  </div> 
  17. <script type="text/javascript"
  18.   $(function () { 
  19.     editormd.markdownToHTML("doc-content"); 
  20.   }) 
  21. </script> 
  22. </body> 
  23. </html>

Tags: Thinkphp5编辑器 Markdown

分享到: