noisywinds/laravel-smartmd

一个 Laravel Markdown 编辑器

v1.0.2 2019-02-22 06:25 UTC

This package is auto-updated.

Last update: 2024-09-22 19:13:50 UTC


README

英文文档 | 中文文档

Software License Software License packagist

一个兼容大多数 Markdown 解析的简单 Markdown 编辑器,您可以在服务器或客户端选择任何解析方法,例如数学公式、流程图、上传图片等。这是一个适用于 Laravel 5.4 和 PHP 7.1 及以上版本的插件。更多功能正在开发中...

屏幕截图

编辑器演示: 演示
JavaScript 渲染页面 演示
PHP 渲染页面 演示

参考

要求

  • PHP >= 7.1.0
  • Laravel >= 5.4.0

安装

首先,安装包。

composer require noisywinds/laravel-smartmd

然后运行以下命令以发布资源和配置:

php artisan vendor:publish --provider="NoisyWinds\Smartmd\SmartmdServiceProvider"

make test view router

Route::group(['namespace' => 'Smartmd', 'prefix' => 'editor'], function () {
    Route::post('/upload', 'UploadController@imSave');
    Route::get('/write', function () {
        return view('vendor/smartmd/write');
    });
    Route::get('/php-show','ParseController@index');
    Route::get('/js-show',function(){
        return view('vendor/smartmd/js-show');
    });
});

重写 UploadController 或 config/smartmd.php 以更改上传路径

<?php
return [
    "image" => [
        /*
         * like filesystem, Where do you like to place pictures?
         */
        "root" => storage_path('app/public/images'),
        /*
         * return public image path
         */
        "url" => env('APP_URL').'/storage/images',
    ],
];
  • 注意:上传的图片将在 UploadController 中优化和调整大小

一些简码

  1. 粗体 (Ctrl + b)
  2. 斜体 (Ctrl + I)
  3. 插入图片 (Ctrl + Alt + I)
  4. 插入数学公式 (Ctrl + m)
  5. 插入流程图 (Ctrl + Alt + m)
  6. 更多... (mac 命令与 Ctrl 相同)

编辑器选项

new Smartmd({
   // editor element {string} 
   el: "#editor",
   
   // editor wrapper layout {string or number}
   height: "400px",
   width: "100%",
   
   // autosave 
   autoSave: {
     // uuid is required {string or number}
     uuid: 1,
     // {number}
     delay: 5000
   },
   
   // init state {boolean}
   isFullScreen: true, // default false
   isPreviewActive: true // default false
});

解析 Markdown

我不需要编辑器

// require in your view meta
@include('Smartmd::js-parse')
<script>
    // create Parsemd object use javascript parse markdown
    var parse = new Parsemd();
    var html = parse.render(document.getElementById("editor").value.replace(/^\s+|\s+$/g, ''));
    document.getElementById("content").innerHTML = html;
</script>

我需要编辑器

<script>
    var smartmd = new Smartmd();
    smartmd.markdown("# hello world");
</script>

我想要 PHP 渲染

  • 仅使用 JavaScript 渲染公式、流程图、代码高亮
// require in your view meta
@include('Smartmd::php-parse')

ParseController.php

use NoisyWinds\Smartmd\Markdown;

$parse = new Markdown();
$text = "# Your markdown text";
$html = $parse->text($text);
return view('Smartmd::php-show',['content'=>$html]);

如何扩展

编辑器

Markdown 渲染

  • markdown-it (Markdown 渲染) 链接

问题

欢迎提问或想要兼容的功能。