paulvl / nv-mrkdwn
Laravel Nova Markdown 字段。
Requires
- php: >=7.4
- illuminate/support: ^8.13
- spatie/image: ^1.4.0
This package is auto-updated.
Last update: 2024-09-04 14:49:08 UTC
README
Nova Markdown
为 Laravel Nova 添加 Markdown 编辑器字段。基于 easymde,Nova Markdown 支持高亮、一些有用的按钮和内联图片上传。它简单、可配置,并且只需按一下即可使用™。
安装说明
使用 composer 需要 dinandmentink/nova-markdown
composer require dinandmentink/nova-markdown
该包将使用 Laravel 的包自动发现机制注册自己。现在,无论何时想要使用 Markdown 字段,都可以使用 Markdown::make
,就像你预期在 Nova 资源的 fields()
方法中那样。
use DinandMentink\Markdown\Markdown; public function fields(Request $request) { return [ Markdown::make("Field Name"), ]; }
它将接受所有默认的 Nova 选项
use DinandMentink\Markdown\Markdown; public function fields(Request $request) { return [ Markdown::make("Content")->rules('required')->hideFromIndex(), ]; }
图片上传
Nova Markdown 支持内联图片上传。要上传图片,您可以将它拖放到 Markdown 编辑器中。或者,粘贴剪贴板中的图片也可以。
图片上传默认对所有 Markdown
字段启用。它可以通过配置完全禁用,或者默认禁用。图片上传可以在每个字段的基础上启用或禁用,但这只会切换前端图片上传的实现。
use DinandMentink\Markdown\Markdown; public function fields(Request $request) { return [ Markdown::make("Field With Uploads")->uploads(), Markdown::make("Field Without Uploads")->uploads(false), ]; }
图片上传应该只需按一下即可使用™。Nova Markdown 旨在支持在纯 Laravel + Nova 项目上的图片上传。以下假设必须满足。这些假设中的大部分都可以通过配置覆盖。
- 假设在
filesystems.php
中配置了名为public
的磁盘。 - Nova Markdown 使用 spatie/image 来压缩和调整图片大小。图片需要启用 php 的 exif 扩展。
- Nova Markdown 在
nova.middleware
中配置的相同中间件中注册了一个路由和一个控制器。这假设可以访问 Nova 的认证用户也可以通过 Nova Markdown 的图片上传路由上传图片。
配置
配置主要处理图片上传。提供了合理的默认值,但 Nova Markdown 旨在完全通过 config/nova-markdown.php
或环境变量进行配置。
有关所有配置选项,请参阅默认配置,该配置可以发布
php artisan vendor:publish --provider="DinandMentink\Markdown\FieldServiceProvider"
这将创建一个 config/nova-markdown.php
文件,您可以对其进行修改以设置您的配置。请确保您检查了此包中原始配置文件之间的更改。以下是一些最有用的配置项。
启用上传
配置键: uploads
ENV: NOVA_MARKDOWN_UPLOADS
默认: true
将此设置为 false
将完全禁用图片上传。
默认启用上传
配置键: uploads-default-enabled
ENV: NOVA_MARKDOWN_UPLOADS_DEFAULT_ENABLED
默认: true
将默认启用上传(按字段启用)。如果完全禁用上传则没有效果。
设置磁盘
配置键: disk
ENV: NOVA_MARKDOWN_DISK
默认: public
设置上传存储的磁盘。必须在 filesystems.php
中配置。
目录
配置键: directory
ENV: NOVA_MARKDOWN_DIRECTORY
默认: uploads
设置图片上传的目录。或者,可以配置一个函数,该函数接受上传的用户作为参数,并可以用于按用户分组文件。示例
function($user) { return "uploads/" . \Str::slug($user->name); }
最大上传大小
配置键:max-size
环境变量:NOVA_MARKDOWN_MAX_SIZE
默认:8 * 1024
上传图片的最大大小(千字节)。
最大上传大小
配置键:max-width
环境变量:NOVA_MARKDOWN_MAX_WIDTH
默认:1920
上传图片的最大宽度(像素)。上传的图片将被缩放到这个宽度。使用null禁用图片缩放。
图片质量
配置键:quality
环境变量:NOVA_MARKDOWN_QUALITY
默认:85
上传的图片将被转换为这个质量。整数介于0和100之间。使用null禁用质量调整。
随机文件名
配置键:random_filename
环境变量:NOVA_MARKDOWN_RANDOM_FILENAME
默认:false
默认情况下,上传的图片将使用其原始文件名的slug版本存储。您可以将其设置为true以使用随机文件名。
安全
如果您发现任何与安全相关的问题,请通过电子邮件dinand@dcreative.nl联系,而不是使用问题跟踪器。
致谢
本项目由Dcreative自豪地创建和维护。Dcreative是一家位于荷兰的小型网络开发公司。
我从PHP、Laravel和其他无数开源项目中受益良多。Nova Markdown是我的一点小贡献。Nova Markdown对您有用吗?请随意给我发送感谢信或捐赠一杯啤酒。无论如何,我很高兴提供Nova Markdown。
贡献者
- Dinand Mentink
- 第一个版本基于@palauaandsons
渲染Markdown
Nova Markdown将为Nova添加一个markdown编辑器字段。它不会在Nova之外渲染Markdown。对于在Laravel视图中渲染Markdown,我建议查看Laravel Markdown或commonmark。
Nova自带的Markdown差异
当然,Nova提供自己的markdown字段。Nova的官方Markdown和这个Nova Markdown类似。两者都提供Markdown文本的行内文本高亮。它们都不会对输入进行转换,而是将其作为纯文本存储,通常在TEXT列中。
然而,此包将添加一些默认Markdown字段中未包含的更多高亮和工具栏按钮。但主要是,Nova Markdown处理图片上传。
待办事项
- 编写测试