ardenthq / nova-enhanced-markdown
Nova的Markdown字段,支持图片上传
2.2.2
2023-11-16 16:41 UTC
Requires
- php: ^8.0
- laravel/framework: ^9.0|^10.0
- spatie/image: ^2.2
- spatie/image-optimizer: ^1.6
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.11
- laravel/nova: ~4.21.0
- orchestra/testbench: ^7.9
- pestphp/pest: ^1.22
- phpstan/phpstan: ^1.8
- rector/rector: ^0.14
README
为Nova创建的Markdown字段,支持图片上传
特性
- 适用于Laravel Nova ^4.0
- 图片上传
- 支持拖放/复制粘贴
安装
composer require ardenthq/nova-enhanced-markdown
使用
- 将
EnhancedMarkdown
字段添加到您的Nova资源中。
<?php namespace App\Nova; use Laravel\Nova\Http\Requests\NovaRequest; use Laravel\Nova\Resource; use Ardenthq\EnhancedMarkdown\EnhancedMarkdown; final class ResourceName extends Resource { // .... public function fields(NovaRequest $request) { return [ // .... EnhancedMarkdown::make('body'), // ... ]; } // ... }
- 默认情况下,此包仅验证附件为实际文件。如果您需要更多规则(例如,您只想接受图片),请使用新的
attachmentRules
方法定义规则。
EnhancedMarkdown::make('Content', 'content') ->attachmentRules('dimensions:min_width=20,min_height:20', 'image'),
- 在某些情况下,您可能希望在存储之前解析文件(例如,应用一些优化)。为此,您可以使用
parseFile
方法添加回调。
EnhancedMarkdown::make('Content', 'content') ->parseFile(function (EnhancedMarkdown $field, UploadedFile $file) { $image = \Spatie\Image\Image::load($file->getPathname()); $image->fit(\Spatie\Image\Manipulations::FIT_MAX, 100, 100); $image->save(); });
如果需要,您还可以返回文件的新实例,该实例将用于存储。
重要:您需要返回Illuminate\Http\UploadedFile
、Illuminate\Http\File
或string
的实例。
EnhancedMarkdown::make('Content', 'content') ->parseFile(function (EnhancedMarkdown $field, UploadedFile $file) { return new File('some/path'); });
- 默认情况下,文件以
/
作为路径,使用public
存储磁盘存储。您可以使用disk
和path
方法更改路径和存储磁盘。
EnhancedMarkdown::make('Content', 'content') ->disk('s3') ->path('articles')
开发
- 运行
yarn nova:install
和yarn install
以安装编译视图组件所需的所有必要依赖项。 - 在本地环境中修改组件时,运行
yarn run dev
(或yarn run watch
)。 - 如果您更改了vue组件,请确保在提交PR之前进行生产编译。
编译生产版本
- 运行
yarn nova:install
和yarn install
以安装编译视图组件所需的所有必要依赖项。 - 运行
yarn run production
。
使用phpstan
分析代码
composer analyse
使用php rector
重构代码
composer refactor
使用php-cs-fixer
格式化代码
composer format
运行测试
composer test
安全性
如果您在此包中发现安全漏洞,请发送电子邮件至security@ardenthq.com。所有安全漏洞都将得到及时处理。
致谢
此项目得益于所有贡献者。