advoor / nova-editor-js
A Laravel Nova 字段,将 EditorJs 魔力带入 Nova。
Requires
- php: ^8.2
- ext-exif: *
- ext-json: *
- codex-team/editor.js: *
- guzzlehttp/guzzle: ^7.0
- illuminate/events: ^10.0 || ^11.0
- illuminate/support: ^10.0 || ^11.0
- laravel/nova: ^4.0
- spatie/image: ^3.0
Requires (Dev)
- laravel/pint: ^1.15
- orchestra/testbench: ^8.0 || ^9.0
- php-parallel-lint/php-parallel-lint: ^1.3
- dev-master
- v4.0.0
- v3.3.0
- v3.2.1
- v3.2.0
- v3.1.0
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.0.1
- v1.0.0
- v0.6.6
- v0.6.5
- v0.6.4
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6
- v0.5.1
- v0.5.0
- v0.4.0
- v0.3.0
- v0.2.0
- 0.0.1
- dev-dependabot/npm_and_yarn/webpack-5.76.1
- dev-dependabot/composer/symfony/http-kernel-6.2.6
- dev-dependabot/npm_and_yarn/json5-1.0.2
- dev-dependabot/npm_and_yarn/loader-utils-1.4.2
- dev-image-service
- dev-feature/fix-unit-tests
- dev-feature/custom-blocks
This package is auto-updated.
Last update: 2024-09-22 09:57:23 UTC
README
由 Editor.js 提供 @advoor 的 Laravel Nova 实现。
安装
通过 composer 安装
composer require advoor/nova-editor-js
发布配置文件
php artisan vendor:publish --provider="Advoor\NovaEditorJs\FieldServiceProvider"
版本兼容性
Laravel Nova 4.x 与 3.x 不兼容,因此我们不得不进行版本分割。请使用下表找到适合您安装的版本。
请注意,我们确实提高了 PHP 版本。如果您继续使用 Laravel 和 Nova 的新版本,我们期望您的 PHP 版本也与此行为一致。
升级
查看 升级指南。
使用方法
要将 EditorJS 添加到您的应用程序中,您需要修改您的 Nova 资源。为了方便使用,我们还建议更新您的模型,但这不是必需的。
更新您的 Nova 资源
此包公开了一个 NovaEditorJsField
,负责显示 HTML 内容并给用户提供 EditorJs 字段。
要使用它,只需导入字段,
use Advoor\NovaEditorJs\NovaEditorJsField;
在字段数组中使用它,
return [ // … NovaEditorJsField::make('about'), ];
然后,您就拥有了一个精美的编辑器。
更新您的模型(可选)
为了方便使用,我们建议您将 NovaEditorJsCast
添加到模型的 $casts
上。这将值映射到 NovaEditorJsData
模型,该模型可以在 Blade(渲染 HTML)或通过 API 调用(渲染 JSON,除非您对其调用 toHtml
或将其强制转换为字符串)返回。
use Advoor\NovaEditorJs\NovaEditorJsCast; class User extends Model { protected $casts = [ 'about' => NovaEditorJsCast::class, ]; }
由于 NovaEditorJsData
模型是一个 Htmlable
,Blade 会将其识别为安全的 HTML。这意味着您不需要使用 Blade "未转义语句"。
<article> <h1>About {{ $user->name }}</h1> {{ $user->about }} </article>
在不更改模型的情况下渲染 HTML
您还可以使用 NovaEditorJs
门面从存储的数据中渲染 HTML。
NovaEditorJs::generateHtmlOutput($user->about);
generateHtmlOutput
的返回值是一个 HtmlString
,Blade 会将其视为安全的。这意味着您不需要使用 Blade "未转义语句"。
<article> <h1>About {{ $user->name }}</h1> {{ NovaEditorJs::generateHtmlOutput($user->about) }} </article>
自定义
您可以通过更新配置文件中的 editorSettings
和 toolSettings
属性来配置编辑器设置和编辑器应使用的工具。
从配置中,您可以定义以下编辑器设置
placeholder
(文档) - 在空编辑器中显示的占位符defaultBlock
(文档) - 默认使用的块autofocus
(文档) - 如果编辑器应该自动聚焦,仅在使用页面中只有一个编辑器时使用,并考虑 可访问性影响rtl
(文档) - 设置为 true 以启用从右到左模式,适用于阿拉伯语和希伯来语等语言
此外,您还可以自定义编辑器应使用的工具。以下工具默认启用
您可以通过更改位于 resources/views/vendor/nova-editor-js/
的视图来自定义每个组件的视图。
† 嵌入 工具通过粘贴可嵌入内容的URL触发。它不在“添加”菜单中。
注册自定义组件
请参考 扩展 Nova EditorJS 指南,了解如何注册自定义组件的说明。