diff -r 2f6f6f7551ca -r 32102edaa81b web/wp-admin/js/editor.dev.js
--- a/web/wp-admin/js/editor.dev.js Thu Sep 16 15:45:36 2010 +0000
+++ b/web/wp-admin/js/editor.dev.js Mon Nov 19 18:26:13 2012 +0100
@@ -1,46 +1,96 @@
-
-jQuery(document).ready(function($){
- var h = wpCookies.getHash('TinyMCE_content_size');
-
- if ( getUserSetting( 'editor' ) == 'html' ) {
- if ( h )
- $('#content').css('height', h.ch - 15 + 'px');
- } else {
- if ( typeof tinyMCE != 'object' ) {
- $('#content').css('color', '#000');
- } else {
- $('#quicktags').hide();
- }
- }
-});
var switchEditors = {
- mode : '',
+ switchto: function(el) {
+ var aid = el.id, l = aid.length, id = aid.substr(0, l - 5), mode = aid.substr(l - 4);
+
+ this.go(id, mode);
+ },
+
+ go: function(id, mode) { // mode can be 'html', 'tmce', or 'toggle'
+ id = id || 'content';
+ mode = mode || 'toggle';
+
+ var t = this, ed = tinyMCE.get(id), wrap_id, txtarea_el, dom = tinymce.DOM;
+
+ wrap_id = 'wp-'+id+'-wrap';
+ txtarea_el = dom.get(id);
+
+ if ( 'toggle' == mode ) {
+ if ( ed && !ed.isHidden() )
+ mode = 'html';
+ else
+ mode = 'tmce';
+ }
+
+ if ( 'tmce' == mode || 'tinymce' == mode ) {
+ if ( ed && ! ed.isHidden() )
+ return false;
+
+ if ( typeof(QTags) != 'undefined' )
+ QTags.closeAllTags(id);
- I : function(e) {
- return document.getElementById(e);
+ if ( tinyMCEPreInit.mceInit[id] && tinyMCEPreInit.mceInit[id].wpautop )
+ txtarea_el.value = t.wpautop( txtarea_el.value );
+
+ if ( ed ) {
+ ed.show();
+ } else {
+ ed = new tinymce.Editor(id, tinyMCEPreInit.mceInit[id]);
+ ed.render();
+ }
+
+ dom.removeClass(wrap_id, 'html-active');
+ dom.addClass(wrap_id, 'tmce-active');
+ setUserSetting('editor', 'tinymce');
+
+ } else if ( 'html' == mode ) {
+
+ if ( ed && ed.isHidden() )
+ return false;
+
+ if ( ed ) {
+ txtarea_el.style.height = ed.getContentAreaContainer().offsetHeight + 20 + 'px';
+ ed.hide();
+ }
+
+ dom.removeClass(wrap_id, 'tmce-active');
+ dom.addClass(wrap_id, 'html-active');
+ setUserSetting('editor', 'html');
+ }
+ return false;
},
_wp_Nop : function(content) {
- var blocklist1, blocklist2;
+ var blocklist1, blocklist2, preserve_linebreaks = false, preserve_br = false;
// Protect pre|script tags
- content = content.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g, function(a) {
- a = a.replace(/
[\r\n]*/g, ']*>[\s\S]+?<\/\1>/g, function(a) {
+ a = a.replace(/
(\r\n|\n)?/g, '
tags inside captions and remove line breaks
+ if ( content.indexOf('[caption') != -1 ) {
+ preserve_br = true;
+ content = content.replace(/\[caption[\s\S]+?\[\/caption\]/g, function(a) {
+ return a.replace(/
]*)>/g, '
]+>.*?)<\/p>/g, '$1
'); // Sepatate- content = content.replace(/
/gi, '
/gi, '
and
content = content.replace(/\s*
/gi, ''); @@ -55,10 +105,14 @@ content = content.replace(/caption\]\n\n+\[caption/g, 'caption]\n\n[caption'); blocklist2 = 'blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|h[1-6]|pre|fieldset'; - content = content.replace(new RegExp('\\s*<(('+blocklist2+') ?[^>]*)\\s*>', 'g'), '\n<$1>'); + content = content.replace(new RegExp('\\s*<((?:'+blocklist2+')(?: [^>]*)?)\\s*>', 'g'), '\n<$1>'); content = content.replace(new RegExp('\\s*('+blocklist2+')>\\s*', 'g'), '$1>\n'); content = content.replace(/