Loading...
Loading...
SunEditor با ۲۴ افزونهی داخلی ارائه میشود که شامل رسانهها، قالببندی و ویژگیهای پیشرفته میشود.
هر افزونه به یک displaytype تعلق دارد که نحوه نمایش آن را در نوار ابزار تعیین میکند.
ویژگی display نحوه تعامل افزونه با کاربر را تعریف میکند.
imageقابل تنظیمآپلود، تغییر اندازه و ترازبندی تصاویر
videoقابل تنظیمدرج و مدیریت محتوای ویدیویی
audioقابل تنظیمقرار دادن فایلهای صوتی با پخشکننده
linkایجاد و ویرایش هایپرلینکها
embedقابل تنظیمقرار دادن محتوای خارجی (یوتیوب، آیفریمها)
drawingقابل تنظیمابزار نقاشی مبتنی بر بوم
mathقابل تنظیمویرایشگر معادلات ریاضی (KaTeX)
افزونههایی که با configurable مشخص شدهاند، گزینههایی دارند که میتوانید در Playground آنها را تغییر دهید.
محدودیتهای آپلود تصویر، واحدهای اندازه فونت، انواع اسکرول جدول، تریگرهای منشن و موارد دیگر را تنظیم کنید. تغییرات فوراً در یک ویرایشگر زنده اعمال میشوند.
مرجع فنی برای ساخت افزونههای سفارشی - از دکمههای فرمان ساده گرفته تا ویژگیهای کامل مبتنی بر دیالوگ.
کلاسهای افزونه را در options.plugins ثبت کنید. هسته آنها را نمونهسازی میکند.
همه سرویسهای ویرایشگر از طریق this.$ قابل دسترسی هستند — هرگز ماژولهای اصلی را مستقیماً وارد نکنید.
چندین قرارداد (ModuleModal، EditorComponent) را برای اتصال به چرخههای حیات پیادهسازی کنید.
import { PluginCommand } from 'suneditor/src/interfaces';
class HelloWorld extends PluginCommand {
static key = 'helloWorld';
/**
* @constructor
* @param {SunEditor.Kernel} kernel - The Kernel instance
*/
constructor(kernel) {
super(kernel);
this.title = 'Hello World';
this.icon = '<span style="font-size:14px">HW</span>';
}
/**
* @override
* @type {PluginCommand['action']}
*/
action() {
this.$.html.insert('<p>Hello, World!</p>');
this.$.history.push(false);
}
}
export default HelloWorld;بر اساس نحوه تعامل افزونه خود با کاربر، یک کلاس پایه انتخاب کنید.
PluginCommandcommandمورد نیاز: action()Button click executes action immediately
نمونههای داخلی: blockquote, hr, strike
PluginDropdowndropdownمورد نیاز: action()Button opens menu, item click calls action()
نمونههای داخلی: align, font, blockStyle
PluginDropdownFreedropdown-freeButton opens menu, plugin handles own events
نمونههای داخلی: table, fontColor, codeBlock
PluginModalmodalمورد نیاز: open(), modalAction()Button opens modal dialog
نمونههای داخلی: link, image, video
PluginBrowserbrowserمورد نیاز: open(), close()Button opens gallery/browser interface
نمونههای داخلی: imageGallery
PluginFieldfieldResponds to editor input events
نمونههای داخلی: autocomplete
PluginInputinputToolbar input element (not a button)
نمونههای داخلی: pageNavigator
PluginPopuppopupمورد نیاز: show(), controllerAction()Inline popup context menu
نمونههای داخلی: anchor
یک افزونه همچنین میتواند رابطهای نوع افزونه دیگری را پیادهسازی کند تا حالتهای تعاملی متعددی را ارائه دهد.
fontSizeextends PluginInput+ PluginCommand+ PluginDropdownInput field + dropdown list + command (inc/dec) all controlling font size.
list_bulleted / list_numberedextends PluginCommand+ PluginDropdownCommand button for toggling list + dropdown for selecting list style.