| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /**
- * @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 AddTargetToExternalLinks( 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', {
- target: '_blank'
- }, {
- priority: 5
- } );
- if ( data.attributeNewValue.match( /ckeditor\.com/ ) ) {
- viewWriter.unwrap( conversionApi.mapper.toViewRange( data.range ), viewElement );
- } else {
- 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-external' ), {
- cloudServices: CS_CONFIG,
- extraPlugins: [ AddTargetToExternalLinks ],
- toolbar: {
- viewportTopOffset: window.getViewportTopOffsetConfig()
- }
- } )
- .then( editor => {
- window.editor = editor;
- } )
- .catch( err => {
- console.error( err.stack );
- } );
|