Mercurial > public > sg101
comparison media/js/tiny_mce/plugins/bbcode/editor_plugin_src.js @ 45:a5b4c5ce0658
Breaking down and controlling all media files, including javascript libraries.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Fri, 19 Jun 2009 03:16:03 +0000 |
parents | |
children | 149c3567fec1 |
comparison
equal
deleted
inserted
replaced
44:08cd19c1ee50 | 45:a5b4c5ce0658 |
---|---|
1 /** | |
2 * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $ | |
3 * | |
4 * @author Moxiecode | |
5 * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved. | |
6 */ | |
7 | |
8 (function() { | |
9 tinymce.create('tinymce.plugins.BBCodePlugin', { | |
10 init : function(ed, url) { | |
11 var t = this, dialect = ed.getParam('bbcode_dialect', 'punbb').toLowerCase(); | |
12 | |
13 ed.onBeforeSetContent.add(function(ed, o) { | |
14 o.content = t['_' + dialect + '_bbcode2html'](o.content); | |
15 }); | |
16 | |
17 ed.onPostProcess.add(function(ed, o) { | |
18 if (o.set) | |
19 o.content = t['_' + dialect + '_bbcode2html'](o.content); | |
20 | |
21 if (o.get) | |
22 o.content = t['_' + dialect + '_html2bbcode'](o.content); | |
23 }); | |
24 }, | |
25 | |
26 getInfo : function() { | |
27 return { | |
28 longname : 'BBCode Plugin', | |
29 author : 'Moxiecode Systems AB', | |
30 authorurl : 'http://tinymce.moxiecode.com', | |
31 infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode', | |
32 version : tinymce.majorVersion + "." + tinymce.minorVersion | |
33 }; | |
34 }, | |
35 | |
36 // Private methods | |
37 | |
38 // HTML -> BBCode in PunBB dialect | |
39 _punbb_html2bbcode : function(s) { | |
40 s = tinymce.trim(s); | |
41 | |
42 function rep(re, str) { | |
43 s = s.replace(re, str); | |
44 }; | |
45 | |
46 // example: <strong> to [b] | |
47 rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]"); | |
48 rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"); | |
49 rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"); | |
50 rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"); | |
51 rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"); | |
52 rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]"); | |
53 rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]"); | |
54 rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]"); | |
55 rep(/<font>(.*?)<\/font>/gi,"$1"); | |
56 rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]"); | |
57 rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]"); | |
58 rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]"); | |
59 rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"); | |
60 rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"); | |
61 rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"); | |
62 rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"); | |
63 rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"); | |
64 rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"); | |
65 rep(/<\/(strong|b)>/gi,"[/b]"); | |
66 rep(/<(strong|b)>/gi,"[b]"); | |
67 rep(/<\/(em|i)>/gi,"[/i]"); | |
68 rep(/<(em|i)>/gi,"[i]"); | |
69 rep(/<\/u>/gi,"[/u]"); | |
70 rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]"); | |
71 rep(/<u>/gi,"[u]"); | |
72 rep(/<blockquote[^>]*>/gi,"[quote]"); | |
73 rep(/<\/blockquote>/gi,"[/quote]"); | |
74 rep(/<br \/>/gi,"\n"); | |
75 rep(/<br\/>/gi,"\n"); | |
76 rep(/<br>/gi,"\n"); | |
77 rep(/<p>/gi,""); | |
78 rep(/<\/p>/gi,"\n"); | |
79 rep(/ /gi," "); | |
80 rep(/"/gi,"\""); | |
81 rep(/</gi,"<"); | |
82 rep(/>/gi,">"); | |
83 rep(/&/gi,"&"); | |
84 | |
85 return s; | |
86 }, | |
87 | |
88 // BBCode -> HTML from PunBB dialect | |
89 _punbb_bbcode2html : function(s) { | |
90 s = tinymce.trim(s); | |
91 | |
92 function rep(re, str) { | |
93 s = s.replace(re, str); | |
94 }; | |
95 | |
96 // example: [b] to <strong> | |
97 rep(/\n/gi,"<br />"); | |
98 rep(/\[b\]/gi,"<strong>"); | |
99 rep(/\[\/b\]/gi,"</strong>"); | |
100 rep(/\[i\]/gi,"<em>"); | |
101 rep(/\[\/i\]/gi,"</em>"); | |
102 rep(/\[u\]/gi,"<u>"); | |
103 rep(/\[\/u\]/gi,"</u>"); | |
104 rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>"); | |
105 rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>"); | |
106 rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />"); | |
107 rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>"); | |
108 rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span> "); | |
109 rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span> "); | |
110 | |
111 return s; | |
112 } | |
113 }); | |
114 | |
115 // Register plugin | |
116 tinymce.PluginManager.add('bbcode', tinymce.plugins.BBCodePlugin); | |
117 })(); |