/** * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md. */ /** * @module basic-styles/subscript/subscriptediting */ import Plugin from '@ckeditor/ckeditor5-core/src/plugin'; import AttributeCommand from '../attributecommand'; const SUB = 'sub'; /** * The subscript editing feature. * * It registers the `sub` command and introduces the `sub` attribute in the model which renders to the view * as a `` element. * * @extends module:core/plugin~Plugin */ export default class SubscriptEditing extends Plugin { /** * @inheritDoc */ init() { const editor = this.editor; // Allow sub attribute on text nodes. editor.model.schema.extend( '$text', { allowAttributes: SUB } ); // Build converter from model to view for data and editing pipelines. editor.conversion.attributeToElement( { model: SUB, view: 'sub', upcastAlso: [ { styles: { 'vertical-align': 'sub' } } ] } ); // Create sub command. editor.commands.add( SUB, new AttributeCommand( editor, SUB ) ); } }