szaleq/nova-editor-js
Composer 安装命令:
composer require szaleq/nova-editor-js
包简介
A Laravel Nova field bringing EditorJs magic to Nova.
README 文档
README
A Laravel Nova 4 field for Editor.js.
Based on package by @advoor.
Installation
Install via composer:
composer require szaleq/nova-editor-js
Publish the config file
php artisan vendor:publish --provider="Advoor\NovaEditorJs\FieldServiceProvider"
Usage:
Add this use statement to the top of your nova resource file:
use Advoor\NovaEditorJs\NovaEditorJs;
Use the field as below:
NovaEditorJs::make('FieldName');
And boom!
You can configure what tools the Editor should use in the config file along with some other settings so make sure to have a look :)
You can use the built in function to generate the response for the frontend:
NovaEditorJs::generateHtmlOutput($user->about);
Each 'block' has it's own view which can be overwritten in resources/views/vendor/nova-editor-js/
Tools included
- https://github.com/editor-js/header
- https://github.com/editor-js/image
- https://github.com/editor-js/code
- https://github.com/editor-js/link
- https://github.com/editor-js/list
- https://github.com/editor-js/inline-code
- https://github.com/editor-js/checklist
- https://github.com/editor-js/marker
- https://github.com/editor-js/embed
- https://github.com/editor-js/delimiter
- https://github.com/editor-js/table
- https://github.com/editor-js/raw
Extending
For the purpose of this section, we will use editor-js/warning as an example of extensibility.
There are two steps to extending the editor. The first consists of creating a JavaScript file and passing it onto Nova.
The second step allows you to create a blade view file and pass it to the field to allow your block to render in the Nova show page.
Creating the Javascript file
resources/js/editor-js-plugins/warning.js
/* * The editorConfig variable is used by you to add your tools, * or any additional configuration you might want to add to the editor. * * The fieldConfig variable is the VueJS field exposed to you. You may * fetch any value that is contained in your laravel config file from there. */ NovaEditorJS.booting(function (editorConfig, fieldConfig) { if (fieldConfig.toolSettings.warning.activated === true) { editorConfig.tools.warning = { class: require('@editorjs/warning'), shortcut: fieldConfig.toolSettings.warning.shortcut, config: { titlePlaceholder: fieldConfig.toolSettings.warning.titlePlaceholder, messagePlaceholder: fieldConfig.toolSettings.warning.messagePlaceholder, }, } } });
webpack.mix.js
const mix = require('laravel-mix'); mix.js('resources/js/editor-js-plugins/warning.js', 'public/js/editor-js-plugins/warning.js');
app/Providers/NovaServiceProvider.php
// ... public function boot() { parent::boot(); Nova::serving(function () { Nova::script('editor-js-warning', public_path('js/editor-js-plugins/warning.js')); }); } // ...
config/nova-editor-js.php
return [ // ... 'toolSettings' => [ 'warning' => [ 'activated' => true, 'titlePlaceholder' => 'Title', 'messagePlaceholder' => 'Message', 'shortcut' => 'CMD+SHIFT+L' ], ] // ... ];
Creating the blade view file
resources/views/editorjs/warning.blade.php
CSS classes taken from here.
<div class="editor-js-block"> <div class="cdx-warning"> <h3 class="cdx-warning__title">{{ $title }}</h3> <p class="cdx-warning__message">{{ $message }}</p> </div> </div>
app/Providers/NovaServiceProvider.php
use Advoor\NovaEditorJs\NovaEditorJs; // ... public function boot() { parent::boot(); NovaEditorJs::addRender('warning', function($block) { return view('editorjs.warning', $block['data'])->render(); }); // ... } // ...
That's it for extending the Nova EditorJS package!
szaleq/nova-editor-js 适用场景与选型建议
szaleq/nova-editor-js 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.54k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 06 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「wysiwyg」 「editor」 「nova」 「laravel」 「editorjs」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 szaleq/nova-editor-js 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 szaleq/nova-editor-js 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 szaleq/nova-editor-js 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Laravel Nova card that shows you your system information.
A Laravel Nova card.
A Laravel Nova package for publishable fields
A Laravel Nova package for translatable fields
Adds more BBCode
A Laravel Nova Image field. you can paste or drag or chose an image
统计信息
- 总下载量: 2.54k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-06-22