MCPInstall

syncfusion-aspnetcore-blockeditor

Implement Syncfusion Block Editor control in ASP.NET Core applications using Razor Tag Helpers. Use this skill when working with Syncfusion Block Editor, EJ2 BlockEditor, ASP.NET Core block-based content editing, or syntax and collaborative editing features, real-time multi-user editing, Yjs integration, user presence and remote cursors, document version history. Covers block management, nested content structures, drag-and-drop functionality, content sanitization, installation, tag helper setup, block types, content manipulation, events, menus, and advanced features for creating rich block-based document editors.

Installs
104
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/syncfusion/aspnetcore-ui-components-skills --skill syncfusion-aspnetcore-blockeditor
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads syncfusion-aspnetcore-blockeditor automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Syncfusion ASP.NET Core Block Editor Control

Overview

A comprehensive skill for implementing Syncfusion EJ2 Block Editor in ASP.NET Core applications using Razor Tag Helpers. This skill covers setup, block configuration, content manipulation, events, and best practices for creating block-based document editors.

The Syncfusion Block Editor is a versatile, block-based content editor that allows users to create and edit structured documents using discrete content blocks. Key capabilities include:

  • Multiple Block Types: Paragraph, Headings (1-4), Lists (Bullet, Numbered, Checklist), Code, Tables, Images, Quotes, Callouts, and more
  • Nested Structures: Support for collapsible headings, quotes, and callouts with child blocks
  • Rich Editor Menus: Slash commands, context menus, inline toolbars, and block action menus
  • Drag-and-Drop: Reorder blocks seamlessly with visual feedback
  • Content Sanitization: Built-in paste cleanup with configurable denied tags
  • Keyboard Shortcuts: Comprehensive shortcuts for formatting, block creation, and management
  • Undo/Redo: Configurable undo/redo stack (default 30 actions)
  • Globalization: Multi-language support and RTL layout support
  • Events: Rich event system for monitoring user interactions and content changes
  • Responsive Design: Adaptive UI that works on desktop and mobile devices
  • Collaborative Editing: Real-time multi-user document editing with Yjs CRDT framework, remote cursor awareness, user presence tracking, and version history management

Documentation and Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • Installation and package setup
  • Basic BlockEditor implementation
  • CSS imports and theme selection
  • Creating the first Block Editor instance
  • Setting initial block content

Built-in Blocks

📄 Read: references/built-in-blocks.md

  • Block types overview (Paragraph, Heading, Lists, Code, Table, Embed, etc.)
  • Block properties (id, blockType, content, indent)
  • Nested block types (CollapsibleHeading, CollapsibleParagraph, Quote, Callout)
  • Parent-child relationships and hierarchy
  • Expanded state control and placeholders
  • CSS class customization and templates

Block Editor Menus

📄 Read: references/blockeditor-menus.md

  • Inline toolbar configuration and events
  • Block actions menu customization
  • Slash commands (/) for quick block insertion
  • Context menu configuration
  • Toolbar buttons and formatting actions

Drag-Drop and Content

📄 Read: references/drag-drop-and-content.md

  • Enable drag-and-drop functionality
  • Reordering blocks by dragging
  • Multiple block selection and movement
  • Visual feedback during drag operations
  • Content insertion and block positioning

Methods and API

📄 Read: references/methods-and-api.md

  • Block Management: addBlock, removeBlock, moveBlock, updateBlock, getBlock, getBlockCount
  • Selection & Cursor: setSelection, setCursorPosition, getSelectedBlocks, getRange, selectRange, selectBlock, selectAllBlocks
  • Focus Management: focusIn, focusOut
  • Formatting: executeToolbarAction, enableToolbarItems, disableToolbarItems
  • Data Export: getDataAsJson, getDataAsHtml, renderBlocksFromJson, parseHtmlToBlocks, print
  • Practical examples for each method category

Styling and Appearance

📄 Read: references/styling-and-appearance.md

  • CSS theming options (Material, Bootstrap, Fluent, Tailwind, Fabric themes)
  • Block-level styling and cssClass property
  • Typography options (bold, italic, underline, strikethrough)
  • Indentation and nested block styling
  • Placeholder text customization
  • Dark mode support and custom themes

Advanced Features

📄 Read: references/advanced-features.md

  • Paste cleanup and content sanitization (denied tags)
  • Keep format and plain text modes
  • Undo/Redo functionality and stack configuration
  • Keyboard shortcuts and customization
  • Read-only mode for view-only editors
  • XSS protection and HTML sanitizer
  • RTL (Right-to-Left) support
  • Globalization and multi-language localization

Collaborative Editing

📄 Read: references/collaborative-editing.md

  • Real-time multi-user document editing with Yjs provider integration
  • Configuring collaboration adapters and providers (y-websocket, y-webrtc, Hocuspocus, Liveblocks, PartyKit)
  • User presence and remote cursor visualization with enableAwareness
  • Active user tracking and user configuration with avatarBgColor
  • Version history management with snapshots, restore, compare, export, and import operations
  • Snapshot lifecycle events (snapshotCreated, snapshotRestored)
  • Best practices for development and production deployments
  • Troubleshooting collaboration issues

Quick Start Example

Basic Block Editor Setup

Step 1: Install NuGet Package

Install-Package Syncfusion.EJ2.AspNet.Core

Step 2: Register in _ViewImports.cshtml

@addTagHelper *, Syncfusion.EJ2

Step 3: Add CSS and Scripts in _Layout.cshtml

<head>
    <link rel="stylesheet" href="https://cdn.syncfusion.com/ej2/dist/ej2.min.css" />
</head>
<body>
    @RenderBody()
    
    <script src="https://cdn.syncfusion.com/ej2/dist/ej2.min.js"></script>
    <ejs-scripts></ejs-scripts>
    
    @RenderSection("Scripts", required: false)
</body>

Step 4: Create Block Editor in View

@using Syncfusion.EJ2.BlockEditor

<div id='blockeditor-container'>
    <ejs-blockeditor id="block-editor" blocks="@ViewBag.BlocksData"></ejs-blockeditor>
</div>

<style>
    #blockeditor-container {
        margin: 20px auto;
    }
</style>

Step 5: Configure Blocks in Controller

using Syncfusion.EJ2.BlockEditor;

public class BlockModel
{
    public string id { get; set; }
    public string blockType { get; set; }
    public object properties { get; set; }
    public List<object> content { get; set; }
}

public IActionResult Index()
{
    var blocks = new List<BlockModel>
    {
        new BlockModel
        {
            id = "heading-1",
            blockType = "Heading",
            properties = new { level = 1 },
            content = new List<object>
            {
                new { contentType = "Text", content = "Welcome to Block Editor" }
            }
        },
        new BlockModel
        {
            id = "paragraph-1",
            blockType = "Paragraph",
            content = new List<object>
            {
                new { contentType = "Text", content = "Start creating your content with blocks!" }
            }
        }
    };
    
    ViewBag.BlocksData = blocks;
    return View();
}

Common Patterns

Pattern 1: Add New Block Dynamically

var blockEditorObj = ej.base.getInstance(document.getElementById('block-editor'), ejs.blockeditor.BlockEditor);

const newBlock = {
    id: 'new-paragraph',
    blockType: 'Paragraph',
    content: [
        {
            contentType: "Text",
            content: 'This is a newly added block'
        }
    ]
};

// Add after a specific block
blockEditorObj.addBlock(newBlock, 'existing-block-id', true);

Pattern 2: Nested Collapsible Structure

new BlockModel
{
    blockType = "CollapsibleHeading",
    content = new List<object>
    {
        new { contentType = "Text", content = "Section Title" }
    },
    properties = new
    {
        level = 1,
        isExpanded = true,
        children = new List<BlockModel>
        {
            new BlockModel
            {
                blockType = "Paragraph",
                content = new List<object>
                {
                    new { contentType = "Text", content = "Hidden content goes here" }
                }
            }
        }
    }
}

Pattern 3: Configure Paste Cleanup

<ejs-blockeditor id="block-editor">
    <e-blockeditor-pastesettings 
        deniedTags="@(new string[] { "script", "iframe", "form" })"
        keepFormat="true">
    </e-blockeditor-pastesettings>
</ejs-blockeditor>

Pattern 4: Custom Slash Commands

var commandMenuItems = new List<object>
{
    new 
    {
        id = "timestamp",
        groupHeader = "Actions",
        label = "Insert Timestamp",
        iconCss = "e-icons e-schedule"
    },
    new 
    {
        id = "separator",
        type = "Divider",
        groupHeader = "Utility",
        label = "Insert Divider",
        iconCss = "e-icons e-divider"
    }
};

ViewBag.CommandMenuItems = commandMenuItems;

Pattern 5: Readonly Editor for Display

<ejs-blockeditor id="block-editor" 
                 readOnly="true" 
                 blocks="@ViewBag.BlocksData">
</ejs-blockeditor>

Key Properties

PropertyTypeDescriptionDefault
idstringUnique identifier for the Block Editor instance-
blocksList<BlockModel>Initial block content[]
heightstringHeight of the editor (px, vh, %)auto
widthstringWidth of the editor (px, %)100%
readOnlyboolEnable read-only modefalse
cssClassstringCustom CSS class for styling-
enableDragAndDropboolEnable block drag-and-droptrue
enableRtlboolEnable right-to-left layoutfalse
localestringLocalization culture (e.g., "de", "es")"en"
undoRedoStackintNumber of undo/redo steps30
keyConfigobjectKeyboard shortcuts configurationdefault shortcuts

Common Use Cases

  1. Blog Post Editor - Create a structured blog editor with headings, paragraphs, lists, code snippets, and images
  2. Knowledge Base - Build hierarchical documentation with collapsible sections and nested content
  3. Newsletter Template Builder - Design email templates with predefined blocks
  4. Content Management System - Manage modular content with drag-and-drop block reordering
  5. Documentation Platform - Create technical documentation with code blocks, tables, and callouts
  6. Form Builder - Create dynamic forms with conditional block visibility
  7. Collaborative Editing - Implement shared document editing with block-level permissions

Workflow Pattern

When implementing a Syncfusion Block Editor in ASP.NET Core:

  1. Install and Setup - Follow Getting Started guide for package installation and registration
  2. Define Block Structure - Choose block types and configure them in references/built-in-blocks.md
  3. Initialize Editor - Create Block Editor instance with initial blocks
  4. Configure Features - Enable menus, drag-drop, paste cleanup as needed
  5. Handle Events - Bind to events for content validation, logging, or integration
  6. Customize Appearance - Apply CSS themes, custom classes, and styling
  7. Implement Methods - Use API methods for programmatic content manipulation
  8. Test and Optimize - Verify functionality and performance

FAQ

What does the syncfusion-aspnetcore-blockeditor skill do?

Implement Syncfusion Block Editor control in ASP.NET Core applications using Razor Tag Helpers. Use this skill when working with Syncfusion Block Editor, EJ2 BlockEditor, ASP.NET Core block-based content editing, or syntax and collaborative editing features, real-time multi-user editing, Yjs integration, user presence and remote cursors, document version history. Covers block management, nested content structures, drag-and-drop functionality, content sanitization, installation, tag helper setup, block types, content manipulation, events, menus, and advanced features for creating rich block-based document editors.

How do I install syncfusion-aspnetcore-blockeditor?

Run npx skills add https://github.com/syncfusion/aspnetcore-ui-components-skills --skill syncfusion-aspnetcore-blockeditor in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-aspnetcore-blockeditor/ (personal) or .claude/skills/syncfusion-aspnetcore-blockeditor/ (project).

Which AI agents can use syncfusion-aspnetcore-blockeditor?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is syncfusion-aspnetcore-blockeditor safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains syncfusion-aspnetcore-blockeditor?

It is published by syncfusion in syncfusion/aspnetcore-ui-components-skills. It has 104 recorded installs.

More from syncfusion/aspnetcore-ui-components-skills

View all →

syncfusion-aspnetcore-charts

syncfusion/aspnetcore-ui-components-skills

Open the skill to read its SKILL.md instructions.

Frontend & Design112 installs

syncfusion-aspnetcore-common

syncfusion/aspnetcore-ui-components-skills

CONFIGURATION GUIDE — Assist with Syncfusion ASP.NET Core EJ2 components setup, localization, and version compatibility. Use when: installing Syncfusion packages, configuring globalization/localization, selecting compatible versions.

Frontend & Design111 installs

syncfusion-aspnetcore-license

syncfusion/aspnetcore-ui-components-skills

Open the skill to read its SKILL.md instructions.

Frontend & Design111 installs

syncfusion-aspnetcore-grid

syncfusion/aspnetcore-ui-components-skills

Implements Syncfusion ASP.NET Core Grid component for feature-rich data tables and grids. Use this when working with data display, sorting, filtering, grouping, aggregates, editing, or exporting. This skill covers grid configuration, CRUD operations, virtual scrolling or infinite scrolling, hierarchy grids, state persistence, and advanced data management features for data-intensive applications.

Frontend & Design110 installs

syncfusion-aspnetcore-gantt-chart

syncfusion/aspnetcore-ui-components-skills

Open the skill to read its SKILL.md instructions.

Frontend & Design108 installs

syncfusion-aspnetcore-security

syncfusion/aspnetcore-ui-components-skills

Open the skill to read its SKILL.md instructions.

Security108 installs

Popular frontend & design skills

View category →

setup-matt-pocock-skills

mattpocock/skills

Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

Frontend & Design1.1M installs

frontend-design

anthropics/skills

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

OfficialFrontend & Design1M installs

hyperframes-animation

heygen-com/hyperframes

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

prototype

mattpocock/skills

Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.

Frontend & Design999.2K installs

hyperframes-core

heygen-com/hyperframes

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

Frontend & Design930.5K installs

vercel-react-best-practices

vercel-labs/agent-skills

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

OfficialFrontend & Design843.1K installs