+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
-<!--\r
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
-For licensing, see LICENSE.html or http://ckeditor.com/license\r
--->\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>HTML Compliant Output — CKEditor Sample</title>\r
- <meta content="text/html; charset=utf-8" http-equiv="content-type" />\r
- <script type="text/javascript" src="../ckeditor.js"></script>\r
- <script src="sample.js" type="text/javascript"></script>\r
- <link href="sample.css" rel="stylesheet" type="text/css" />\r
-</head>\r
-<body>\r
- <h1 class="samples">\r
- CKEditor Sample — 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><b></code>,\r
- <code><i></code>, and <code><font></code> are used in place of\r
- <code><strong></code>, <code><em></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">CKEDITOR.replace( '<em>textarea_id</em>',\r
- {\r
- coreStyles_bold : { element : 'b' },\r
- coreStyles_italic : { element : 'i' },\r
-\r
- fontSize_style :\r
- {\r
- element : 'font',\r
- attributes : { 'size' : '#(size)' }\r
- }\r
-\r
- // More definitions follow.\r
- });</pre>\r
- </div>\r
-\r
- <!-- This <div> holds alert messages to be display in the sample page. -->\r
- <div id="alerts">\r
- <noscript>\r
- <p>\r
- <strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript\r
- support, like yours, you should still see the contents (HTML data) and you should\r
- be able to edit it normally, without a rich editor interface.\r
- </p>\r
- </noscript>\r
- </div>\r
- <form action="sample_posteddata.php" method="post">\r
- <p>\r
- <label for="editor1">\r
- Editor 1:</label>\r
- <textarea cols="80" id="editor1" name="editor1" rows="10"><p>This is some <b>sample text</b>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p></textarea>\r
- <script type="text/javascript">\r
- //<![CDATA[\r
-\r
- CKEDITOR.replace( 'editor1',\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
- * 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
- // Define the way font elements will be applied to the document. The "font"\r
- // element will be used.\r
- font_style :\r
- {\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
- {\r
- element : 'font',\r
- attributes : { 'size' : '#(size)' }\r
- } ,\r
-\r
- /*\r
- * Font colors.\r
- */\r
- colorButton_enableMore : true,\r
-\r
- colorButton_foreStyle :\r
- {\r
- element : 'font',\r
- attributes : { 'color' : '#(color)' }\r
- },\r
-\r
- colorButton_backStyle :\r
- {\r
- element : 'font',\r
- styles : { 'background-color' : '#(color)' }\r
- },\r
-\r
- /*\r
- * Styles combo.\r
- */\r
- stylesSet :\r
- [\r
- { name : 'Computer Code', element : 'code' },\r
- { name : 'Keyboard Phrase', element : 'kbd' },\r
- { name : 'Sample Text', element : 'samp' },\r
- { name : 'Variable', element : 'var' },\r
-\r
- { name : 'Deleted Text', element : 'del' },\r
- { name : 'Inserted Text', element : 'ins' },\r
-\r
- { name : 'Cited Work', element : 'cite' },\r
- { name : 'Inline Quotation', element : 'q' }\r
- ],\r
-\r
- on : { 'instanceReady' : configureHtmlOutput }\r
- });\r
-\r
-/*\r
- * Adjust the behavior of the dataProcessor to avoid styles\r
- * and make it look like FCKeditor HTML output.\r
- */\r
-function configureHtmlOutput( ev )\r
-{\r
- var editor = ev.editor,\r
- dataProcessor = editor.dataProcessor,\r
- htmlFilter = dataProcessor && dataProcessor.htmlFilter;\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
- {\r
- dataProcessor.writer.setRules( e,\r
- {\r
- indent : true,\r
- breakBeforeOpen : true,\r
- breakAfterOpen : false,\r
- breakBeforeClose : !dtd[ e ][ '#' ],\r
- breakAfterClose : true\r
- });\r
- }\r
-\r
- // Output properties as attributes, not styles.\r
- htmlFilter.addRules(\r
- {\r
- elements :\r
- {\r
- $ : function( element )\r
- {\r
- // Output dimensions of images as width and height\r
- if ( element.name == 'img' )\r
- {\r
- var style = element.attributes.style;\r
-\r
- if ( style )\r
- {\r
- // Get the width from the style.\r
- var match = /(?:^|\s)width\s*:\s*(\d+)px/i.exec( style ),\r
- width = match && match[1];\r
-\r
- // Get the height from the style.\r
- match = /(?:^|\s)height\s*:\s*(\d+)px/i.exec( style );\r
- var height = match && match[1];\r
-\r
- if ( width )\r
- {\r
- element.attributes.style = element.attributes.style.replace( /(?:^|\s)width\s*:\s*(\d+)px;?/i , '' );\r
- element.attributes.width = width;\r
- }\r
-\r
- if ( height )\r
- {\r
- element.attributes.style = element.attributes.style.replace( /(?:^|\s)height\s*:\s*(\d+)px;?/i , '' );\r
- element.attributes.height = height;\r
- }\r
- }\r
- }\r
-\r
- // Output alignment of paragraphs using align\r
- if ( element.name == 'p' )\r
- {\r
- style = element.attributes.style;\r
-\r
- if ( style )\r
- {\r
- // Get the align from the style.\r
- match = /(?:^|\s)text-align\s*:\s*(\w*);/i.exec( style );\r
- var align = match && match[1];\r
-\r
- if ( align )\r
- {\r
- element.attributes.style = element.attributes.style.replace( /(?:^|\s)text-align\s*:\s*(\w*);?/i , '' );\r
- element.attributes.align = align;\r
- }\r
- }\r
- }\r
-\r
- if ( !element.attributes.style )\r
- delete element.attributes.style;\r
-\r
- return element;\r
- }\r
- },\r
-\r
- attributes :\r
- {\r
- style : function( value, element )\r
- {\r
- // Return #RGB for background and border colors\r
- return convertRGBToHex( value );\r
- }\r
- }\r
- } );\r
-}\r
-\r
-\r
-/**\r
-* Convert a CSS rgb(R, G, B) color back to #RRGGBB format.\r
-* @param Css style string (can include more than one color\r
-* @return Converted css style.\r
-*/\r
-function convertRGBToHex( cssStyle )\r
-{\r
- return cssStyle.replace( /(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi, function( match, red, green, blue )\r
- {\r
- red = parseInt( red, 10 ).toString( 16 );\r
- green = parseInt( green, 10 ).toString( 16 );\r
- blue = parseInt( blue, 10 ).toString( 16 );\r
- var color = [red, green, blue] ;\r
-\r
- // Add padding zeros if the hex value is less than 0x10.\r
- for ( var i = 0 ; i < color.length ; i++ )\r
- color[i] = String( '0' + color[i] ).slice( -2 ) ;\r
-\r
- return '#' + color.join( '' ) ;\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 © 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
- Knabben. All rights reserved.\r
- </p>\r
- </div>\r
-</body>\r
-</html>\r