Socket
Socket
Sign inDemoInstall

@ckeditor/ckeditor5-widget

Package Overview
Dependencies
11
Maintainers
1
Versions
464
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @ckeditor/ckeditor5-widget

Widget API for CKEditor 5.


Version published
Maintainers
1
Created

Package description

What is @ckeditor/ckeditor5-widget?

@ckeditor/ckeditor5-widget is a package that provides the base functionality for creating and managing widgets in CKEditor 5. Widgets are special types of content that can be edited and manipulated as a single unit, such as images, tables, or custom blocks.

What are @ckeditor/ckeditor5-widget's main functionalities?

Creating a Simple Widget

This code demonstrates how to create a simple widget in CKEditor 5. It registers a new model element 'simpleWidget' and sets up the necessary conversions for upcasting, data downcasting, and editing downcasting.

import Widget from '@ckeditor/ckeditor5-widget/src/widget';
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';

class SimpleWidget extends Plugin {
  init() {
    const editor = this.editor;
    editor.model.schema.register('simpleWidget', {
      isObject: true,
      allowWhere: '$block'
    });
    editor.conversion.for('upcast').elementToElement({
      model: 'simpleWidget',
      view: 'div'
    });
    editor.conversion.for('dataDowncast').elementToElement({
      model: 'simpleWidget',
      view: 'div'
    });
    editor.conversion.for('editingDowncast').elementToElement({
      model: 'simpleWidget',
      view: (modelElement, viewWriter) => {
        const div = viewWriter.createContainerElement('div');
        return toWidget(div, viewWriter);
      }
    });
  }
}

export default SimpleWidget;

Custom Widget with Editable Content

This code demonstrates how to create a custom widget with editable content. It registers a new model element 'customWidget' and sets up the necessary conversions. The widget contains an inner editable element, allowing users to edit its content directly.

import Widget from '@ckeditor/ckeditor5-widget/src/widget';
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
import { toWidget, toWidgetEditable } from '@ckeditor/ckeditor5-widget/src/utils';

class CustomWidget extends Plugin {
  init() {
    const editor = this.editor;
    editor.model.schema.register('customWidget', {
      isObject: true,
      allowWhere: '$block',
      allowContentOf: '$root'
    });
    editor.conversion.for('upcast').elementToElement({
      model: 'customWidget',
      view: 'div'
    });
    editor.conversion.for('dataDowncast').elementToElement({
      model: 'customWidget',
      view: 'div'
    });
    editor.conversion.for('editingDowncast').elementToElement({
      model: 'customWidget',
      view: (modelElement, viewWriter) => {
        const div = viewWriter.createContainerElement('div');
        const innerEditable = viewWriter.createEditableElement('div');
        viewWriter.insert(viewWriter.createPositionAt(div, 0), innerEditable);
        return toWidget(div, viewWriter, { label: 'custom widget' });
      }
    });
  }
}

export default CustomWidget;

Other packages similar to @ckeditor/ckeditor5-widget

Changelog

Source

41.4.0-alpha.0 (April 18, 2024)

We are happy to announce the release of CKEditor 5 v41.4.0-alpha.0.

This release is intended to add a UMD build to the new installation methods.

For instructions on how to use the new installation methods, see the v41.3.0-alpha.0 Release Notes.

For more general information about the new installation methods, see the announcement post.

Released packages

Check out the Versioning policy guide for more information.

<details> <summary>Released packages (summary)</summary>

Minor releases (contain minor breaking changes):

Releases containing new features:

Other releases:

</details>

Readme

Source

CKEditor 5 widget API

npm version Coverage Status Build Status

This package implements the widget API for CKEditor 5.

Documentation

See the @ckeditor/ckeditor5-widget package page in CKEditor 5 documentation.

License

Licensed under the terms of GNU General Public License Version 2 or later. For full details about the license, please check the LICENSE.md file or https://ckeditor.com/legal/ckeditor-oss-license.

Keywords

FAQs

Last updated on 18 Apr 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc