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实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
关于php连接mssql:pdo odbc sql server
Jul 20 PHP
php UBB 解析实现代码
Nov 27 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
Jun 20 PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 PHP
PHP中$this和$that指针使用实例
Jan 06 PHP
php获得网站访问统计信息类Compete API用法实例
Apr 02 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 PHP
PHP反射机制原理与用法详解
Feb 15 PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 27 PHP
ThinkPHP 3使用OSS的方法
Jul 19 PHP
php面向对象程序设计中self与static的区别分析
May 21 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
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
推荐几个开源的微信开发项目
2014/12/28 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
PHP7.1新功能之Nullable Type用法分析
2016/09/26 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
javascript 简练的几个函数
2009/08/29 Javascript
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
基于jQuery实现响应式圆形图片轮播特效
2015/11/25 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
jQuery中值得注意的trigger方法浅析
2016/12/12 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
2020/09/04 Javascript
python获取当前计算机cpu数量的方法
2015/04/18 Python
用Python进行简单图像识别(验证码)
2018/01/19 Python
对pandas中两种数据类型Series和DataFrame的区别详解
2018/11/12 Python
Python实现井字棋小游戏
2020/03/09 Python
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
写自荐信的七个技巧
2013/10/15 职场文书
水利水电专业自荐信
2014/07/08 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
2014年环保工作总结
2014/11/26 职场文书
欢迎词范文
2015/01/27 职场文书
给老婆的检讨书
2015/01/27 职场文书
教学质量月活动总结
2015/05/11 职场文书
初中班长竞选稿
2015/11/20 职场文书
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA