| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /**
- * @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 AddClassToUnsafeLinks( 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: 'unsafe-link' }, { priority: 5 } );
- if ( data.attributeNewValue.match( /http:\/\// ) ) {
- if ( data.item.is( 'selection' ) ) {
- viewWriter.wrap( viewSelection.getFirstRange(), viewElement );
- } else {
- viewWriter.wrap( conversionApi.mapper.toViewRange( data.range ), viewElement );
- }
- } else {
- viewWriter.unwrap( conversionApi.mapper.toViewRange( data.range ), viewElement );
- }
- }, { priority: 'low' } );
- } );
- }
- ClassicEditor
- .create( document.querySelector( '#snippet-link-unsafe-classes' ), {
- cloudServices: CS_CONFIG,
- extraPlugins: [ AddClassToUnsafeLinks ],
- toolbar: {
- viewportTopOffset: window.getViewportTopOffsetConfig()
- }
- } )
- .then( editor => {
- window.editor = editor;
- } )
- .catch( err => {
- console.error( err.stack );
- } );
|