datomatic/nova-markdown-tui

一个用于通过ToastUI编辑器管理markdown字段的Laravel Nova字段。

v1.2.1 2023-11-17 15:35 UTC

This package is auto-updated.

Last update: 2024-09-17 17:20:07 UTC


README

Latest Version on Packagist Software License Total Downloads

一个基于Toast UI Editor的markdown编辑器字段,具有自动主题切换功能,适用于Laravel Nova。

Nova Markdown Toast UI Screenshot Light Nova Markdown Toast UI Screenshot Dark

内容

安装

您可以通过composer安装此包

composer require datomatic/nova-markdown-tui

该包将自动注册自己。

您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="Datomatic\NovaMarkdownTui\FieldServiceProvider" --tag="config"

用法

您可以在Nova资源中使用Datomatic\NovaMarkdownTui\ToastUiEditor字段

<?php

namespace App\Nova;

use Datomatic\NovaMarkdownTui\MarkdownTui;
use Illuminate\Http\Request;

class BlogPost extends Resource
{
    // ...

    public function fields(Request $request)
    {
        return [
            // ...

            MarkdownTui::make('Content'),

            // ...
        ];
    }

}

配置

您可以使用以下字段方法配置底层的Toast UI Editor实例。请参考Toast UI - Vue Editor文档。

您还可以在配置文件中配置默认值。

initialEditType

initialEditType(\Datomatic\NovaMarkdownTui\Enums\EditorType::MARKDOWN)

options

minHeight(string $minHeight)

language(string $language)

useCommandShortcut(bool $useCommandShortcut = true)

hideModeSwitch(bool $hideModeSwitch = true)

toolbarItems(array $toolbarItems)

plugins

plugins(array $plugins)

允许的值有

  • chart
  • uml
  • colorSyntax
  • codeSyntaxHighlight
  • tableMergedCell

height

height(string $height)

previewStyle

previewStyleVertical()

previewStyleTab()

允许在markdown/html中嵌入iframe

allowIframe(bool $allowIframe = true)

媒体上传

您可以选择从编辑器直接启用媒体上传。文件块将被发送到您选择的端点(可能带有一些您可以选择的额外头部,以提高安全性)。

要实现这一点,您必须将配置设置在config/nova-markdown-tui.php

'mediaUploadUrl' => '/api/nova-markdown-tui/upload', // put your endpoint, or null to disable upload
'mediaUploadHeaders' => [
    'X-Secret-Key' => 'super-secret-token', // if you prefer to protect the endpoint
],

这样,您可以按自己的意愿存储文件:本地存储、远程服务、...

文件将以POST请求的形式发送,Content-Type为multipart/form-data,文件位于请求体中的file字段。端点应以状态200响应,并返回以下结构的JSON体

{
  "url": "https://datomatic.io/files/image.jpg",
  "alt": "Optional, alt text"
}

如果提供了alt,则将覆盖用户在编辑器中输入的“描述”字段。如果您想使用用户提示的内容,请将其留空。

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

安全

如果您发现任何与安全相关的问题,请通过roberto@datomatic.io发送电子邮件,而不是使用问题跟踪器。

贡献

有关详细信息,请参阅CONTRIBUTING

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件