activeadmin-ckeditor 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. data/.DS_Store +0 -0
  2. data/app/.DS_Store +0 -0
  3. data/app/assets/.DS_Store +0 -0
  4. data/app/assets/javascripts/.DS_Store +0 -0
  5. data/app/assets/javascripts/ckeditor/config.js +118 -0
  6. data/app/assets/stylesheets/.DS_Store +0 -0
  7. data/app/assets/stylesheets/activeadmin-ckeditor.css.sass +3 -0
  8. data/app/assets/stylesheets/ckeditor/.DS_Store +0 -0
  9. data/app/assets/stylesheets/ckeditor/plugins/.DS_Store +0 -0
  10. data/app/assets/stylesheets/ckeditor/plugins/autogrow/plugin.js +187 -0
  11. data/app/assets/stylesheets/ckeditor/plugins/autogrow/samples/autogrow.html +99 -0
  12. data/app/assets/stylesheets/ckeditor/plugins/floating-tools/README.md +20 -0
  13. data/app/assets/stylesheets/ckeditor/plugins/floating-tools/plugin.js +582 -0
  14. data/app/assets/stylesheets/ckeditor/plugins/imagepaste/docs/install.html +64 -0
  15. data/app/assets/stylesheets/ckeditor/plugins/imagepaste/docs/styles.css +59 -0
  16. data/app/assets/stylesheets/ckeditor/plugins/imagepaste/plugin.js +82 -0
  17. data/app/assets/stylesheets/ckeditor/plugins/stylesheetparser/plugin.js +152 -0
  18. data/app/assets/stylesheets/ckeditor/plugins/stylesheetparser/samples/assets/sample.css +70 -0
  19. data/app/assets/stylesheets/ckeditor/plugins/stylesheetparser/samples/stylesheetparser.html +82 -0
  20. data/app/assets/stylesheets/ckeditor/plugins/texttransform/LICENSE.md +28 -0
  21. data/app/assets/stylesheets/ckeditor/plugins/texttransform/README.md +55 -0
  22. data/app/assets/stylesheets/ckeditor/plugins/texttransform/images/transformCapitalize.png +0 -0
  23. data/app/assets/stylesheets/ckeditor/plugins/texttransform/images/transformSwitcher.png +0 -0
  24. data/app/assets/stylesheets/ckeditor/plugins/texttransform/images/transformToLower.png +0 -0
  25. data/app/assets/stylesheets/ckeditor/plugins/texttransform/images/transformToUpper.png +0 -0
  26. data/app/assets/stylesheets/ckeditor/plugins/texttransform/lang/en.js +17 -0
  27. data/app/assets/stylesheets/ckeditor/plugins/texttransform/lang/tr.js +41 -0
  28. data/app/assets/stylesheets/ckeditor/plugins/texttransform/plugin.js +151 -0
  29. data/app/assets/stylesheets/ckeditor/plugins/youtube/images/icon.png +0 -0
  30. data/app/assets/stylesheets/ckeditor/plugins/youtube/lang/de.js +21 -0
  31. data/app/assets/stylesheets/ckeditor/plugins/youtube/lang/en.js +21 -0
  32. data/app/assets/stylesheets/ckeditor/plugins/youtube/lang/fr.js +21 -0
  33. data/app/assets/stylesheets/ckeditor/plugins/youtube/lang/hu.js +21 -0
  34. data/app/assets/stylesheets/ckeditor/plugins/youtube/lang/it.js +21 -0
  35. data/app/assets/stylesheets/ckeditor/plugins/youtube/lang/ja.js +21 -0
  36. data/app/assets/stylesheets/ckeditor/plugins/youtube/lang/pt.js +21 -0
  37. data/app/assets/stylesheets/ckeditor/plugins/youtube/lang/ru.js +21 -0
  38. data/app/assets/stylesheets/ckeditor/plugins/youtube/lang/tr.js +21 -0
  39. data/app/assets/stylesheets/ckeditor/plugins/youtube/plugin.js +321 -0
  40. data/app/assets/stylesheets/ckeditor/skins/.DS_Store +0 -0
  41. data/app/assets/stylesheets/ckeditor/skins/moono/dev/icons16.png +0 -0
  42. data/app/assets/stylesheets/ckeditor/skins/moono/dev/icons16.svg +2106 -0
  43. data/app/assets/stylesheets/ckeditor/skins/moono/dev/icons32.png +0 -0
  44. data/app/assets/stylesheets/ckeditor/skins/moono/dev/icons32.svg +2442 -0
  45. data/app/assets/stylesheets/ckeditor/skins/moono/dev/locations.json +139 -0
  46. data/app/assets/stylesheets/ckeditor/skins/moono/dialog.css.scss +7 -0
  47. data/app/assets/stylesheets/ckeditor/skins/moono/dialog_ie.css.scss +7 -0
  48. data/app/assets/stylesheets/ckeditor/skins/moono/dialog_ie7.css.scss +7 -0
  49. data/app/assets/stylesheets/ckeditor/skins/moono/dialog_ie8.css.scss +8 -0
  50. data/app/assets/stylesheets/ckeditor/skins/moono/dialog_iequirks.css.scss +8 -0
  51. data/app/assets/stylesheets/ckeditor/skins/moono/dialog_opera.css.scss +8 -0
  52. data/app/assets/stylesheets/ckeditor/skins/moono/editor.css.scss +8 -0
  53. data/app/assets/stylesheets/ckeditor/skins/moono/editor_gecko.css.scss +8 -0
  54. data/app/assets/stylesheets/ckeditor/skins/moono/editor_ie.css.scss +8 -0
  55. data/app/assets/stylesheets/ckeditor/skins/moono/editor_ie7.css.scss +8 -0
  56. data/app/assets/stylesheets/ckeditor/skins/moono/editor_ie8.css.scss +8 -0
  57. data/app/assets/stylesheets/ckeditor/skins/moono/editor_iequirks.css.scss +8 -0
  58. data/app/assets/stylesheets/ckeditor/skins/moono/images/arrow.png +0 -0
  59. data/app/assets/stylesheets/ckeditor/skins/moono/images/close.png +0 -0
  60. data/app/assets/stylesheets/ckeditor/skins/moono/images/hidpi/close.png +0 -0
  61. data/app/assets/stylesheets/ckeditor/skins/moono/images/hidpi/lock-open.png +0 -0
  62. data/app/assets/stylesheets/ckeditor/skins/moono/images/hidpi/lock.png +0 -0
  63. data/app/assets/stylesheets/ckeditor/skins/moono/images/hidpi/refresh.png +0 -0
  64. data/app/assets/stylesheets/ckeditor/skins/moono/images/lock-open.png +0 -0
  65. data/app/assets/stylesheets/ckeditor/skins/moono/images/lock.png +0 -0
  66. data/app/assets/stylesheets/ckeditor/skins/moono/images/refresh.png +0 -0
  67. data/app/assets/stylesheets/ckeditor/skins/moono/readme.md +51 -0
  68. data/app/assets/stylesheets/ckeditor/skins/moono/skin.js +10 -0
  69. data/lib/.DS_Store +0 -0
  70. data/lib/activeadmin-ckeditor.rb +3 -3
  71. data/lib/activeadmin-ckeditor/engine.rb +9 -0
  72. data/lib/activeadmin-ckeditor/version.rb +1 -1
  73. data/lib/generators/.DS_Store +0 -0
  74. data/lib/generators/activeadmin/.DS_Store +0 -0
  75. data/lib/generators/activeadmin/ckeditor/install_generator.rb +19 -0
  76. metadata +74 -1
@@ -0,0 +1,64 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2
+ "http://www.w3.org/TR/html4/loose.dtd">
3
+ <html lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6
+ <title>Image paste plugin</title>
7
+ <link href="styles.css" rel="stylesheet" type="text/css">
8
+ </head>
9
+
10
+ <body>
11
+ <h1>Image paste Plugin for CKEditor</h1>
12
+
13
+ <h2>Introduction</h2>
14
+ <p>This is a plugin that automatically uploads to the server the images pasted from the clipboard with Firefox in <a href="http://www.ckeditor.com">CKEditor</a>.</p>
15
+
16
+ <h3 id="contact">Author:</h3>
17
+ <p><a href="mailto:amla70@gmail.com">Alfonso Mart&iacute;nez de Lizarrondo</a></p>
18
+
19
+ <h3>Version history: </h3>
20
+ <ol>
21
+ <li>1.0: 28-September-2011. First public version.</li>
22
+ </ol>
23
+
24
+ <h2>Installation</h2>
25
+ <h3>1. Copying the files</h3>
26
+ <p>Extract the contents of the zip in you plugins directory, so it ends up like
27
+ this<br>
28
+ <!--<img src="installation.png" alt="Screenshot of installation" width="311" height="346" longdesc="#install">-->
29
+ </p>
30
+ <pre id="--install">
31
+ ckeditor\
32
+ ...
33
+ images\
34
+ lang\
35
+ plugins\
36
+ ...
37
+ imagepaste\
38
+ plugin.js
39
+ docs\
40
+ install.html
41
+ ...
42
+ skins\
43
+ themes\
44
+ </pre>
45
+ <h3>2. Adding it to CKEditor</h3>
46
+ <p>Now add the plugin in your <em>config.js</em> or custom js configuration
47
+ file:
48
+ <code>config.extraPlugins='imagepaste'; </code>
49
+ </p>
50
+
51
+ <h3>3. Configuration</h3>
52
+ <p>You have to configure the filebrowserImageUploadUrl entry as you might have already done to allow the user to upload images.</p>
53
+
54
+ <h3>4. Use it</h3>
55
+ <p>Using Firefox, paste an image into the body of CKEditor. That image will be uploaded to the server and it will use the correct URL instead of "data:".</p>
56
+
57
+ <!--
58
+ <h2>Final notes</h2>
59
+ -->
60
+
61
+ <h2>Disclaimers</h2>
62
+ <p>CKEditor is &copy; CKSource.com</p>
63
+ </body>
64
+ </html>
@@ -0,0 +1,59 @@
1
+ body {
2
+ font-family: Arial, Helvetica, sans-serif;
3
+ font-size: 90%;
4
+ }
5
+ h1 {
6
+ text-align:center;
7
+ font-size:180%;
8
+ }
9
+ h2 {
10
+ border-bottom:2px solid #CCC;
11
+ margin:1em 0 0.4em 0;
12
+ }
13
+ h3 {
14
+ margin-bottom:0.4em;
15
+ }
16
+ p {
17
+ margin:0 0 1em 1em;
18
+ text-align:justify;
19
+ }
20
+ ol {
21
+ margin:0 0 1.2em 1em;
22
+ padding:0;
23
+ list-style-type:none;
24
+ }
25
+ ol li {
26
+ margin:0.2em 0;
27
+ }
28
+ pre, code {
29
+ font-size:100%;
30
+ font-family:"Courier New", Courier, mono;
31
+ background-color: #CCCCCC;
32
+ border:1px solid #999;
33
+ padding:0.2em 1em;
34
+ margin: 0.4em 0;
35
+ display:block;
36
+ white-space: pre;
37
+ overflow: auto;
38
+ }
39
+ form {
40
+ margin:0 0 0 1em;
41
+ }
42
+ span.key {
43
+ color: #006600;
44
+ }
45
+ #install {
46
+ display:none
47
+ }
48
+ #languages ul {
49
+ display:inline;
50
+ list-style-type:none;
51
+ margin:0;
52
+ padding:0;
53
+ }
54
+ #languages li {
55
+ display:inline;
56
+ margin:0;
57
+ padding:0;
58
+ vertical-align:bottom;
59
+ }
@@ -0,0 +1,82 @@
1
+ /*
2
+ * @file image paste plugin for CKEditor
3
+ Feature introduced in: https://bugzilla.mozilla.org/show_bug.cgi?id=490879
4
+ doesn't include images inside HTML (paste from word): https://bugzilla.mozilla.org/show_bug.cgi?id=665341
5
+ * Copyright (C) 2011 Alfonso Martínez de Lizarrondo
6
+ *
7
+ * == BEGIN LICENSE ==
8
+ *
9
+ * Licensed under the terms of any of the following licenses at your
10
+ * choice:
11
+ *
12
+ * - GNU General Public License Version 2 or later (the "GPL")
13
+ * http://www.gnu.org/licenses/gpl.html
14
+ *
15
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
16
+ * http://www.gnu.org/licenses/lgpl.html
17
+ *
18
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
19
+ * http://www.mozilla.org/MPL/MPL-1.1.html
20
+ *
21
+ * == END LICENSE ==
22
+ *
23
+ */
24
+
25
+ // Handles image pasting in Firefox
26
+ CKEDITOR.plugins.add( 'imagepaste',
27
+ {
28
+ init : function( editor )
29
+ {
30
+
31
+ // Paste from clipboard:
32
+ editor.on( 'paste', function(e) {
33
+
34
+ var html = e.data.html;
35
+ if (!html)
36
+ return;
37
+
38
+ // Replace data: images in Firefox and upload them
39
+ e.data.html = html.replace( /<img src="data:image\/png;base64,.*?" alt="">/g, function( img )
40
+ {
41
+ var data = img.match(/"data:image\/png;base64,(.*?)"/)[1];
42
+ var id = CKEDITOR.tools.getNextId();
43
+
44
+ var url= editor.config.filebrowserImageUploadUrl + '&CKEditor=' + editor.name + '&CKEditorFuncNum=2&langCode=' + editor.langCode;
45
+
46
+ var xhr = new XMLHttpRequest();
47
+
48
+ xhr.open("POST", url);
49
+ xhr.onload = function() {
50
+ // Upon finish, get the url and update the file
51
+ var imageUrl = xhr.responseText.match(/2,\s*'(.*?)',/)[1];
52
+ var theImage = editor.document.getById( id );
53
+ theImage.data( 'cke-saved-src', imageUrl);
54
+ theImage.setAttribute( 'src', imageUrl);
55
+ theImage.removeAttribute( 'id' );
56
+ }
57
+
58
+ // Create the multipart data upload. Is it possible somehow to use FormData instead?
59
+ var BOUNDARY = "---------------------------1966284435497298061834782736";
60
+ var rn = "\r\n";
61
+ var req = "--" + BOUNDARY;
62
+
63
+ req += rn + "Content-Disposition: form-data; name=\"upload\"";
64
+
65
+ var bin = window.atob( data );
66
+ // add timestamp?
67
+ req += "; filename=\"" + id + ".png\"" + rn + "Content-type: image/png";
68
+
69
+ req += rn + rn + bin + rn + "--" + BOUNDARY;
70
+
71
+ req += "--";
72
+
73
+ xhr.setRequestHeader("Content-Type", "multipart/form-data; boundary=" + BOUNDARY);
74
+ xhr.sendAsBinary(req);
75
+
76
+ return img.replace(/>/, ' id="' + id + '">')
77
+
78
+ });
79
+ });
80
+
81
+ } //Init
82
+ } );
@@ -0,0 +1,152 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @fileOverview stylesheetParser plugin.
8
+ */
9
+
10
+ (function() {
11
+ // We want to extract only the elements with classes defined in the stylesheets:
12
+ function parseClasses( aRules, skipSelectors, validSelectors ) {
13
+ // aRules are just the different rules in the style sheets
14
+ // We want to merge them and them split them by commas, so we end up with only
15
+ // the selectors
16
+ var s = aRules.join( ' ' );
17
+ // Remove selectors splitting the elements, leave only the class selector (.)
18
+ s = s.replace( /(,|>|\+|~)/g, ' ' );
19
+ // Remove attribute selectors: table[border="0"]
20
+ s = s.replace( /\[[^\]]*/g, '' );
21
+ // Remove Ids: div#main
22
+ s = s.replace( /#[^\s]*/g, '' );
23
+ // Remove pseudo-selectors and pseudo-elements: :hover :nth-child(2n+1) ::before
24
+ s = s.replace( /\:{1,2}[^\s]*/g, '' );
25
+
26
+ s = s.replace( /\s+/g, ' ' );
27
+
28
+ var aSelectors = s.split( ' ' ),
29
+ aClasses = [];
30
+
31
+ for ( var i = 0; i < aSelectors.length; i++ ) {
32
+ var selector = aSelectors[ i ];
33
+
34
+ if ( validSelectors.test( selector ) && !skipSelectors.test( selector ) ) {
35
+ // If we still don't know about this one, add it
36
+ if ( CKEDITOR.tools.indexOf( aClasses, selector ) == -1 )
37
+ aClasses.push( selector );
38
+ }
39
+ }
40
+
41
+ return aClasses;
42
+ }
43
+
44
+ function LoadStylesCSS( theDoc, skipSelectors, validSelectors ) {
45
+ var styles = [],
46
+ // It will hold all the rules of the applied stylesheets (except those internal to CKEditor)
47
+ aRules = [],
48
+ i;
49
+
50
+ for ( i = 0; i < theDoc.styleSheets.length; i++ ) {
51
+ var sheet = theDoc.styleSheets[ i ],
52
+ node = sheet.ownerNode || sheet.owningElement;
53
+
54
+ // Skip the internal stylesheets
55
+ if ( node.getAttribute( 'data-cke-temp' ) )
56
+ continue;
57
+
58
+ // Exclude stylesheets injected by extensions
59
+ if ( sheet.href && sheet.href.substr( 0, 9 ) == 'chrome://' )
60
+ continue;
61
+
62
+ // Bulletproof with x-domain content stylesheet.
63
+ try {
64
+ var sheetRules = sheet.cssRules || sheet.rules;
65
+ for ( var j = 0; j < sheetRules.length; j++ )
66
+ aRules.push( sheetRules[ j ].selectorText );
67
+ } catch ( e ) {}
68
+ }
69
+
70
+ var aClasses = parseClasses( aRules, skipSelectors, validSelectors );
71
+
72
+ // Add each style to our "Styles" collection.
73
+ for ( i = 0; i < aClasses.length; i++ ) {
74
+ var oElement = aClasses[ i ].split( '.' ),
75
+ element = oElement[ 0 ].toLowerCase(),
76
+ sClassName = oElement[ 1 ];
77
+
78
+ styles.push({
79
+ name: element + '.' + sClassName,
80
+ element: element,
81
+ attributes: { 'class': sClassName }
82
+ });
83
+ }
84
+
85
+ return styles;
86
+ }
87
+
88
+ // Register a plugin named "stylesheetparser".
89
+ CKEDITOR.plugins.add( 'stylesheetparser', {
90
+ init: function( editor ) {
91
+ // Stylesheet parser is incompatible with filter (#10136).
92
+ editor.filter.disable();
93
+
94
+ var cachedDefinitions;
95
+
96
+ editor.once( 'stylesSet', function( evt ) {
97
+ // Cancel event and fire it again when styles are ready.
98
+ evt.cancel();
99
+
100
+ // Overwrite editor#getStylesSet asap (contentDom is the first moment
101
+ // when editor.document is ready), but before stylescombo reads styles set (priority 5).
102
+ editor.once( 'contentDom', function() {
103
+ editor.getStylesSet( function( definitions ) {
104
+ // Rules that must be skipped
105
+ var skipSelectors = editor.config.stylesheetParser_skipSelectors || ( /(^body\.|^\.)/i ),
106
+ // Rules that are valid
107
+ validSelectors = editor.config.stylesheetParser_validSelectors || ( /\w+\.\w+/ );
108
+
109
+ cachedDefinitions = definitions.concat( LoadStylesCSS( editor.document.$, skipSelectors, validSelectors ) );
110
+
111
+ editor.getStylesSet = function( callback ) {
112
+ if ( cachedDefinitions )
113
+ return callback( cachedDefinitions );
114
+ };
115
+
116
+ editor.fire( 'stylesSet', { styles: cachedDefinitions } );
117
+ } );
118
+ } );
119
+ }, null, null, 1 );
120
+ }
121
+ });
122
+ })();
123
+
124
+
125
+ /**
126
+ * A regular expression that defines whether a CSS rule will be
127
+ * skipped by the Stylesheet Parser plugin. A CSS rule matching
128
+ * the regular expression will be ignored and will not be available
129
+ * in the Styles drop-down list.
130
+ *
131
+ * // Ignore rules for body and caption elements, classes starting with "high", and any class defined for no specific element.
132
+ * config.stylesheetParser_skipSelectors = /(^body\.|^caption\.|\.high|^\.)/i;
133
+ *
134
+ * @since 3.6
135
+ * @cfg {RegExp} [stylesheetParser_skipSelectors=/(^body\.|^\.)/i]
136
+ * @member CKEDITOR.config
137
+ * @see CKEDITOR.config#stylesheetParser_validSelectors
138
+ */
139
+
140
+ /**
141
+ * A regular expression that defines which CSS rules will be used
142
+ * by the Stylesheet Parser plugin. A CSS rule matching the regular
143
+ * expression will be available in the Styles drop-down list.
144
+ *
145
+ * // Only add rules for p and span elements.
146
+ * config.stylesheetParser_validSelectors = /\^(p|span)\.\w+/;
147
+ *
148
+ * @since 3.6
149
+ * @cfg {RegExp} [stylesheetParser_validSelectors=/\w+\.\w+/]
150
+ * @member CKEDITOR.config
151
+ * @see CKEDITOR.config#stylesheetParser_skipSelectors
152
+ */
@@ -0,0 +1,70 @@
1
+ body
2
+ {
3
+ font-family: Arial, Verdana, sans-serif;
4
+ font-size: 12px;
5
+ color: #222;
6
+ background-color: #fff;
7
+ }
8
+
9
+ /* preserved spaces for rtl list item bullets. (#6249)*/
10
+ ol,ul,dl
11
+ {
12
+ padding-right:40px;
13
+ }
14
+
15
+ h1,h2,h3,h4
16
+ {
17
+ font-family: Georgia, Times, serif;
18
+ }
19
+
20
+ h1.lightBlue
21
+ {
22
+ color: #00A6C7;
23
+ font-size: 1.8em;
24
+ font-weight:normal;
25
+ }
26
+
27
+ h3.green
28
+ {
29
+ color: #739E39;
30
+ font-weight:normal;
31
+ }
32
+
33
+ span.markYellow { background-color: yellow; }
34
+ span.markGreen { background-color: lime; }
35
+
36
+ img.left
37
+ {
38
+ padding: 5px;
39
+ margin-right: 5px;
40
+ float:left;
41
+ border:2px solid #DDD;
42
+ }
43
+
44
+ img.right
45
+ {
46
+ padding: 5px;
47
+ margin-right: 5px;
48
+ float:right;
49
+ border:2px solid #DDD;
50
+ }
51
+
52
+ a.green
53
+ {
54
+ color:#739E39;
55
+ }
56
+
57
+ table.grey
58
+ {
59
+ background-color : #F5F5F5;
60
+ }
61
+
62
+ table.grey th
63
+ {
64
+ background-color : #DDD;
65
+ }
66
+
67
+ ul.square
68
+ {
69
+ list-style-type : square;
70
+ }
@@ -0,0 +1,82 @@
1
+ <!DOCTYPE html>
2
+ <!--
3
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
4
+ For licensing, see LICENSE.md or http://ckeditor.com/license
5
+ -->
6
+ <html>
7
+ <head>
8
+ <title>Using Stylesheet Parser Plugin &mdash; CKEditor Sample</title>
9
+ <meta charset="utf-8">
10
+ <script src="../../../ckeditor.js"></script>
11
+ <script src="../../../samples/sample.js"></script>
12
+ <link rel="stylesheet" href="../../../samples/sample.css">
13
+ <meta name="ckeditor-sample-required-plugins" content="stylescombo">
14
+ <meta name="ckeditor-sample-name" content="Stylesheet Parser plugin">
15
+ <meta name="ckeditor-sample-description" content="Using the Stylesheet Parser plugin to fill the Styles drop-down list based on the CSS classes available in the document stylesheet.">
16
+ <meta name="ckeditor-sample-group" content="Plugins">
17
+ </head>
18
+ <body>
19
+ <h1 class="samples">
20
+ <a href="../../../samples/index.html">CKEditor Samples</a> &raquo; Using the Stylesheet Parser Plugin
21
+ </h1>
22
+ <div class="description">
23
+ <p>
24
+ This sample shows how to configure CKEditor instances to use the
25
+ <strong>Stylesheet Parser</strong> (<code>stylesheetparser</code>) plugin that fills
26
+ the <strong>Styles</strong> drop-down list based on the CSS rules available in the document stylesheet.
27
+ </p>
28
+ <p>
29
+ To add a CKEditor instance using the <code>stylesheetparser</code> plugin, insert
30
+ the following JavaScript call into your code:
31
+ </p>
32
+ <pre class="samples">
33
+ CKEDITOR.replace( '<em>textarea_id</em>', {
34
+ <strong>extraPlugins: 'stylesheetparser'</strong>
35
+ });</pre>
36
+ <p>
37
+ Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
38
+ the <code>&lt;textarea&gt;</code> element to be replaced with CKEditor.
39
+ </p>
40
+ </div>
41
+ <form action="../../../samples/sample_posteddata.php" method="post">
42
+ <p>
43
+ <label for="editor1">
44
+ CKEditor using the <code>stylesheetparser</code> plugin with its default configuration:
45
+ </label>
46
+ <textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>
47
+ <script>
48
+
49
+ // This call can be placed at any point after the
50
+ // <textarea>, or inside a <head><script> in a
51
+ // window.onload event handler.
52
+
53
+ // Replace the <textarea id="editor"> with an CKEditor
54
+ // instance, using default configurations.
55
+ CKEDITOR.replace( 'editor1' , {
56
+ extraPlugins: 'stylesheetparser',
57
+
58
+ // Stylesheet for the contents.
59
+ contentsCss: 'assets/sample.css',
60
+
61
+ // Do not load the default Styles configuration.
62
+ stylesSet: []
63
+ });
64
+
65
+ </script>
66
+ </p>
67
+ <p>
68
+ <input type="submit" value="Submit">
69
+ </p>
70
+ </form>
71
+ <div id="footer">
72
+ <hr>
73
+ <p>
74
+ CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
75
+ </p>
76
+ <p id="copy">
77
+ Copyright &copy; 2003-2013, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
78
+ Knabben. All rights reserved.
79
+ </p>
80
+ </div>
81
+ </body>
82
+ </html>