[gen] Make ckeditor work with IE.

This commit is contained in:
Gaetan Delannay 2013-03-28 21:32:47 +01:00
parent e1e1b90921
commit 48c7c50122
5 changed files with 28 additions and 146 deletions

View file

@ -1832,8 +1832,7 @@ class BaseMixin:
if isinstance(v, int): sv = str(v) if isinstance(v, int): sv = str(v)
else: sv = '"%s"' % v else: sv = '"%s"' % v
ck.append('%s: %s' % (k, sv)) ck.append('%s: %s' % (k, sv))
res = 'CKEDITOR.replace("%s", {%s})' % (name, ', '.join(ck)) return 'CKEDITOR.replace("%s", {%s})' % (name, ', '.join(ck))
return res
def getCalendarInit(self, name, years): def getCalendarInit(self, name, years):
'''Gets the Javascript init code for displaying a calendar popup for '''Gets the Javascript init code for displaying a calendar popup for

View file

@ -2,27 +2,25 @@
Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved. Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license For licensing, see LICENSE.html or http://ckeditor.com/license
*/ */
CKEDITOR.editorConfig = function(config) { CKEDITOR.editorConfig = function(config) {
config.toolbar = 'Appy'; config.toolbar = 'Appy';
config.toolbar_Appy = [ config.toolbar_Appy = [
{name: 'basicstyles', items: ['Format', 'Bold', 'Italic', 'Underline', { name: 'basicstyles',
'Strike', 'Subscript', 'Superscript', items: ["Format", "Bold", "Italic", "Underline", "Strike",
'RemoveFormat'] }, "Subscript", "Superscript", "RemoveFormat"]},
{name: 'paragraph', items: ['NumberedList', 'BulletedList'] }, { name: 'paragraph',
{name: 'clipboard', items: ['Cut', 'Copy', 'Paste', 'PasteText', items: ["NumberedList","BulletedList"]},
'Undo', 'Redo']}, { name: 'clipboard',
{name: 'editing', items: ['Scayt']}, items: ["Cut","Copy","Paste","PasteText","Undo","Redo"]},
{name: 'insert', items: ['Image', 'Table', 'SpecialChar', 'Link', { name: 'editing', items: ["Scayt"]},
'Unlink', 'Source', 'Maximize']}, { name: 'insert',
items: ["Image","Table","SpecialChar","Link","Unlink","Source","Maximize"]}
]; ];
config.format_p = { element:'p', attributes:{'style':'margin:0;padding:0'}};
config.format_h1 = { element:'h1', attributes:{'style':'margin:0;padding:0'}};
config.format_h2 = { element:'h2', attributes:{'style':'margin:0;padding:0'}};
config.format_h3 = { element:'h3', attributes:{'style':'margin:0;padding:0'}};
config.format_h4 = { element:'h4', attributes:{'style':'margin:0;padding:0'}};
config.entities = false; config.entities = false;
config.entities_greek = false; config.entities_greek = false;
config.entities_latin = false; config.entities_latin = false;
config.fillEmptyBlocks = false; config.fillEmptyBlocks = false;
config.removePlugins = 'elementspath';
config.scayt_sLang = 'fr_BE';
config.scayt_uiTabs = '0,1,0';
}; };

View file

@ -3,25 +3,14 @@ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license For licensing, see LICENSE.html or http://ckeditor.com/license
*/ */
body { font-family: sans-serif, Arial, Verdana, "Trebuchet MS"; margin: 20px; body { font: 75% Helvetica,Arial,sans-serif; margin: 5px;
font-size: 12px; color: #333; background-color: #fff /* Transparent */ } color: #333; background-color: #fff }
.cke_editable { font-size: 13px; line-height: 1.6em } p { margin: 0; padding: 0 0 3px 0 }
blockquote { font-style: italic; table { border-collapse: collapse; border-spacing: 0 }
font-family: Georgia, Times, "Times New Roman", serif; padding: 2px 0;
border-style: solid; border-color: #ccc; border-width: 0 }
.cke_contents_ltr blockquote { padding-left: 20px; padding-right: 8px;
border-left-width: 5px }
.cke_contents_rtl blockquote { padding-left: 8px; padding-right: 20px;
border-right-width: 5px }
a { color: #0782C1 } a { color: #0782C1 }
ol,ul,dl { *margin-right: 0px; padding: 0 40px } h1,h2,h3,h4,h5,h6 { font-weight: bold; line-height: 1.2em }
h1,h2,h3,h4,h5,h6 { font-weight: normal; line-height: 1.2em } img.right { float: right; margin-left: 5px; padding: 5px }
hr { border: 0px; border-top: 1px solid #ccc } img.left { float: left; margin-right: 5px; padding: 5px }
img.right { border: 1px solid #ccc; float: right; margin-left: 15px;
padding: 5px }
img.left { border: 1px solid #ccc; float: left; margin-right: 15px;
padding: 5px }
img:hover { opacity: .9; filter: alpha(opacity = 90) } img:hover { opacity: .9; filter: alpha(opacity = 90) }
pre { white-space: pre-wrap; /* CSS 2.1 */ word-wrap: break-word; /* IE7 */ } pre { white-space: pre-wrap; word-wrap: break-word }
.marker { background-color: Yellow } ol,ul,dl { *margin-right: 0px; padding: 0 40px }
table { border-collapse: collapse; border-spacing: 0 }

View file

@ -2,110 +2,4 @@
* Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license * For licensing, see LICENSE.html or http://ckeditor.com/license
*/ */
CKEDITOR.stylesSet.add('default',[]);
// This file contains style definitions that can be used by CKEditor plugins.
//
// The most common use for it is the "stylescombo" plugin, which shows a combo
// in the editor toolbar, containing all styles. Other plugins instead, like
// the div plugin, use a subset of the styles on their feature.
//
// If you don't have plugins that depend on this file, you can simply ignore it.
// Otherwise it is strongly recommended to customize this file to match your
// website requirements and design properly.
CKEDITOR.stylesSet.add( 'default', [
/* Block Styles */
// These styles are already available in the "Format" combo ("format" plugin),
// so they are not needed here by default. You may enable them to avoid
// placing the "Format" combo in the toolbar, maintaining the same features.
/*
{ name: 'Paragraph', element: 'p' },
{ name: 'Heading 1', element: 'h1' },
{ name: 'Heading 2', element: 'h2' },
{ name: 'Heading 3', element: 'h3' },
{ name: 'Heading 4', element: 'h4' },
{ name: 'Heading 5', element: 'h5' },
{ name: 'Heading 6', element: 'h6' },
{ name: 'Preformatted Text',element: 'pre' },
{ name: 'Address', element: 'address' },
*/
{ name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } },
{ name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } },
{
name: 'Special Container',
element: 'div',
styles: {
padding: '5px 10px',
background: '#eee',
border: '1px solid #ccc'
}
},
/* Inline Styles */
// These are core styles available as toolbar buttons. You may opt enabling
// some of them in the Styles combo, removing them from the toolbar.
// (This requires the "stylescombo" plugin)
/*
{ name: 'Strong', element: 'strong', overrides: 'b' },
{ name: 'Emphasis', element: 'em' , overrides: 'i' },
{ name: 'Underline', element: 'u' },
{ name: 'Strikethrough', element: 'strike' },
{ name: 'Subscript', element: 'sub' },
{ name: 'Superscript', element: 'sup' },
*/
{ name: 'Marker', element: 'span', attributes: { 'class': 'marker' } },
{ name: 'Big', element: 'big' },
{ name: 'Small', element: 'small' },
{ name: 'Typewriter', element: 'tt' },
{ name: 'Computer Code', element: 'code' },
{ name: 'Keyboard Phrase', element: 'kbd' },
{ name: 'Sample Text', element: 'samp' },
{ name: 'Variable', element: 'var' },
{ name: 'Deleted Text', element: 'del' },
{ name: 'Inserted Text', element: 'ins' },
{ name: 'Cited Work', element: 'cite' },
{ name: 'Inline Quotation', element: 'q' },
{ name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } },
{ name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } },
/* Object Styles */
{
name: 'Styled image (left)',
element: 'img',
attributes: { 'class': 'left' }
},
{
name: 'Styled image (right)',
element: 'img',
attributes: { 'class': 'right' }
},
{
name: 'Compact table',
element: 'table',
attributes: {
cellpadding: '5',
cellspacing: '0',
border: '1',
bordercolor: '#ccc'
},
styles: {
'border-collapse': 'collapse'
}
},
{ name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } },
{ name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } }
]);

View file

@ -974,7 +974,8 @@ class XhtmlCleaner(XmlParser):
# Attributes to ignore, if keepStyles if False. # Attributes to ignore, if keepStyles if False.
attrsToIgnore = ('align', 'valign', 'cellpadding', 'cellspacing', 'width', attrsToIgnore = ('align', 'valign', 'cellpadding', 'cellspacing', 'width',
'height', 'bgcolor', 'lang', 'border', 'class', 'rules') 'height', 'bgcolor', 'lang', 'border', 'class', 'rules',
'id', 'name')
# CSS attributes to keep even if keepStyles if False. These attributes can # CSS attributes to keep even if keepStyles if False. These attributes can
# be used by pod (to align a paragraph, center/resize an image...). # be used by pod (to align a paragraph, center/resize an image...).
cssAttrsToKeep = ('width', 'height', 'float', 'text-align', cssAttrsToKeep = ('width', 'height', 'float', 'text-align',
@ -1119,7 +1120,8 @@ class XhtmlCleaner(XmlParser):
def characters(self, content): def characters(self, content):
if self.env.ignoreContent: return if self.env.ignoreContent: return
# Remove blanks that ckeditor may add just after a start tag # Remove blanks that ckeditor may add just after a start tag or
# between tags.
if not self.env.currentContent or \ if not self.env.currentContent or \
self.env.currentContent[-1] in ('\n', ' '): self.env.currentContent[-1] in ('\n', ' '):
toAdd = content.lstrip() toAdd = content.lstrip()