paulvl/nv-mrkdwn

Laravel Nova Markdown 字段。

v1.0 2021-03-04 06:57 UTC

This package is auto-updated.

Last update: 2024-09-04 14:49:08 UTC


README

Nova Markdown

Nova Markdown

Latest Version on Packagist Total Downloads Forks Stars MIT license Donate

为 Laravel Nova 添加 Markdown 编辑器字段。基于 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 支持内联图片上传。要上传图片,您可以将它拖放到 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 Open Source

本项目由Dcreative自豪地创建和维护。Dcreative是一家位于荷兰的小型网络开发公司。

我从PHP、Laravel和其他无数开源项目中受益良多。Nova Markdown是我的一点小贡献。Nova Markdown对您有用吗?请随意给我发送感谢信捐赠一杯啤酒。无论如何,我很高兴提供Nova Markdown。

贡献者

渲染Markdown

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

Nova自带的Markdown差异

当然,Nova提供自己的markdown字段。Nova的官方Markdown和这个Nova Markdown类似。两者都提供Markdown文本的行内文本高亮。它们都不会对输入进行转换,而是将其作为纯文本存储,通常在TEXT列中。

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

待办事项

  • 编写测试