Quantcast
Viewing all articles
Browse latest Browse all 293246

[META] Support WYSIWYG embedding of media entities

Problem/Motivation

Core currently provides support for embedding of images. It is currently impossible to embed a video or a document. Also, when #2801277: [META] Support remote media assets as first-class citizens by adding Media Entity module in core lands we'll need to embed media entities rather than files.

Contrib already has a solution for this. Entity embed is a module that supports embedding of any renderable entity and supports extensive display configuration.

Proposed resolution

Move parts of Entity embed into core (simplified text filter) and handle embedding through it. Entity embed display plugins, embed button config entities, and other related API surface will stay in contrib. The simplified text filter will only support embedding media entities; people wishing to embed other types of entities will need to use contrib. Existing WYSIWYG functionality would remain the same.

Remaining tasks

In order:

  1. #2940029: Add an input filter to display embedded Media entities
  2. #2994696: Render embedded media items in CKEditor
  3. #2994699: Create a CKEditor plugin to select and embed a media item from the Media Library
  4. #2994702: Allow editors to alter embed-specific metadata, as well as `data-align` and `data-caption`
  5. #3066802: Ensure that embedded image media items do not display at unreasonable sizes by default
  6. #3074608: Optionally allow choosing a view mode for embedded media in EditorMediaDialog
  7. SHOULD-HAVE: #3078287: Constrain the width of aligned images, media, blockquotes etc to a max of 75%
  8. SHOULD-HAVE #3073901: Determine an upgrade path from CKEditor image button to media library

Additional required bug fixes:

Additional related and follow-up issues

User interface changes

TBD

API changes

TBD

Data model changes

TBD


Viewing all articles
Browse latest Browse all 293246

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>