/** * @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 AddClassToAllLinks( editor ) { editor.conversion.for( 'downcast' ).add( dispatcher => { dispatcher.on( 'attribute:linkHref', ( evt, data, conversionApi ) => { const viewWriter = conversionApi.writer; const viewSelection = viewWriter.document.selection; const viewElement = viewWriter.createAttributeElement( 'a', { class: 'my-green-link' }, { priority: 5 } ); if ( data.item.is( 'selection' ) ) { viewWriter.wrap( viewSelection.getFirstRange(), viewElement ); } else { viewWriter.wrap( conversionApi.mapper.toViewRange( data.range ), viewElement ); } }, { priority: 'low' } ); } ); } ClassicEditor .create( document.querySelector( '#snippet-link-classes' ), { cloudServices: CS_CONFIG, extraPlugins: [ AddClassToAllLinks ], toolbar: { viewportTopOffset: window.getViewportTopOffsetConfig() } } ) .then( editor => { window.editor = editor; } ) .catch( err => { console.error( err.stack ); } );