syncfusion-blazor-rich-text-editor — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-blazor-rich-text-editor (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A comprehensive skill for implementing and configuring the Syncfusion Blazor Rich Text Editor (SfRichTextEditor) — a full-featured WYSIWYG editor supporting HTML and Markdown editing, rich toolbar customization, media insertion, tables, data binding, import/export, and accessibility.
Use this skill when the user needs to:
SfRichTextEditor in a Blazor Server, WebAssembly, or Web App projectValueChange, OnActionBegin, image upload events, etc.)@bind-Value or retrieve via GetTextAsync1. Install NuGet packages:
dotnet add package Syncfusion.Blazor.RichTextEditor
dotnet add package Syncfusion.Blazor.Themes2. Register in `Program.cs`:
using Syncfusion.Blazor;
builder.Services.AddSyncfusionBlazor();3. Add to `_Imports.razor`:
@using Syncfusion.Blazor
@using Syncfusion.Blazor.RichTextEditor4. Add CSS/JS in `index.html` (WASM) or `App.razor` (Server):
<link href="_content/Syncfusion.Blazor.Themes/bootstrap5.css" rel="stylesheet" />
<script src="_content/Syncfusion.Blazor.Core/scripts/syncfusion-blazor.min.js"></script>5. Add the component:
<SfRichTextEditor @bind-Value="@Content">
<RichTextEditorToolbarSettings Items="@Tools" />
</SfRichTextEditor>
@code {
private string Content { get; set; } = "<p>Start editing...</p>";
private List<ToolbarItemModel> Tools = new()
{
new() { Command = ToolbarCommand.Bold },
new() { Command = ToolbarCommand.Italic },
new() { Command = ToolbarCommand.Underline },
new() { Command = ToolbarCommand.Separator },
new() { Command = ToolbarCommand.Formats },
new() { Command = ToolbarCommand.Alignments },
new() { Command = ToolbarCommand.OrderedList },
new() { Command = ToolbarCommand.UnorderedList },
new() { Command = ToolbarCommand.Separator },
new() { Command = ToolbarCommand.CreateLink },
new() { Command = ToolbarCommand.Image },
new() { Command = ToolbarCommand.CreateTable },
new() { Command = ToolbarCommand.Separator },
new() { Command = ToolbarCommand.Undo },
new() { Command = ToolbarCommand.Redo }
};
}📄 Read: references/getting-started.md
📄 Read: references/toolbar.md
RichTextEditorToolbarSettings.EnableToolbarItemModel📄 Read: references/built-in-tools.md
ToolbarCommand enum values📄 Read: references/text-formatting.md
📄 Read: references/images-and-media.md
RichTextEditorImageSettings: SaveUrl, Path, AllowedTypes, EnableResize📄 Read: references/tables.md
CreateTable toolbar itemRichTextEditorTableSettings: width, resize, custom styles📄 Read: references/editor-modes.md
EditorMode.Markdown)📄 Read: references/inline-mode.md
InlineMode)📄 Read: references/custom-tools.md
ToolbarItemModel and templatesExecuteCommandAsync/ trigger menu) configurationRichTextEditorFormatPainterSettings)📄 Read: references/events.md
RichTextEditorEvents child component usage and wiring patternCreated, DestroyedFocus, Blur, OnToolbarClick, SelectionChangedValueChange, BeforePasteCleanup, AfterPasteCleanupOnActionBegin, OnActionCompleteOnDialogOpen, DialogOpened, OnDialogClose, DialogClosedOnQuickToolbarOpen, QuickToolbarOpened, QuickToolbarClosedOnImageSelected, BeforeUploadImage, OnImageUploadSuccess, OnImageUploadFailed, ImageUploadChange, OnImageDrop, ImageDeleteFileSelected, FileUploading, FileUploadSuccess, FileUploadFailed, FileUploadChange, OnMediaDrop, MediaDeletedOnResizeStart, OnResizeStopUpdatedToolbarStatusOnExport, OnExportFailureSlashMenuItemSelecting📄 Read: references/methods.md
FocusAsync, FocusOutAsync, SaveSelectionAsync, RestoreSelectionAsync, SelectAllAsync, GetSelectionAsyncGetTextAsync, GetSelectedHtmlAsync, GetCharCountAsync, GetXhtmlAsyncExecuteCommandAsync overloads with typed args (image, link, table, video, audio, code block, format painter)EnableToolbarItem, DisableToolbarItem, RemoveToolbarItemShowDialogAsync, CloseDialogAsync, ShowFullScreenAsync, PrintAsync, RefreshUIAsync, ShowSourceCodeAsyncClearUndoRedoAsyncCommandName, ToolbarCommand, and DialogType enum references📄 Read: references/properties.md
Value, Placeholder, Readonly, Enabled, MaxLength, ShowCharCountEditorMode, EnterKey, ShiftEnterKey, EnableTabKey, EnableAutoUrl, EnableMarkdownAutoFormat, EnableClipboardCleanup, EnableXhtml, EnableHtmlEncode, EnableResizeHeight, Width, CssClass, ShowTooltip, FloatingToolbarOffsetEnableHtmlSanitizer, AdditionalSanitizeAttributes, AdditionalSanitizeTags, DeniedSanitizeSelectorsKeyConfigure with full ShortcutKeys default bindings tableEnablePersistence, SaveInterval, AutoSaveOnIdleUndoRedoSteps, UndoRedoTimerHttpClientInstance📄 Read: references/data-binding.md
@bind-ValueValueChange event for detecting editsReadonly property)📄 Read: references/paste-and-cleanup.md
RichTextEditorPasteCleanupSettings configurationEnterKey, ShiftEnterKey)📄 Read: references/import-export.md
📄 Read: references/accessibility-globalization.md
EnableRtl)<SfRichTextEditor @bind-Value="@HtmlContent" ShowCharCount="true" MaxLength="2000">
</SfRichTextEditor>
@code {
private string HtmlContent { get; set; } = string.Empty;
}<SfRichTextEditor Value="@HtmlContent" Readonly="true">
<RichTextEditorToolbarSettings Enable="false" />
</SfRichTextEditor><SfRichTextEditor EditorMode="EditorMode.Markdown" @bind-Value="@MarkdownContent">
</SfRichTextEditor>
@code {
private string MarkdownContent { get; set; } = "**Hello** world!";
}~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.