docs: 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' ]
  			] );
  	}