Mercurial > hg > AnnotationManager
comparison WebContent/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js @ 5:0be9d53a6967
editor for annotations
| author | dwinter |
|---|---|
| date | Tue, 13 Dec 2011 17:43:46 +0100 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 4:c32080f364c6 | 5:0be9d53a6967 |
|---|---|
| 1 /** | |
| 2 * editor_plugin_src.js | |
| 3 * | |
| 4 * Copyright 2009, Moxiecode Systems AB | |
| 5 * Released under LGPL License. | |
| 6 * | |
| 7 * License: http://tinymce.moxiecode.com/license | |
| 8 * Contributing: http://tinymce.moxiecode.com/contributing | |
| 9 */ | |
| 10 | |
| 11 (function() { | |
| 12 tinymce.create('tinymce.plugins.BBCodePlugin', { | |
| 13 init : function(ed, url) { | |
| 14 var t = this, dialect = ed.getParam('bbcode_dialect', 'punbb').toLowerCase(); | |
| 15 | |
| 16 ed.onBeforeSetContent.add(function(ed, o) { | |
| 17 o.content = t['_' + dialect + '_bbcode2html'](o.content); | |
| 18 }); | |
| 19 | |
| 20 ed.onPostProcess.add(function(ed, o) { | |
| 21 if (o.set) | |
| 22 o.content = t['_' + dialect + '_bbcode2html'](o.content); | |
| 23 | |
| 24 if (o.get) | |
| 25 o.content = t['_' + dialect + '_html2bbcode'](o.content); | |
| 26 }); | |
| 27 }, | |
| 28 | |
| 29 getInfo : function() { | |
| 30 return { | |
| 31 longname : 'BBCode Plugin', | |
| 32 author : 'Moxiecode Systems AB', | |
| 33 authorurl : 'http://tinymce.moxiecode.com', | |
| 34 infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode', | |
| 35 version : tinymce.majorVersion + "." + tinymce.minorVersion | |
| 36 }; | |
| 37 }, | |
| 38 | |
| 39 // Private methods | |
| 40 | |
| 41 // HTML -> BBCode in PunBB dialect | |
| 42 _punbb_html2bbcode : function(s) { | |
| 43 s = tinymce.trim(s); | |
| 44 | |
| 45 function rep(re, str) { | |
| 46 s = s.replace(re, str); | |
| 47 }; | |
| 48 | |
| 49 // example: <strong> to [b] | |
| 50 rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]"); | |
| 51 rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"); | |
| 52 rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"); | |
| 53 rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"); | |
| 54 rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"); | |
| 55 rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]"); | |
| 56 rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]"); | |
| 57 rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]"); | |
| 58 rep(/<font>(.*?)<\/font>/gi,"$1"); | |
| 59 rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]"); | |
| 60 rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]"); | |
| 61 rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]"); | |
| 62 rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"); | |
| 63 rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"); | |
| 64 rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"); | |
| 65 rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"); | |
| 66 rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"); | |
| 67 rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"); | |
| 68 rep(/<\/(strong|b)>/gi,"[/b]"); | |
| 69 rep(/<(strong|b)>/gi,"[b]"); | |
| 70 rep(/<\/(em|i)>/gi,"[/i]"); | |
| 71 rep(/<(em|i)>/gi,"[i]"); | |
| 72 rep(/<\/u>/gi,"[/u]"); | |
| 73 rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]"); | |
| 74 rep(/<u>/gi,"[u]"); | |
| 75 rep(/<blockquote[^>]*>/gi,"[quote]"); | |
| 76 rep(/<\/blockquote>/gi,"[/quote]"); | |
| 77 rep(/<br \/>/gi,"\n"); | |
| 78 rep(/<br\/>/gi,"\n"); | |
| 79 rep(/<br>/gi,"\n"); | |
| 80 rep(/<p>/gi,""); | |
| 81 rep(/<\/p>/gi,"\n"); | |
| 82 rep(/ |\u00a0/gi," "); | |
| 83 rep(/"/gi,"\""); | |
| 84 rep(/</gi,"<"); | |
| 85 rep(/>/gi,">"); | |
| 86 rep(/&/gi,"&"); | |
| 87 | |
| 88 return s; | |
| 89 }, | |
| 90 | |
| 91 // BBCode -> HTML from PunBB dialect | |
| 92 _punbb_bbcode2html : function(s) { | |
| 93 s = tinymce.trim(s); | |
| 94 | |
| 95 function rep(re, str) { | |
| 96 s = s.replace(re, str); | |
| 97 }; | |
| 98 | |
| 99 // example: [b] to <strong> | |
| 100 rep(/\n/gi,"<br />"); | |
| 101 rep(/\[b\]/gi,"<strong>"); | |
| 102 rep(/\[\/b\]/gi,"</strong>"); | |
| 103 rep(/\[i\]/gi,"<em>"); | |
| 104 rep(/\[\/i\]/gi,"</em>"); | |
| 105 rep(/\[u\]/gi,"<u>"); | |
| 106 rep(/\[\/u\]/gi,"</u>"); | |
| 107 rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>"); | |
| 108 rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>"); | |
| 109 rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />"); | |
| 110 rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>"); | |
| 111 rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span> "); | |
| 112 rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span> "); | |
| 113 | |
| 114 return s; | |
| 115 } | |
| 116 }); | |
| 117 | |
| 118 // Register plugin | |
| 119 tinymce.PluginManager.add('bbcode', tinymce.plugins.BBCodePlugin); | |
| 120 })(); |
