5
|
1 |
/* global tinymce */ |
|
2 |
tinymce.PluginManager.add( 'wplink', function( editor ) { |
|
3 |
editor.addCommand( 'WP_Link', function() { |
|
4 |
window.wpLink && window.wpLink.open( editor.id ); |
|
5 |
}); |
|
6 |
|
|
7 |
// WP default shortcut |
|
8 |
editor.addShortcut( 'Alt+Shift+A', '', 'WP_Link' ); |
|
9 |
// The "de-facto standard" shortcut, see #27305 |
|
10 |
editor.addShortcut( 'Meta+K', '', 'WP_Link' ); |
|
11 |
|
|
12 |
editor.addButton( 'link', { |
|
13 |
icon: 'link', |
|
14 |
tooltip: 'Insert/edit link', |
|
15 |
cmd: 'WP_Link', |
|
16 |
stateSelector: 'a[href]' |
|
17 |
}); |
|
18 |
|
|
19 |
editor.addButton( 'unlink', { |
|
20 |
icon: 'unlink', |
|
21 |
tooltip: 'Remove link', |
|
22 |
cmd: 'unlink' |
|
23 |
}); |
|
24 |
|
|
25 |
editor.addMenuItem( 'link', { |
|
26 |
icon: 'link', |
|
27 |
text: 'Insert/edit link', |
|
28 |
cmd: 'WP_Link', |
|
29 |
stateSelector: 'a[href]', |
|
30 |
context: 'insert', |
|
31 |
prependToContext: true |
|
32 |
}); |
|
33 |
|
|
34 |
editor.on( 'pastepreprocess', function( event ) { |
|
35 |
var pastedStr = event.content; |
|
36 |
|
|
37 |
if ( ! editor.selection.isCollapsed() ) { |
|
38 |
pastedStr = pastedStr.replace( /<[^>]+>/g, '' ); |
|
39 |
pastedStr = tinymce.trim( pastedStr ); |
|
40 |
|
|
41 |
if ( /^(?:https?:)?\/\/\S+$/i.test( pastedStr ) ) { |
|
42 |
editor.execCommand( 'mceInsertLink', false, { |
|
43 |
href: editor.dom.decode( pastedStr ) |
|
44 |
} ); |
|
45 |
|
|
46 |
event.preventDefault(); |
|
47 |
} |
|
48 |
} |
|
49 |
} ); |
|
50 |
}); |