~canonical-sysadmins/wordpress/3.9.x

« back to all changes in this revision

Viewing changes to wp-admin/js/editor.dev.js

  • Committer: Chris Jones
  • Date: 2010-01-19 13:17:33 UTC
  • Revision ID: cmsj@tenshu.net-20100119131733-rf31jv9k1v0xzo2h
[CJ] Import wordpress 2.9.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
                if ( h )
7
7
                        $('#content').css('height', h.ch - 15 + 'px');
8
8
        } else {
9
 
                $('#content').css('color', 'white');
10
 
                $('#quicktags').hide();
 
9
                if ( typeof tinyMCE != 'object' ) {
 
10
                        $('#content').css('color', '#000');
 
11
                } else {
 
12
                        $('#quicktags').hide();
 
13
                }
11
14
        }
12
15
});
13
16
 
19
22
                return document.getElementById(e);
20
23
        },
21
24
 
22
 
        edInit : function() {
23
 
        },
24
 
 
25
 
        saveCallback : function(el, content, body) {
26
 
 
27
 
                if ( tinyMCE.activeEditor.isHidden() )
28
 
                        content = this.I(el).value;
29
 
                else
30
 
                        content = this.pre_wpautop(content);
31
 
 
32
 
                return content;
33
 
        },
34
 
 
35
 
        pre_wpautop : function(content) {
 
25
        _wp_Nop : function(content) {
36
26
                var blocklist1, blocklist2;
37
27
 
38
28
                // Protect pre|script tags
42
32
                });
43
33
 
44
34
                // Pretty it up for the source editor
45
 
                blocklist1 = 'blockquote|ul|ol|li|table|thead|tbody|tr|th|td|div|h[1-6]|p';
46
 
                content = content.replace(new RegExp('\\s*</('+blocklist1+')>\\s*', 'mg'), '</$1>\n');
47
 
                content = content.replace(new RegExp('\\s*<(('+blocklist1+')[^>]*)>', 'mg'), '\n<$1>');
 
35
                blocklist1 = 'blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|div|h[1-6]|p|fieldset';
 
36
                content = content.replace(new RegExp('\\s*</('+blocklist1+')>\\s*', 'g'), '</$1>\n');
 
37
                content = content.replace(new RegExp('\\s*<(('+blocklist1+')[^>]*)>', 'g'), '\n<$1>');
48
38
 
49
39
                // Mark </p> if it has any attributes.
50
 
                content = content.replace(new RegExp('(<p [^>]+>.*?)</p>', 'mg'), '$1</p#>');
 
40
                content = content.replace(/(<p [^>]+>.*?)<\/p>/g, '$1</p#>');
51
41
 
52
42
                // Sepatate <div> containing <p>
53
 
                content = content.replace(new RegExp('<div([^>]*)>\\s*<p>', 'mgi'), '<div$1>\n\n');
 
43
                content = content.replace(/<div([^>]*)>\s*<p>/gi, '<div$1>\n\n');
54
44
 
55
45
                // Remove <p> and <br />
56
 
                content = content.replace(new RegExp('\\s*<p>', 'mgi'), '');
57
 
                content = content.replace(new RegExp('\\s*</p>\\s*', 'mgi'), '\n\n');
58
 
                content = content.replace(new RegExp('\\n\\s*\\n', 'mgi'), '\n\n');
59
 
                content = content.replace(new RegExp('\\s*<br ?/?>\\s*', 'gi'), '\n');
 
46
                content = content.replace(/\s*<p>/gi, '');
 
47
                content = content.replace(/\s*<\/p>\s*/gi, '\n\n');
 
48
                content = content.replace(/\n[\s\u00a0]+\n/g, '\n\n');
 
49
                content = content.replace(/\s*<br ?\/?>\s*/gi, '\n');
60
50
 
61
51
                // Fix some block element newline issues
62
 
                content = content.replace(new RegExp('\\s*<div', 'mg'), '\n<div');
63
 
                content = content.replace(new RegExp('</div>\\s*', 'mg'), '</div>\n');
64
 
                content = content.replace(new RegExp('\\s*\\[caption([^\\[]+)\\[/caption\\]\\s*', 'gi'), '\n\n[caption$1[/caption]\n\n');
65
 
                content = content.replace(new RegExp('caption\\]\\n\\n+\\[caption', 'g'), 'caption]\n\n[caption');
 
52
                content = content.replace(/\s*<div/g, '\n<div');
 
53
                content = content.replace(/<\/div>\s*/g, '</div>\n');
 
54
                content = content.replace(/\s*\[caption([^\[]+)\[\/caption\]\s*/gi, '\n\n[caption$1[/caption]\n\n');
 
55
                content = content.replace(/caption\]\n\n+\[caption/g, 'caption]\n\n[caption');
66
56
 
67
 
                blocklist2 = 'blockquote|ul|ol|li|table|thead|tr|th|td|h[1-6]|pre';
68
 
                content = content.replace(new RegExp('\\s*<(('+blocklist2+') ?[^>]*)\\s*>', 'mg'), '\n<$1>');
69
 
                content = content.replace(new RegExp('\\s*</('+blocklist2+')>\\s*', 'mg'), '</$1>\n');
70
 
                content = content.replace(new RegExp('<li([^>]*)>', 'g'), '\t<li$1>');
 
57
                blocklist2 = 'blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|h[1-6]|pre|fieldset';
 
58
                content = content.replace(new RegExp('\\s*<(('+blocklist2+') ?[^>]*)\\s*>', 'g'), '\n<$1>');
 
59
                content = content.replace(new RegExp('\\s*</('+blocklist2+')>\\s*', 'g'), '</$1>\n');
 
60
                content = content.replace(/<li([^>]*)>/g, '\t<li$1>');
71
61
 
72
62
                if ( content.indexOf('<object') != -1 ) {
73
63
                        content = content.replace(/<object[\s\S]+?<\/object>/g, function(a){
76
66
                }
77
67
 
78
68
                // Unmark special paragraph closing tags
79
 
                content = content.replace(new RegExp('</p#>', 'g'), '</p>\n');
80
 
                content = content.replace(new RegExp('\\s*(<p [^>]+>.*</p>)', 'mg'), '\n$1');
 
69
                content = content.replace(/<\/p#>/g, '</p>\n');
 
70
                content = content.replace(/\s*(<p [^>]+>[\s\S]*?<\/p>)/g, '\n$1');
81
71
 
82
72
                // Trim whitespace
83
 
                content = content.replace(new RegExp('^\\s*', ''), '');
84
 
                content = content.replace(new RegExp('[\\s\\u00a0]*$', ''), '');
 
73
                content = content.replace(/^\s+/, '');
 
74
                content = content.replace(/[\s\u00a0]+$/, '');
85
75
 
86
76
                // put back the line breaks in pre|script
87
77
                content = content.replace(/<wp_temp>/g, '\n');
88
78
 
89
 
                // Hope.
90
79
                return content;
91
80
        },
92
81
 
111
100
                        edCloseAllTags(); // :-(
112
101
                        qt.style.display = 'none';
113
102
 
 
103
                        ta.style.color = '#FFF';
114
104
                        ta.value = this.wpautop(ta.value);
115
105
 
116
 
                        if ( ed ) {
117
 
                                ed.show();
118
 
                        } else {
119
 
                                try{tinyMCE.execCommand("mceAddControl", false, id);}
120
 
                                catch(e){}
121
 
                        }
 
106
                        try {
 
107
                                if ( ed )
 
108
                                        ed.show();
 
109
                                else
 
110
                                        tinyMCE.execCommand("mceAddControl", false, id);
 
111
                        } catch(e) {}
 
112
 
 
113
                        ta.style.color = '#000';
122
114
                } else {
123
115
                        setUserSetting( 'editor', 'html' );
124
116
                        ta.style.color = '#000';
136
128
                return false;
137
129
        },
138
130
 
139
 
        wpautop : function(pee) {
140
 
                var blocklist = '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]';
 
131
        _wp_Autop : function(pee) {
 
132
                var blocklist = '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';
141
133
 
142
134
                if ( pee.indexOf('<object') != -1 ) {
143
135
                        pee = pee.replace(/<object[\s\S]+?<\/object>/g, function(a){
149
141
                        return a.replace(/[\r\n]+/g, ' ');
150
142
                });
151
143
 
152
 
                pee = pee + "\n\n";
153
 
                pee = pee.replace(new RegExp('<br />\\s*<br />', 'gi'), "\n\n");
154
 
                pee = pee.replace(new RegExp('(<(?:'+blocklist+')[^>]*>)', 'gi'), "\n$1");
155
 
                pee = pee.replace(new RegExp('(</(?:'+blocklist+')>)', 'gi'), "$1\n\n");
156
 
                pee = pee.replace(new RegExp("\\r\\n|\\r", 'g'), "\n");
157
 
                pee = pee.replace(new RegExp("\\n\\s*\\n+", 'g'), "\n\n");
158
 
                pee = pee.replace(new RegExp('([\\s\\S]+?)\\n\\n', 'mg'), "<p>$1</p>\n");
159
 
                pee = pee.replace(new RegExp('<p>\\s*?</p>', 'gi'), '');
 
144
                pee = pee + '\n\n';
 
145
                pee = pee.replace(/<br \/>\s*<br \/>/gi, '\n\n');
 
146
                pee = pee.replace(new RegExp('(<(?:'+blocklist+')[^>]*>)', 'gi'), '\n$1');
 
147
                pee = pee.replace(new RegExp('(</(?:'+blocklist+')>)', 'gi'), '$1\n\n');
 
148
                pee = pee.replace(/\r\n|\r/g, '\n');
 
149
                pee = pee.replace(/\n\s*\n+/g, '\n\n');
 
150
                pee = pee.replace(/([\s\S]+?)\n\n/g, '<p>$1</p>\n');
 
151
                pee = pee.replace(/<p>\s*?<\/p>/gi, '');
160
152
                pee = pee.replace(new RegExp('<p>\\s*(</?(?:'+blocklist+')[^>]*>)\\s*</p>', 'gi'), "$1");
161
 
                pee = pee.replace(new RegExp("<p>(<li.+?)</p>", 'gi'), "$1");
162
 
                pee = pee.replace(new RegExp('<p>\\s*<blockquote([^>]*)>', 'gi'), "<blockquote$1><p>");
163
 
                pee = pee.replace(new RegExp('</blockquote>\\s*</p>', 'gi'), '</p></blockquote>');
 
153
                pee = pee.replace(/<p>(<li.+?)<\/p>/gi, '$1');
 
154
                pee = pee.replace(/<p>\s*<blockquote([^>]*)>/gi, '<blockquote$1><p>');
 
155
                pee = pee.replace(/<\/blockquote>\s*<\/p>/gi, '</p></blockquote>');
164
156
                pee = pee.replace(new RegExp('<p>\\s*(</?(?:'+blocklist+')[^>]*>)', 'gi'), "$1");
165
157
                pee = pee.replace(new RegExp('(</?(?:'+blocklist+')[^>]*>)\\s*</p>', 'gi'), "$1");
166
 
                pee = pee.replace(new RegExp('\\s*\\n', 'gi'), "<br />\n");
 
158
                pee = pee.replace(/\s*\n/gi, '<br />\n');
167
159
                pee = pee.replace(new RegExp('(</?(?:'+blocklist+')[^>]*>)\\s*<br />', 'gi'), "$1");
168
 
                pee = pee.replace(new RegExp('<br />(\\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)', 'gi'), '$1');
169
 
                pee = pee.replace(new RegExp('(?:<p>|<br ?/?>)*\\s*\\[caption([^\\[]+)\\[/caption\\]\\s*(?:</p>|<br ?/?>)*', 'gi'), '[caption$1[/caption]');
 
160
                pee = pee.replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)/gi, '$1');
 
161
                pee = pee.replace(/(?:<p>|<br ?\/?>)*\s*\[caption([^\[]+)\[\/caption\]\s*(?:<\/p>|<br ?\/?>)*/gi, '[caption$1[/caption]');
 
162
 
 
163
                pee = pee.replace(/(<(?:div|th|td|form|fieldset|dd)[^>]*>)(.*?)<\/p>/g, function(a, b, c) {
 
164
                        if ( c.match(/<p( [^>]+)?>/) )
 
165
                                return a;
 
166
 
 
167
                        return b + '<p>' + c + '</p>';
 
168
                });
170
169
 
171
170
                // Fix the pre|script tags
172
171
                pee = pee.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g, function(a) {
175
174
                });
176
175
 
177
176
                return pee;
 
177
        },
 
178
 
 
179
        pre_wpautop : function(content) {
 
180
                var t = this, o = { o: t, data: content, unfiltered: content };
 
181
 
 
182
                jQuery('body').trigger('beforePreWpautop', [o]);
 
183
                o.data = t._wp_Nop(o.data);
 
184
                jQuery('body').trigger('afterPreWpautop', [o]);
 
185
                return o.data;
 
186
        },
 
187
 
 
188
        wpautop : function(pee) {
 
189
                var t = this, o = { o: t, data: pee, unfiltered: pee };
 
190
 
 
191
                jQuery('body').trigger('beforeWpautop', [o]);
 
192
                o.data = t._wp_Autop(o.data);
 
193
                jQuery('body').trigger('afterWpautop', [o]);
 
194
                return o.data;
178
195
        }
179
196
};