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


Posted in PHP onJune 03, 2020

本文实例讲述了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
 <?php
 
 echo 1;
 ?>
```
</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框架的PHP程序设计有所帮助。

PHP 相关文章推荐
简单的用PHP编写的导航条程序
Oct 09 PHP
php下过滤HTML代码的函数
Dec 10 PHP
php递归实现无限分类生成下拉列表的函数
Aug 08 PHP
利用php绘制饼状图的实现代码
Jun 07 PHP
解决file_get_contents无法请求https连接的方法
Dec 17 PHP
PHP中怎样防止SQL注入分析
Oct 23 PHP
php延迟静态绑定实例分析
Feb 08 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
Mar 04 PHP
php里array_work用法实例分析
Jul 13 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
Jul 07 PHP
PHP函数按引用传递参数及函数可选参数用法示例
Jun 04 PHP
php微信小程序解包过程实例详解
Mar 31 PHP
PHP数组基本用法与知识点总结
Jun 02 #PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
Jun 02 #PHP
PHP与Web页面交互操作实例分析
Jun 02 #PHP
PHP Web表单生成器案例分析
Jun 02 #PHP
一文看懂PHP进程管理器php-fpm
Jun 01 #PHP
PHP论坛实现积分系统的思路代码详解
Jun 01 #PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 #PHP
You might like
phpmyadmin的#1251问题
2006/11/25 PHP
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
如何快速的呈现我们的网页的技巧整理
2007/07/01 Javascript
javascript jQuery插件练习
2008/12/24 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
jquery实现图片随机排列的方法
2015/05/04 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
2016/05/30 Javascript
JS实现的表格行上下移动操作示例
2016/08/03 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
Node.js的特点详解
2017/02/03 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
新秀丽拉杆箱美国官方网站:Samsonite美国
2016/07/25 全球购物
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
计算机科学与技术应届生求职信
2013/11/07 职场文书
户籍证明格式
2014/09/15 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书
Nginx快速入门教程
2021/03/31 Servers
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS
element多个表单校验的实现
2021/05/27 Javascript
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技