Déplacement préalable à l'eggification.
[ckeditor.git] / Products / ckeditor / skins / ckeditor / samples / plugins / htmlwriter / outputhtml.html
diff --git a/Products/ckeditor/skins/ckeditor/samples/plugins/htmlwriter/outputhtml.html b/Products/ckeditor/skins/ckeditor/samples/plugins/htmlwriter/outputhtml.html
new file mode 100644 (file)
index 0000000..f25697d
--- /dev/null
@@ -0,0 +1,221 @@
+<!DOCTYPE html>\r
+<!--\r
+Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.md or http://ckeditor.com/license\r
+-->\r
+<html>\r
+<head>\r
+       <meta charset="utf-8">\r
+       <title>HTML Compliant Output &mdash; CKEditor Sample</title>\r
+       <script src="../../../ckeditor.js"></script>\r
+       <script src="../../../samples/sample.js"></script>\r
+       <link href="../../../samples/sample.css" rel="stylesheet">\r
+       <meta name="ckeditor-sample-required-plugins" content="sourcearea">\r
+       <meta name="ckeditor-sample-name" content="Output HTML">\r
+       <meta name="ckeditor-sample-group" content="Advanced Samples">\r
+       <meta name="ckeditor-sample-description" content="Configuring CKEditor to produce legacy HTML 4 code.">\r
+</head>\r
+<body>\r
+       <h1 class="samples">\r
+               <a href="../../../samples/index.html">CKEditor Samples</a> &raquo; Producing HTML Compliant Output\r
+       </h1>\r
+       <div class="description">\r
+               <p>\r
+                       This sample shows how to configure CKEditor to output valid\r
+                       <a class="samples" href="http://www.w3.org/TR/html401/">HTML 4.01</a> code.\r
+                       Traditional HTML elements like <code>&lt;b&gt;</code>,\r
+                       <code>&lt;i&gt;</code>, and <code>&lt;font&gt;</code> are used in place of\r
+                       <code>&lt;strong&gt;</code>, <code>&lt;em&gt;</code>, and CSS styles.\r
+               </p>\r
+               <p>\r
+                       To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard\r
+                       JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes.\r
+               </p>\r
+               <p>\r
+                       A snippet of the configuration code can be seen below; check the source of this page for\r
+                       full definition:\r
+               </p>\r
+<pre class="samples">\r
+CKEDITOR.replace( '<em>textarea_id</em>', {\r
+       coreStyles_bold: { element: 'b' },\r
+       coreStyles_italic: { element: 'i' },\r
+\r
+       fontSize_style: {\r
+               element: 'font',\r
+               attributes: { 'size': '#(size)' }\r
+       }\r
+\r
+       ...\r
+});</pre>\r
+       </div>\r
+       <form action="../../../samples/sample_posteddata.php" method="post">\r
+               <p>\r
+                       <label for="editor1">\r
+                               Editor 1:\r
+                       </label>\r
+                       <textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;b&gt;sample text&lt;/b&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>\r
+                       <script>\r
+\r
+                               CKEDITOR.replace( 'editor1', {\r
+                                       /*\r
+                                        * Ensure that htmlwriter plugin, which is required for this sample, is loaded.\r
+                                        */\r
+                                       extraPlugins: 'htmlwriter',\r
+\r
+                                       /*\r
+                                        * Style sheet for the contents\r
+                                        */\r
+                                       contentsCss: 'body {color:#000; background-color#:FFF;}',\r
+\r
+                                       /*\r
+                                        * Simple HTML5 doctype\r
+                                        */\r
+                                       docType: '<!DOCTYPE HTML>',\r
+\r
+                                       /*\r
+                                        * Allowed content rules which beside limiting allowed HTML\r
+                                        * will also take care of transforming styles to attributes\r
+                                        * (currently only for img - see transformation rules defined below).\r
+                                        *\r
+                                        * Read more: http://docs.ckeditor.com/#!/guide/dev_advanced_content_filter\r
+                                        */\r
+                                       allowedContent:\r
+                                               'h1 h2 h3 p pre[align]; ' +\r
+                                               'blockquote code kbd samp var del ins cite q b i u strike ul ol li hr table tbody tr td th caption; ' +\r
+                                               'img[!src,alt,align,width,height]; font[!face]; font[!family]; font[!color]; font[!size]; font{!background-color}; a[!href]; a[!name]',\r
+\r
+                                       /*\r
+                                        * Core styles.\r
+                                        */\r
+                                       coreStyles_bold: { element: 'b' },\r
+                                       coreStyles_italic: { element: 'i' },\r
+                                       coreStyles_underline: { element: 'u' },\r
+                                       coreStyles_strike: { element: 'strike' },\r
+\r
+                                       /*\r
+                                        * Font face.\r
+                                        */\r
+\r
+                                       // Define the way font elements will be applied to the document.\r
+                                       // The "font" element will be used.\r
+                                       font_style: {\r
+                                               element: 'font',\r
+                                               attributes: { 'face': '#(family)' }\r
+                                       },\r
+\r
+                                       /*\r
+                                        * Font sizes.\r
+                                        */\r
+                                       fontSize_sizes: 'xx-small/1;x-small/2;small/3;medium/4;large/5;x-large/6;xx-large/7',\r
+                                       fontSize_style: {\r
+                                               element: 'font',\r
+                                               attributes: { 'size': '#(size)' }\r
+                                       },\r
+\r
+                                       /*\r
+                                        * Font colors.\r
+                                        */\r
+\r
+                                       colorButton_foreStyle: {\r
+                                               element: 'font',\r
+                                               attributes: { 'color': '#(color)' }\r
+                                       },\r
+\r
+                                       colorButton_backStyle: {\r
+                                               element: 'font',\r
+                                               styles: { 'background-color': '#(color)' }\r
+                                       },\r
+\r
+                                       /*\r
+                                        * Styles combo.\r
+                                        */\r
+                                       stylesSet: [\r
+                                               { name: 'Computer Code', element: 'code' },\r
+                                               { name: 'Keyboard Phrase', element: 'kbd' },\r
+                                               { name: 'Sample Text', element: 'samp' },\r
+                                               { name: 'Variable', element: 'var' },\r
+                                               { name: 'Deleted Text', element: 'del' },\r
+                                               { name: 'Inserted Text', element: 'ins' },\r
+                                               { name: 'Cited Work', element: 'cite' },\r
+                                               { name: 'Inline Quotation', element: 'q' }\r
+                                       ],\r
+\r
+                                       on: {\r
+                                               pluginsLoaded: configureTransformations,\r
+                                               loaded: configureHtmlWriter\r
+                                       }\r
+                               });\r
+\r
+                               /*\r
+                                * Add missing content transformations.\r
+                                */\r
+                               function configureTransformations( evt ) {\r
+                                       var editor = evt.editor;\r
+\r
+                                       editor.dataProcessor.htmlFilter.addRules( {\r
+                                               attributes: {\r
+                                                       style: function( value, element ) {\r
+                                                               // Return #RGB for background and border colors\r
+                                                               return CKEDITOR.tools.convertRgbToHex( value );\r
+                                                       }\r
+                                               }\r
+                                       } );\r
+\r
+                                       // Default automatic content transformations do not yet take care of\r
+                                       // align attributes on blocks, so we need to add our own transformation rules.\r
+                                       function alignToAttribute( element ) {\r
+                                               if ( element.styles[ 'text-align' ] ) {\r
+                                                       element.attributes.align = element.styles[ 'text-align' ];\r
+                                                       delete element.styles[ 'text-align' ];\r
+                                               }\r
+                                       }\r
+                                       editor.filter.addTransformations( [\r
+                                               [ { element: 'p',       right: alignToAttribute } ],\r
+                                               [ { element: 'h1',      right: alignToAttribute } ],\r
+                                               [ { element: 'h2',      right: alignToAttribute } ],\r
+                                               [ { element: 'h3',      right: alignToAttribute } ],\r
+                                               [ { element: 'pre',     right: alignToAttribute } ]\r
+                                       ] );\r
+                               }\r
+\r
+                               /*\r
+                                * Adjust the behavior of htmlWriter to make it output HTML like FCKeditor.\r
+                                */\r
+                               function configureHtmlWriter( evt ) {\r
+                                       var editor = evt.editor,\r
+                                               dataProcessor = editor.dataProcessor;\r
+\r
+                                       // Out self closing tags the HTML4 way, like <br>.\r
+                                       dataProcessor.writer.selfClosingEnd = '>';\r
+\r
+                                       // Make output formatting behave similar to FCKeditor.\r
+                                       var dtd = CKEDITOR.dtd;\r
+                                       for ( var e in CKEDITOR.tools.extend( {}, dtd.$nonBodyContent, dtd.$block, dtd.$listItem, dtd.$tableContent ) ) {\r
+                                               dataProcessor.writer.setRules( e, {\r
+                                                       indent: true,\r
+                                                       breakBeforeOpen: true,\r
+                                                       breakAfterOpen: false,\r
+                                                       breakBeforeClose: !dtd[ e ][ '#' ],\r
+                                                       breakAfterClose: true\r
+                                               });\r
+                                       }\r
+                               }\r
+\r
+                       </script>\r
+               </p>\r
+               <p>\r
+                       <input type="submit" value="Submit">\r
+               </p>\r
+       </form>\r
+       <div id="footer">\r
+               <hr>\r
+               <p>\r
+                       CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
+               </p>\r
+               <p id="copy">\r
+                       Copyright &copy; 2003-2014, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Knabben. All rights reserved.\r
+               </p>\r
+       </div>\r
+</body>\r
+</html>\r