V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
enda
V2EX  ›  PHP

Laravel5 Markdown 编辑器使用教程

  •  
  •   enda · 2015-05-22 15:48:49 +08:00 · 2413 次点击
    这是一个创建于 3268 天前的主题,其中的信息可能已经有所发展或是发生改变。

    laravel 5 Markdown 编辑器使用教程

    5月18号发布的这个扩展,好多朋友使用起来有一些问题,好吧,都怪我安装使用说明写的不清楚└(^o^)┘... 今天给大家补一篇详细的安装说明文档

    项目地址:https://github.com/yccphp/laravel-5-markdown-editor

    求star,求star,求star,求star,求star (此处省略一万字)

    功能

    1. 图片上传
    2. markdown 语法解析为 html
    3. markdown 编辑器该有的功能都有( 还有谁!还有谁!)

    预览

    <img src="http://www.phpcto.org/tmp/m1.jpg" width = "400" height = "200" align=center />

    <img src="http://www.phpcto.org/tmp/m2.jpg" width = "300" height = "200" align=center />

    安装

    1.在 composer.jsonrequire 里面加入以下内容

    "yuanchao/laravel-5-markdown-editor": "dev-master"
    

    2.添加完成后,执行 composer update

    composer update
    

    3.执行完这行命令,基本上就安装完啦,接下来打开 config/app.php 往里面加点东西

    // 往里面加入 `'YuanChao\Editor\EndaEditorServiceProvider'`
    
    'providers' => [
    
            ........
    
            'YuanChao\Editor\EndaEditorServiceProvider'
    
            ........
    
        ],
    
    // 往里面加入 `'EndaEditor' => 'YuanChao\Editor\Facade\EndaEditorFacade'`
    
    'aliases' => [
    
         ..........
    
        'EndaEditor' => 'YuanChao\Editor\Facade\EndaEditorFacade'
    
        ..........
    
        ],
    
    1. 加入以上配置以后,执行 php artisan vendor:publish --force
    // 加上 --force 覆盖配置文件
    php artisan vendor:publish --force
    

    执行上面这行命令以后,如果出现以下结果,说明你已经安装成功了

    Copied File [/vendor/edvinaskrucas/notification/src/config/notification.php] To [/config/notification.php]
    Copied Directory [/vendor/yuanchao/laravel-5-markdown-editor/src/config/views] To [/resources/views/vendor/editor]
    Copied Directory [/vendor/yuanchao/laravel-5-markdown-editor/src/config/editor] To [/public/plugin/editor]
    Copied File [/vendor/yuanchao/laravel-5-markdown-editor/src/config/editor.php] To [/config/editor.php]
    Publishing Complete!
    

    使用

    安装完以后,说下如何使用

    注意!你必须先引入 jquery 在引入头部文件之前

    在你的视图文件里面,需要使用编辑器的地方,先引入头部文件

    // 引入编辑器代码
    @include('editor::head')
    

    然后,比如我的 textarea 需要把他变成编辑器,这个时候,给你的 textarea 写上一个 id = myEditor

    如:<textarea id='myEditor'></textarea>

    同时,在你的 textarea 的父级标签,加上 class = editor,如果你的 textarea 是被 div 包住的,那么你就这样写

    // class = editor
    <div class="editor">
        <textarea id='myEditor'></textarea>
    </div>
    

    一定要给父级标签加上 class = editor,因为要计算编辑器的位置

    看了上面的例子,你应该明白,使用编辑器的两步就是

    1. 引入头文件
    2. 给你需要变成编辑器的标签加上 id='myEditor' 同时父级标签加上 class = editor

    图片上传使用

    我们已经内置了图片上传功能,你所需要做的,就是在适合的地方,插入代码而已

    1. 打开 config/editor.php 配置文件,我们可以看到里面有一项配置是 uploadUrl

    这个 uploadUrl ,指得是上传图片请求的地址,我们上传图片时,是通过 Ajax post 请求 控制器,控制器把图片上传,返回图片地址

    那么问题来了,编辑器怎么知道它要去请求哪个控制器呢?答案就是,你配置的 uploadUrl是哪个,它就请求哪个!

    举个例子:

    比如,我的 uploadUrl 配置成了 Home/upload ,那么当我上传图片的时候,它会 Ajax 请求 Home 控制器的 upload 方法对吧?这个时候 upload 方法里面,需要把图片上传,然后返回图片地址

    但是!我们的扩展里面已经集成了图片上传并返回编辑器所需要的数据了,所以在你的 upload 方法里面,直接调用扩展的方法就行啦!

    首先,在类头部,添加引用

    use EndaEditor;
    
    public function upload(){
    
            // path 为 public 下面目录,比如我的图片上传到 public/uploads 那么这个参数你传uploads 就行了
    
            $data = EndaEditor::uploadImgFile('path');
    
            return json_encode($data);
    
        }
    

    这个 upload 是专门用于编辑器图片上传的哦~

    好了,这个时候,你的图片上传已经 ok 了!

    markdown 转 html

    我们使用编辑器,把内容插入数据库后,展示给用户看的时候,总不能就输出 markdown 的语法吧~那用户也看不懂呀

    所以,你需要把 markdown 转成 html,这样游览器才会解析

    那么问题来了,如何转呢?我们的扩展已经集成了这个功能。我们来使用下

    1. 依旧是头部引入

    首先,在类头部,添加引用

    use EndaEditor;
    

    然后,调用我们的方法就行啦

    // 直接把需要转换的 markdown 做为参数传递进去
    
    $str = EndaEditor::MarkDecode("#我是markdown语法");
    
    echo $str;
    
    // 结果为
    
    <h1>我是markdown语法</h1>
    

    是不是很方便呀~

    Bug 反馈

    如果在使用中,发现了 bug 咋办?不会安装咋办?不会用咋办?

    请直接加QQ群:365969825

    最后在说一句

    项目地址:https://github.com/yccphp/laravel-5-markdown-editor

    求star,求star,求star,求star,求star (此处省略一万字)

    3 条回复    2015-05-25 09:16:36 +08:00
    blue7wings
        1
    blue7wings  
       2015-05-22 16:54:11 +08:00
    开源么?我以后想用在商业的项目上不知道可不可以呢?
    mingyun
        2
    mingyun  
       2015-05-24 09:33:17 +08:00
    已star,图片上传可以直接像微博一样粘贴上传吗
    enda
        3
    enda  
    OP
       2015-05-25 09:16:36 +08:00
    @mingyun 谢谢支持,目前不支持粘贴上传
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2295 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 09:00 · PVG 17:00 · LAX 02:00 · JFK 05:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.