]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-admin/js/editor.js
Wordpress 3.0
[autoinstalls/wordpress.git] / wp-admin / js / editor.js
index 50955c7006c0733d062353bc1ed7f85b4d26cf63..6372b6603e8ed7f96351191b060c46d3248c1e4a 100644 (file)
@@ -1,177 +1 @@
-wpEditorInit = function() {
-    // Activate tinyMCE if it's the user's default editor
-    if ( ( 'undefined' == typeof wpTinyMCEConfig ) || 'tinymce' == wpTinyMCEConfig.defaultEditor ) {
-        document.getElementById('editorcontainer').style.padding = '0px';
-        tinyMCE.execCommand("mceAddControl", false, "content");
-       } else {
-        var H;
-        if ( H = tinymce.util.Cookie.getHash("TinyMCE_content_size") )
-            document.getElementById('content').style.height = H.ch - 30 + 'px';
-    }
-};
-
-switchEditors = {
-
-    saveCallback : function(el, content, body) {
-
-        document.getElementById(el).style.color = '#fff';
-        if ( tinyMCE.activeEditor.isHidden() ) 
-            content = document.getElementById(el).value;
-        else
-            content = this.pre_wpautop(content);
-
-        return content;
-    },
-
-    pre_wpautop : function(content) {
-        // We have a TON of cleanup to do. Line breaks are already stripped.
-
-        // Protect pre|script tags
-        content = content.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g, function(a) {
-            a = a.replace(/<br ?\/?>[\r\n]*/g, '<wp_temp>');
-            return a.replace(/<\/?p( [^>]*)?>[\r\n]*/g, '<wp_temp>');
-        });
-
-        // Pretty it up for the source editor
-        var blocklist1 = 'blockquote|ul|ol|li|table|thead|tbody|tr|th|td|div|h[1-6]|p';
-        content = content.replace(new RegExp('\\s*</('+blocklist1+')>\\s*', 'mg'), '</$1>\n');
-        content = content.replace(new RegExp('\\s*<(('+blocklist1+')[^>]*)>', 'mg'), '\n<$1>');
-
-        // Mark </p> if it has any attributes.
-        content = content.replace(new RegExp('(<p [^>]+>.*?)</p>', 'mg'), '$1</p#>');
-
-        // Sepatate <div> containing <p>
-        content = content.replace(new RegExp('<div([^>]*)>\\s*<p>', 'mgi'), '<div$1>\n\n');
-
-        // Remove <p> and <br />
-        content = content.replace(new RegExp('\\s*<p>', 'mgi'), '');
-        content = content.replace(new RegExp('\\s*</p>\\s*', 'mgi'), '\n\n');
-        content = content.replace(new RegExp('\\n\\s*\\n', 'mgi'), '\n\n');
-        content = content.replace(new RegExp('\\s*<br ?/?>\\s*', 'gi'), '\n');
-
-        // Fix some block element newline issues
-        content = content.replace(new RegExp('\\s*<div', 'mg'), '\n<div');
-        content = content.replace(new RegExp('</div>\\s*', 'mg'), '</div>\n');
-
-        var blocklist2 = 'blockquote|ul|ol|li|table|thead|tr|th|td|h[1-6]|pre';
-        content = content.replace(new RegExp('\\s*<(('+blocklist2+') ?[^>]*)\\s*>', 'mg'), '\n<$1>');
-        content = content.replace(new RegExp('\\s*</('+blocklist2+')>\\s*', 'mg'), '</$1>\n');
-        content = content.replace(new RegExp('<li([^>]*)>', 'g'), '\t<li$1>');
-
-        if ( content.indexOf('<object') != -1 ) {
-            content = content.replace(new RegExp('\\s*<param([^>]*)>\\s*', 'mg'), "<param$1>");
-            content = content.replace(new RegExp('\\s*</embed>\\s*', 'mg'), '</embed>');
-        }
-
-        // Unmark special paragraph closing tags
-        content = content.replace(new RegExp('</p#>', 'g'), '</p>\n');
-        content = content.replace(new RegExp('\\s*(<p [^>]+>.*</p>)', 'mg'), '\n$1');
-
-        // Trim whitespace
-        content = content.replace(new RegExp('^\\s*', ''), '');
-        content = content.replace(new RegExp('\\s*$', ''), '');
-
-        // put back the line breaks in pre|script
-        content = content.replace(/<wp_temp>/g, '\n');
-
-        // Hope.
-        return content;
-    },
-
-    go : function(id) {
-        var ed = tinyMCE.get(id);
-        var qt = document.getElementById('quicktags');
-        var H = document.getElementById('edButtonHTML');
-        var P = document.getElementById('edButtonPreview');
-        var ta = document.getElementById(id);
-        var ec = document.getElementById('editorcontainer');
-
-        if ( ! ed || ed.isHidden() ) {
-            ta.style.color = '#fff';
-
-            this.edToggle(P, H);
-            edCloseAllTags(); // :-(
-
-            qt.style.display = 'none';
-            ec.style.padding = '0px';
-            ta.style.padding = '0px';
-
-            ta.value = this.wpautop(ta.value);
-
-            if ( ed ) ed.show();
-            else tinyMCE.execCommand("mceAddControl", false, id);
-
-            this.wpSetDefaultEditor('tinymce');
-        } else {
-            this.edToggle(H, P);
-            ta.style.height = ed.getContentAreaContainer().offsetHeight + 6 + 'px';
-
-            ed.hide();
-            qt.style.display = 'block';
-
-            if ( tinymce.isIE6 ) {
-                               ta.style.width = '98%';
-                               ec.style.padding = '0px';
-                               ta.style.padding = '6px';
-                       } else {
-                               ta.style.width = '100%';
-                               ec.style.padding = '6px';
-            }
-
-            ta.style.color = '';
-            this.wpSetDefaultEditor('html');
-        }
-    },
-
-    edToggle : function(A, B) {
-        A.className = 'active';
-        B.className = '';
-
-        B.onclick = A.onclick;
-        A.onclick = null;
-    },
-
-    wpSetDefaultEditor : function(editor) {
-        try {
-            editor = escape( editor.toString() );
-        } catch(err) {
-            editor = 'tinymce';
-        }
-
-        var userID = document.getElementById('user-id');
-        var date = new Date();
-        date.setTime(date.getTime()+(10*365*24*60*60*1000));
-        document.cookie = "wordpress_editor_" + userID.value + "=" + editor + "; expires=" + date.toGMTString();
-    },
-
-    wpautop : function(pee) {
-        var blocklist = 'table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|address|math|p|h[1-6]';
-
-        pee = pee + "\n\n";
-        pee = pee.replace(new RegExp('<br />\\s*<br />', 'gi'), "\n\n");
-        pee = pee.replace(new RegExp('(<(?:'+blocklist+')[^>]*>)', 'gi'), "\n$1");
-        pee = pee.replace(new RegExp('(</(?:'+blocklist+')>)', 'gi'), "$1\n\n");
-        pee = pee.replace(new RegExp("\\r\\n|\\r", 'g'), "\n");
-        pee = pee.replace(new RegExp("\\n\\s*\\n+", 'g'), "\n\n");
-        pee = pee.replace(new RegExp('([\\s\\S]+?)\\n\\n', 'mg'), "<p>$1</p>\n");
-        pee = pee.replace(new RegExp('<p>\\s*?</p>', 'gi'), '');
-        pee = pee.replace(new RegExp('<p>\\s*(</?(?:'+blocklist+')[^>]*>)\\s*</p>', 'gi'), "$1");
-        pee = pee.replace(new RegExp("<p>(<li.+?)</p>", 'gi'), "$1");
-        pee = pee.replace(new RegExp('<p>\\s*<blockquote([^>]*)>', 'gi'), "<blockquote$1><p>");
-        pee = pee.replace(new RegExp('</blockquote>\\s*</p>', 'gi'), '</p></blockquote>');
-        pee = pee.replace(new RegExp('<p>\\s*(</?(?:'+blocklist+')[^>]*>)', 'gi'), "$1");
-        pee = pee.replace(new RegExp('(</?(?:'+blocklist+')[^>]*>)\\s*</p>', 'gi'), "$1");
-        pee = pee.replace(new RegExp('\\s*\\n', 'gi'), "<br />\n");
-        pee = pee.replace(new RegExp('(</?(?:'+blocklist+')[^>]*>)\\s*<br />', 'gi'), "$1");
-        pee = pee.replace(new RegExp('<br />(\\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)', 'gi'), '$1');
-        // pee = pee.replace(new RegExp('^((?:&nbsp;)*)\\s', 'mg'), '$1&nbsp;');
-
-        // Fix the pre|script tags        
-        pee = pee.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g, function(a) {
-                       a = a.replace(/<br ?\/?>[\r\n]*/g, '\n');
-                       return a.replace(/<\/?p( [^>]*)?>[\r\n]*/g, '\n');
-        });
-
-           return pee;
-    }
-}
+jQuery(document).ready(function(b){var a=wpCookies.getHash("TinyMCE_content_size");if(getUserSetting("editor")=="html"){if(a){b("#content").css("height",a.ch-15+"px")}}else{if(typeof tinyMCE!="object"){b("#content").css("color","#000")}else{b("#quicktags").hide()}}});var switchEditors={mode:"",I:function(a){return document.getElementById(a)},_wp_Nop:function(b){var c,a;b=b.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(d){d=d.replace(/<br ?\/?>[\r\n]*/g,"<wp_temp>");return d.replace(/<\/?p( [^>]*)?>[\r\n]*/g,"<wp_temp>")});c="blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|div|h[1-6]|p|fieldset";b=b.replace(new RegExp("\\s*</("+c+")>\\s*","g"),"</$1>\n");b=b.replace(new RegExp("\\s*<(("+c+")[^>]*)>","g"),"\n<$1>");b=b.replace(/(<p [^>]+>.*?)<\/p>/g,"$1</p#>");b=b.replace(/<div([^>]*)>\s*<p>/gi,"<div$1>\n\n");b=b.replace(/\s*<p>/gi,"");b=b.replace(/\s*<\/p>\s*/gi,"\n\n");b=b.replace(/\n[\s\u00a0]+\n/g,"\n\n");b=b.replace(/\s*<br ?\/?>\s*/gi,"\n");b=b.replace(/\s*<div/g,"\n<div");b=b.replace(/<\/div>\s*/g,"</div>\n");b=b.replace(/\s*\[caption([^\[]+)\[\/caption\]\s*/gi,"\n\n[caption$1[/caption]\n\n");b=b.replace(/caption\]\n\n+\[caption/g,"caption]\n\n[caption");a="blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|h[1-6]|pre|fieldset";b=b.replace(new RegExp("\\s*<(("+a+") ?[^>]*)\\s*>","g"),"\n<$1>");b=b.replace(new RegExp("\\s*</("+a+")>\\s*","g"),"</$1>\n");b=b.replace(/<li([^>]*)>/g,"\t<li$1>");if(b.indexOf("<object")!=-1){b=b.replace(/<object[\s\S]+?<\/object>/g,function(d){return d.replace(/[\r\n]+/g,"")})}b=b.replace(/<\/p#>/g,"</p>\n");b=b.replace(/\s*(<p [^>]+>[\s\S]*?<\/p>)/g,"\n$1");b=b.replace(/^\s+/,"");b=b.replace(/[\s\u00a0]+$/,"");b=b.replace(/<wp_temp>/g,"\n");return b},go:function(i,g){i=i||"content";g=g||this.mode||"";var b,h=this.I("quicktags"),c=this.I("edButtonHTML"),d=this.I("edButtonPreview"),a=this.I(i);try{b=tinyMCE.get(i)}catch(f){b=false}if("tinymce"==g){if(b&&!b.isHidden()){return false}setUserSetting("editor","tinymce");this.mode="html";d.className="active";c.className="";edCloseAllTags();h.style.display="none";a.style.color="#FFF";a.value=this.wpautop(a.value);try{if(b){b.show()}else{tinyMCE.execCommand("mceAddControl",false,i)}}catch(f){}a.style.color="#000"}else{setUserSetting("editor","html");a.style.color="#000";this.mode="tinymce";c.className="active";d.className="";if(b&&!b.isHidden()){a.style.height=b.getContentAreaContainer().offsetHeight+24+"px";b.hide()}h.style.display="block"}return false},_wp_Autop:function(a){var b="table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|address|math|p|h[1-6]|fieldset|legend";if(a.indexOf("<object")!=-1){a=a.replace(/<object[\s\S]+?<\/object>/g,function(c){return c.replace(/[\r\n]+/g,"")})}a=a.replace(/<[^<>]+>/g,function(c){return c.replace(/[\r\n]+/g," ")});a=a+"\n\n";a=a.replace(/<br \/>\s*<br \/>/gi,"\n\n");a=a.replace(new RegExp("(<(?:"+b+")[^>]*>)","gi"),"\n$1");a=a.replace(new RegExp("(</(?:"+b+")>)","gi"),"$1\n\n");a=a.replace(/\r\n|\r/g,"\n");a=a.replace(/\n\s*\n+/g,"\n\n");a=a.replace(/([\s\S]+?)\n\n/g,"<p>$1</p>\n");a=a.replace(/<p>\s*?<\/p>/gi,"");a=a.replace(new RegExp("<p>\\s*(</?(?:"+b+")[^>]*>)\\s*</p>","gi"),"$1");a=a.replace(/<p>(<li.+?)<\/p>/gi,"$1");a=a.replace(/<p>\s*<blockquote([^>]*)>/gi,"<blockquote$1><p>");a=a.replace(/<\/blockquote>\s*<\/p>/gi,"</p></blockquote>");a=a.replace(new RegExp("<p>\\s*(</?(?:"+b+")[^>]*>)","gi"),"$1");a=a.replace(new RegExp("(</?(?:"+b+")[^>]*>)\\s*</p>","gi"),"$1");a=a.replace(/\s*\n/gi,"<br />\n");a=a.replace(new RegExp("(</?(?:"+b+")[^>]*>)\\s*<br />","gi"),"$1");a=a.replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)/gi,"$1");a=a.replace(/(?:<p>|<br ?\/?>)*\s*\[caption([^\[]+)\[\/caption\]\s*(?:<\/p>|<br ?\/?>)*/gi,"[caption$1[/caption]");a=a.replace(/(<(?:div|th|td|form|fieldset|dd)[^>]*>)(.*?)<\/p>/g,function(e,d,f){if(f.match(/<p( [^>]+)?>/)){return e}return d+"<p>"+f+"</p>"});a=a.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(c){c=c.replace(/<br ?\/?>[\r\n]*/g,"\n");return c.replace(/<\/?p( [^>]*)?>[\r\n]*/g,"\n")});return a},pre_wpautop:function(b){var a=this,c={o:a,data:b,unfiltered:b};jQuery("body").trigger("beforePreWpautop",[c]);c.data=a._wp_Nop(c.data);jQuery("body").trigger("afterPreWpautop",[c]);return c.data},wpautop:function(b){var a=this,c={o:a,data:b,unfiltered:b};jQuery("body").trigger("beforeWpautop",[c]);c.data=a._wp_Autop(c.data);jQuery("body").trigger("afterWpautop",[c]);return c.data}};
\ No newline at end of file