datomatic / nova-markdown-tui
一个用于通过ToastUI编辑器管理markdown字段的Laravel Nova字段。
Requires
- php: >=8.1
- laravel/nova: ^4.1
- nova-kit/nova-packages-tool: ^1.0.1
README
一个基于Toast UI Editor的markdown编辑器字段,具有自动主题切换功能,适用于Laravel Nova。
内容
安装
您可以通过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)。有关更多信息,请参阅许可证文件。