dinandmentink/nova-markdown

此包已被废弃且不再维护。未建议替代包。

Laravel Nova Markdown 字段。

v5.0.2 2024-03-01 08:13 UTC

README

此项目已废弃。Laravel v10 是此包支持的最新版本。

此项目现在已过时,将不再维护。请注意,laravel nova 内置的 markdown 字段 现在支持文件附件。

如果您想维护此项目的继承者,请进行分支并联系我,以便我可以推荐它。

自从 Laravel Nova 在 v4.0 版本中改为年度费用以来,我已经寻找了优秀的替代方案。我决定将所有个人项目和客户迁移到 filament

❤️ 从 2019 年开始,我很高兴维护这个项目。感谢拉取请求、建议和其他帮助。感谢使用此包。

备注。我对 Laravel Nova 转向年度许可证有点生气。这迫使我作为一个单人代理商,要么放弃更新,要么为大约 30 个客户每年付费。由于它的许可证,Laravel Nova 的多租户产品变得完全不可使用。我强烈建议检查 filament 作为开源替代方案。

Nova Markdown

Latest Version on Packagist Total Downloads Forks Stars MIT license

将 markdown 编辑器字段添加到 Laravel Nova。基于 easymde,Nova Markdown 支持高亮显示、一些有用的按钮和内联图片上传。它简单、可配置,并且工作正常™。

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 使用 nova-packages-tool 提供版本化的 laravel-nova 混合。请确保您的 composer 的 script.post-update-cmd 中有 @php artisan nova:publish,以 保持 nova 的资产更新

版本控制

Nova Markdown 使用 语义版本控制,并旨在始终支持最新的主要 Laravel 和 Laravel Nova 版本。

只有 Nova Markdown 的最新主要版本将接收更新,建议在 Laravel 或 Laravel Nova 发布新主要版本时升级到 Nova Markdown 的最新版本。

Nova Markdown Laravel Laravel Nova 维护
v5.x v10.x v4.x 功能、安全、错误
v4.x v9.x v4.x 安全
v3.x v9.x v3.x
v2.x v8.x v3.x

图片上传

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 项目中上传图片。以下假设必须满足。大多数这些假设都可以通过配置文件覆盖。

  • 假设有一个名为 public 的磁盘已在 filesystems.php 中配置。
  • 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
环境变量:NOVA_MARKDOWN_UPLOADS
默认值:true

将此设置为 false 将完全禁用图片上传。

默认启用上传

配置键:uploads-default-enabled
环境变量:NOVA_MARKDOWN_UPLOADS_DEFAULT_ENABLED
默认值:true

将默认启用上传(按字段逐个启用)。当完全禁用上传时,没有效果。

设置磁盘

配置键:disk
环境变量:NOVA_MARKDOWN_DISK
默认值:public

设置上传存储的磁盘。必须在 filesystems.php 中配置。请注意,Nova Markdown 默认以 公开可见 的方式存储文件。这可能覆盖了磁盘的默认私有设置('visibility' => 'private'),逐个文件进行。

文件可见性

配置键:file-visibility
环境变量:NOVA_MARKDOWN_FILE_VISIBILITY
默认值:public

上传的文件将在上传后获得此可见性。更改为 'private' 以将文件设置为不可公开查看,或更改为 null 以使用磁盘的默认值。请注意,将文件上传为 private 可能阻止访客查看它们,您可能需要引入其他显示文件的方法。

目录

配置键:directory
环境变量:NOVA_MARKDOWN_DIRECTORY
默认值:uploads

设置图片上传的目录。或者,可以配置一个函数,该函数接受上传的 $user 作为参数,并可用于按用户分组文件。示例

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@elementon.nl联系我们,而不是使用问题跟踪器。

Markdown渲染

Nova Markdown将为Nova添加一个Markdown编辑器字段。它不在Nova外部渲染Markdown。对于在Laravel视图中渲染Markdown,我建议您查看Laravel Markdowncommonmark

与Nova自带的Markdown的差异

Nova当然提供了它自己的Markdown字段。Nova的官方Markdown和此Nova Markdown相似。它们都提供Markdown文本的行内文本突出显示。它们都不会对输入进行转换,只是将其存储为纯文本,通常在TEXT列中。

然而,这个包将添加一些默认Markdown字段中未包含的更多突出显示和工具栏按钮。但主要的是,Nova Markdown处理图片上传

功能 默认Markdown Nova Markdown
粗体 斜体 斜体
下划线 斜体 斜体
外部图片 斜体 斜体
链接 斜体 斜体
预览 斜体 斜体
行内图片上传 - 斜体
标题 - 斜体
引用块 - 斜体
有序列表 - 斜体
无序列表 - 斜体
并排查看 - 斜体

致谢

自2019年以来,该项目由Elementon自豪地创建和维护。Elementon是荷兰的一家小型网站开发公司。

在Laravel Nova将其许可更改为年度费用后,Elementon决定将filament作为管理面板进行切换,因此不再积极维护此项目。