summaryrefslogtreecommitdiff
path: root/plugins/basicstyles/plugin.js
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/basicstyles/plugin.js')
-rw-r--r--plugins/basicstyles/plugin.js188
1 files changed, 188 insertions, 0 deletions
diff --git a/plugins/basicstyles/plugin.js b/plugins/basicstyles/plugin.js
new file mode 100644
index 0000000..73db08c
--- /dev/null
+++ b/plugins/basicstyles/plugin.js
@@ -0,0 +1,188 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html 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,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%
+ 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' };