190 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			190 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
|  | /** | |||
|  |  * @license Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. | |||
|  |  * For licensing, see LICENSE.md or http://ckeditor.com/license
 | |||
|  |  */ | |||
|  | 
 | |||
|  | CKEDITOR.plugins.add( 'basicstyles', { | |||
|  | 	lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en,en-au,en-ca,en-gb,eo,es,et,eu,fa,fi,fo,fr,fr-ca,gl,gu,he,hi,hr,hu,id,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt,pt-br,ro,ru,si,sk,sl,sq,sr,sr-latn,sv,th,tr,ug,uk,vi,zh,zh-cn', // %REMOVE_LINE_CORE%
 | |||
|  | 	icons: 'bold,italic,underline,strike,subscript,superscript', // %REMOVE_LINE_CORE%
 | |||
|  | 	hidpi: true, // %REMOVE_LINE_CORE%
 | |||
|  | 	init: function( editor ) { | |||
|  | 		var order = 0; | |||
|  | 		// All buttons use the same code to register. So, to avoid
 | |||
|  | 		// duplications, let's use this tool function.
 | |||
|  | 		var addButtonCommand = function( buttonName, buttonLabel, commandName, styleDefiniton ) { | |||
|  | 				// Disable the command if no definition is configured.
 | |||
|  | 				if ( !styleDefiniton ) | |||
|  | 					return; | |||
|  | 
 | |||
|  | 				var style = new CKEDITOR.style( styleDefiniton ), | |||
|  | 					forms = contentForms[ commandName ]; | |||
|  | 
 | |||
|  | 				// Put the style as the most important form.
 | |||
|  | 				forms.unshift( style ); | |||
|  | 
 | |||
|  | 				// Listen to contextual style activation.
 | |||
|  | 				editor.attachStyleStateChange( style, function( state ) { | |||
|  | 					!editor.readOnly && editor.getCommand( commandName ).setState( state ); | |||
|  | 				} ); | |||
|  | 
 | |||
|  | 				// Create the command that can be used to apply the style.
 | |||
|  | 				editor.addCommand( commandName, new CKEDITOR.styleCommand( style, { | |||
|  | 					contentForms: forms | |||
|  | 				} ) ); | |||
|  | 
 | |||
|  | 				// Register the button, if the button plugin is loaded.
 | |||
|  | 				if ( editor.ui.addButton ) { | |||
|  | 					editor.ui.addButton( buttonName, { | |||
|  | 						label: buttonLabel, | |||
|  | 						command: commandName, | |||
|  | 						toolbar: 'basicstyles,' + ( order += 10 ) | |||
|  | 					} ); | |||
|  | 				} | |||
|  | 			}; | |||
|  | 
 | |||
|  | 		var contentForms = { | |||
|  | 				bold: [ | |||
|  | 					'strong', | |||
|  | 					'b', | |||
|  | 					[ 'span', function( el ) { | |||
|  | 						var fw = el.styles[ 'font-weight' ]; | |||
|  | 						return fw == 'bold' || +fw >= 700; | |||
|  | 					} ] | |||
|  | 				], | |||
|  | 
 | |||
|  | 				italic: [ | |||
|  | 					'em', | |||
|  | 					'i', | |||
|  | 					[ 'span', function( el ) { | |||
|  | 						return el.styles[ 'font-style' ] == 'italic'; | |||
|  | 					} ] | |||
|  | 				], | |||
|  | 
 | |||
|  | 				underline: [ | |||
|  | 					'u', | |||
|  | 					[ 'span', function( el ) { | |||
|  | 						return el.styles[ 'text-decoration' ] == 'underline'; | |||
|  | 					} ] | |||
|  | 				], | |||
|  | 
 | |||
|  | 				strike: [ | |||
|  | 					's', | |||
|  | 					'strike', | |||
|  | 					[ 'span', function( el ) { | |||
|  | 						return el.styles[ 'text-decoration' ] == 'line-through'; | |||
|  | 					} ] | |||
|  | 				], | |||
|  | 
 | |||
|  | 				subscript: [ | |||
|  | 					'sub' | |||
|  | 				], | |||
|  | 
 | |||
|  | 				superscript: [ | |||
|  | 					'sup' | |||
|  | 				] | |||
|  | 			}, | |||
|  | 			config = editor.config, | |||
|  | 			lang = editor.lang.basicstyles; | |||
|  | 
 | |||
|  | 		addButtonCommand( 'Bold', lang.bold, 'bold', config.coreStyles_bold ); | |||
|  | 		addButtonCommand( 'Italic', lang.italic, 'italic', config.coreStyles_italic ); | |||
|  | 		addButtonCommand( 'Underline', lang.underline, 'underline', config.coreStyles_underline ); | |||
|  | 		addButtonCommand( 'Strike', lang.strike, 'strike', config.coreStyles_strike ); | |||
|  | 		addButtonCommand( 'Subscript', lang.subscript, 'subscript', config.coreStyles_subscript ); | |||
|  | 		addButtonCommand( 'Superscript', lang.superscript, 'superscript', config.coreStyles_superscript ); | |||
|  | 
 | |||
|  | 		editor.setKeystroke( [ | |||
|  | 			[ CKEDITOR.CTRL + 66 /*B*/, 'bold' ], | |||
|  | 			[ CKEDITOR.CTRL + 73 /*I*/, 'italic' ], | |||
|  | 			[ CKEDITOR.CTRL + 85 /*U*/, 'underline' ] | |||
|  | 			] ); | |||
|  | 	} | |||
|  | } ); | |||
|  | 
 | |||
|  | // Basic Inline Styles.
 | |||
|  | 
 | |||
|  | /** | |||
|  |  * The style definition that applies the **bold** style to the text. | |||
|  |  * | |||
|  |  *		config.coreStyles_bold = { element: 'b', overrides: 'strong' }; | |||
|  |  * | |||
|  |  *		config.coreStyles_bold = { | |||
|  |  *			element: 'span', | |||
|  |  *			attributes: { 'class': 'Bold' } | |||
|  |  *		}; | |||
|  |  * | |||
|  |  * @cfg | |||
|  |  * @member CKEDITOR.config | |||
|  |  */ | |||
|  | CKEDITOR.config.coreStyles_bold = { element: 'strong', overrides: 'b' }; | |||
|  | 
 | |||
|  | /** | |||
|  |  * The style definition that applies the *italics* style to the text. | |||
|  |  * | |||
|  |  *		config.coreStyles_italic = { element: 'i', overrides: 'em' }; | |||
|  |  * | |||
|  |  *		CKEDITOR.config.coreStyles_italic = { | |||
|  |  *			element: 'span', | |||
|  |  *			attributes: { 'class': 'Italic' } | |||
|  |  *		}; | |||
|  |  * | |||
|  |  * @cfg | |||
|  |  * @member CKEDITOR.config | |||
|  |  */ | |||
|  | CKEDITOR.config.coreStyles_italic = { element: 'em', overrides: 'i' }; | |||
|  | 
 | |||
|  | /** | |||
|  |  * The style definition that applies the <u>underline</u> style to the text. | |||
|  |  * | |||
|  |  *		CKEDITOR.config.coreStyles_underline = { | |||
|  |  *			element: 'span', | |||
|  |  *			attributes: { 'class': 'Underline' } | |||
|  |  *		}; | |||
|  |  * | |||
|  |  * @cfg | |||
|  |  * @member CKEDITOR.config | |||
|  |  */ | |||
|  | CKEDITOR.config.coreStyles_underline = { element: 'u' }; | |||
|  | 
 | |||
|  | /** | |||
|  |  * The style definition that applies the <strike>strike-through</strike> style to the text. | |||
|  |  * | |||
|  |  *		CKEDITOR.config.coreStyles_strike = { | |||
|  |  *			element: 'span', | |||
|  |  *			attributes: { 'class': 'StrikeThrough' }, | |||
|  |  *			overrides: 'strike' | |||
|  |  *		}; | |||
|  |  * | |||
|  |  * @cfg | |||
|  |  * @member CKEDITOR.config | |||
|  |  */ | |||
|  | CKEDITOR.config.coreStyles_strike = { element: 's', overrides: 'strike' }; | |||
|  | 
 | |||
|  | /** | |||
|  |  * The style definition that applies the subscript style to the text. | |||
|  |  * | |||
|  |  *		CKEDITOR.config.coreStyles_subscript = { | |||
|  |  *			element: 'span', | |||
|  |  *			attributes: { 'class': 'Subscript' }, | |||
|  |  *			overrides: 'sub' | |||
|  |  *		}; | |||
|  |  * | |||
|  |  * @cfg | |||
|  |  * @member CKEDITOR.config | |||
|  |  */ | |||
|  | CKEDITOR.config.coreStyles_subscript = { element: 'sub' }; | |||
|  | 
 | |||
|  | /** | |||
|  |  * The style definition that applies the superscript style to the text. | |||
|  |  * | |||
|  |  *		CKEDITOR.config.coreStyles_superscript = { | |||
|  |  *			element: 'span', | |||
|  |  *			attributes: { 'class': 'Superscript' }, | |||
|  |  *			overrides: 'sup' | |||
|  |  *		}; | |||
|  |  * | |||
|  |  * @cfg | |||
|  |  * @member CKEDITOR.config | |||
|  |  */ | |||
|  | CKEDITOR.config.coreStyles_superscript = { element: 'sup' }; |