Skip to content
НАУЧЕТЕ

Конфигурация

Настройки, лентата с инструменти, добавките и услугите, които можете да замените.

RayCraft Write се настройва на две места: сървърът (AddRte) и редакторът, който показвате (RteOptions).

AddRte

builder.Services.AddRte(o =>
{
    o.MediaStore = new RteMediaStoreOptions { RootPath = "media", BaseUrl = "/rte-media" };
    o.Filter = new ContentFilterOptions { /* списъци за разрешено и забранено */ };
    o.FilterIncomingHtml = true;
});
НастройкаЗначение
MediaStoreвключва библиотеката от файлове: папка на диска (RootPath) и публичен адрес (BaseUrl). Без нея галерията и качването на документи са изключени, а малките картини (до 300 KB) се вграждат в HTML.
FilterContentFilterOptions, използвани за всеки HTML, който идва от браузъра: разрешени и забранени елементи и атрибути, разрешени хостове за рамки
FilterIncomingHtmlвключено по подразбиране. Вързаната Value винаги се филтрира. Изключете го само ако сами филтрирате съдържанието.

AddRte регистрира услугите по подразбиране с TryAdd, така че всичко, което сте регистрирали преди или след него, остава. Сменяте част чрез инжектиране на зависимости:

builder.Services.AddSingleton<IRteMediaStore, MyBlobMediaStore>();
ИнтерфейсПо подразбиранеСменете го, за да
IRteMediaStoreFileSystemMediaStore (когато MediaStore е зададен)пазите файловете в blob хранилище или база
IRteTemplateProviderдевет вградени оформлениязареждате свои шаблони
IRteRevisionStoreв паметта (губи се при рестарт)пазите именувани ревизии
IRteCommentStoreв паметта (губи се при рестарт)пазите коментари и отговори
IRteSpellCheckerсписък с думиползвате истински речник или услуга
IRteLinkPreviewProviderсамо домейнът, нищо не се изтеглявземате заглавия за картите на отметките
IRtePeopleProviderнямадавате хора за споменавания с @
IRteCollaborationнямасвържете CRDT като Yjs
IRteDocxExporter / IRteDocxImporterBasicDocxExporter / BasicDocxImporterполучите по-богати Word файлове

Хранилищата за ревизии и коментари по подразбиране са в паметта. За производство ги пазете в своята база.

Компонентът

<RichTextEditor @bind-Value="html" Options="options" DocumentId="article-42"
                OnReady="Ready" OnEvent="Handle" Class="my-editor" />
ПараметърЗначение
ValueHTML (двупосочна, филтрирана)
Optionsобект RteOptions
DocumentIdиме на документа: ревизиите и коментарите се пазят под него
Class, Style, Idза елемента, който съдържа редактора
OnReadyредакторът е построен в браузъра
OnEventсъбитие на редактора (command, modechange, paste, focus, blur ...) като име и JSON

Настройките се четат, когато редакторът стартира. За да ги смените по-късно, дайте на компонента нов @key.

Методи на компонента: GetHtmlAsync, SetHtmlAsync, InsertHtmlAsync, FocusAsync, ExecuteAsync(command, argument), SetModeAsync, SetThemeAsync, SetFullscreenAsync, SetReadOnlyAsync, GetTextAsync, GetCleanHtmlAsync(xhtml, indent), GetMarkdownAsync, GetJsonAsync, GetEmailHtmlAsync, GetStaticHtmlAsync, CheckAccessibilityAsync, ExportDocxAsync, CheckLimitsAsync.

RteOptions

null оставя стойността по подразбиране.

НастройкаЗначение
Toolbarбутоните по ред; `"" е разделител. По подразбиране RteOptions.DefaultToolbar; всички имена са в RteOptions.AllButtons`.
Pluginsвградените приставки за зареждане (null зарежда всичките 14)
EnterModeP, Br или Div; Shift+Enter винаги е нов ред
Modeначален режим: Design, Html или Preview
ThemeLight, Dark или Classic
DirectionLtr или Rtl
ReadOnlyпоказване без редактиране
Height, MinHeight, Placeholder, StatusBarразмер и текст
ContentCssстилове на вашия сайт за съдържанието и прегледа, за да показва редакторът това, което ще видят читателите
LocalDraftEnabled, Key, IntervalSeconds: чернова, записана в браузъра, с въпрос дали да се възстанови
PasteDefaultMode (Keep, Characters, Plain), WordCleanup
UploadMaxFileSize, AllowedTypes, AllowedImageTypes
LimitsMaxHtmlLength, MaxTextLength (показват се в лентата за състояние; нищо не се блокира)
UrlMode, BaseUrlзапазване, относителни или абсолютни адреси в чистия изход
MarkdownInline (кратки команди докато пишете), Emoji (:кодове:)
EmbedAutoEmbed, AllowedHosts (по подразбиране www.youtube-nocookie.com и player.vimeo.com)
SpellcheckNative (браузърът), Server, Language
MergeFields[{ Name, Label }] за сливане на писма
BlocksCallouts, Columns, Toggles, Equations, Diagrams, Bookmarks, Chips, DragHandles
FocusMode, TypewriterModeрежими на писане
A11y.Liveпроверка на достъпността на живо
Userиме на автора за коментарите и ревизиите
UiLanguageезик на интерфейса (Езици)
Texts, Labelsзамяна на текстове на интерфейса

Пример

<RichTextEditor @bind-Value="html" DocumentId="@id" Options="options" />

@code {
    readonly RteOptions options = new()
    {
        Placeholder = "Напишете статията тук...",
        MinHeight = "320px",
        UiLanguage = "bg-BG",
        ContentCss = ["/css/site.css"],
        LocalDraft = { Enabled = true, Key = "article-42" },
        Upload = { MaxFileSize = 5 * 1024 * 1024 },
        Limits = { MaxTextLength = 20000 },
        User = { Name = "Ада Лавлейс" },
        Toolbar = ["undo", "redo", "|", "bold", "italic", "link", "image", "table", "|", "mode", "fullscreen"]
    };
}

Видовете на свойствата тук следват имената в RteOptions.cs; за точния вид ползвайте подсказките на вашия редактор на код.

Защита на качването

Библиотеката от файлове сервира файлове от MediaStore.RootPath. В производство защитете крайната точка за качване и папката със собствено оторизиране и сложете граници на размера и видовете файлове (Upload). Вграденият FileSystemMediaStore проверява разширенията на файловете и, за картини, първите байтове; пътища от браузъра никога не се приемат на доверие.

← ИнсталацияВъзможности →

Готови ли сте да пробвате RayCraft Write?

Започнете 14-дневния пробен период, без карта.

Започнете 14-дневен пробен период