ckeditor/ckeditor5-engine

View on GitHub
docs/_snippets/framework/extending-content-add-heading-class.js

Summary

Maintainability
A
3 hrs
Test Coverage
/**
 * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md.
 */

/* globals ClassicEditor, console, window, document */

import { CS_CONFIG } from '@ckeditor/ckeditor5-cloud-services/tests/_utils/cloud-services-config';

function AddClassToAllHeading1( editor ) {
    editor.conversion.for( 'downcast' ).add( dispatcher => {
        dispatcher.on( 'insert:heading1', ( evt, data, conversionApi ) => {
            const viewWriter = conversionApi.writer;

            viewWriter.addClass( 'my-heading', conversionApi.mapper.toViewElement( data.item ) );
        }, { priority: 'low' } );
    } );
}

ClassicEditor
    .create( document.querySelector( '#snippet-heading-class' ), {
        cloudServices: CS_CONFIG,
        extraPlugins: [ AddClassToAllHeading1 ],
        toolbar: {
            viewportTopOffset: window.getViewportTopOffsetConfig()
        }
    } )
    .then( editor => {
        window.editor = editor;
    } )
    .catch( err => {
        console.error( err.stack );
    } );