You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							101 lines
						
					
					
						
							3.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							101 lines
						
					
					
						
							3.8 KiB
						
					
					
				| (function () { | |
| var bbcode = (function () { | |
|   'use strict'; | |
| 
 | |
|   var PluginManager = tinymce.util.Tools.resolve('tinymce.PluginManager'); | |
| 
 | |
|   var Tools = tinymce.util.Tools.resolve('tinymce.util.Tools'); | |
| 
 | |
|   var html2bbcode = function (s) { | |
|     s = Tools.trim(s); | |
|     var rep = function (re, str) { | |
|       s = s.replace(re, str); | |
|     }; | |
|     rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi, '[url=$1]$2[/url]'); | |
|     rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi, '[code][color=$1]$2[/color][/code]'); | |
|     rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi, '[quote][color=$1]$2[/color][/quote]'); | |
|     rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi, '[code][color=$1]$2[/color][/code]'); | |
|     rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi, '[quote][color=$1]$2[/color][/quote]'); | |
|     rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi, '[color=$1]$2[/color]'); | |
|     rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi, '[color=$1]$2[/color]'); | |
|     rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi, '[size=$1]$2[/size]'); | |
|     rep(/<font>(.*?)<\/font>/gi, '$1'); | |
|     rep(/<img.*?src=\"(.*?)\".*?\/>/gi, '[img]$1[/img]'); | |
|     rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi, '[code]$1[/code]'); | |
|     rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi, '[quote]$1[/quote]'); | |
|     rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi, '[code][b]$1[/b][/code]'); | |
|     rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi, '[quote][b]$1[/b][/quote]'); | |
|     rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi, '[code][i]$1[/i][/code]'); | |
|     rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi, '[quote][i]$1[/i][/quote]'); | |
|     rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi, '[code][u]$1[/u][/code]'); | |
|     rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi, '[quote][u]$1[/u][/quote]'); | |
|     rep(/<\/(strong|b)>/gi, '[/b]'); | |
|     rep(/<(strong|b)>/gi, '[b]'); | |
|     rep(/<\/(em|i)>/gi, '[/i]'); | |
|     rep(/<(em|i)>/gi, '[i]'); | |
|     rep(/<\/u>/gi, '[/u]'); | |
|     rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi, '[u]$1[/u]'); | |
|     rep(/<u>/gi, '[u]'); | |
|     rep(/<blockquote[^>]*>/gi, '[quote]'); | |
|     rep(/<\/blockquote>/gi, '[/quote]'); | |
|     rep(/<br \/>/gi, '\n'); | |
|     rep(/<br\/>/gi, '\n'); | |
|     rep(/<br>/gi, '\n'); | |
|     rep(/<p>/gi, ''); | |
|     rep(/<\/p>/gi, '\n'); | |
|     rep(/ |\u00a0/gi, ' '); | |
|     rep(/"/gi, '"'); | |
|     rep(/</gi, '<'); | |
|     rep(/>/gi, '>'); | |
|     rep(/&/gi, '&'); | |
|     return s; | |
|   }; | |
|   var bbcode2html = function (s) { | |
|     s = Tools.trim(s); | |
|     var rep = function (re, str) { | |
|       s = s.replace(re, str); | |
|     }; | |
|     rep(/\n/gi, '<br />'); | |
|     rep(/\[b\]/gi, '<strong>'); | |
|     rep(/\[\/b\]/gi, '</strong>'); | |
|     rep(/\[i\]/gi, '<em>'); | |
|     rep(/\[\/i\]/gi, '</em>'); | |
|     rep(/\[u\]/gi, '<u>'); | |
|     rep(/\[\/u\]/gi, '</u>'); | |
|     rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi, '<a href="$1">$2</a>'); | |
|     rep(/\[url\](.*?)\[\/url\]/gi, '<a href="$1">$1</a>'); | |
|     rep(/\[img\](.*?)\[\/img\]/gi, '<img src="$1" />'); | |
|     rep(/\[color=(.*?)\](.*?)\[\/color\]/gi, '<font color="$1">$2</font>'); | |
|     rep(/\[code\](.*?)\[\/code\]/gi, '<span class="codeStyle">$1</span> '); | |
|     rep(/\[quote.*?\](.*?)\[\/quote\]/gi, '<span class="quoteStyle">$1</span> '); | |
|     return s; | |
|   }; | |
|   var $_3znyhe8jjd09evkt = { | |
|     html2bbcode: html2bbcode, | |
|     bbcode2html: bbcode2html | |
|   }; | |
| 
 | |
|   PluginManager.add('bbcode', function () { | |
|     return { | |
|       init: function (editor) { | |
|         editor.on('beforeSetContent', function (e) { | |
|           e.content = $_3znyhe8jjd09evkt.bbcode2html(e.content); | |
|         }); | |
|         editor.on('postProcess', function (e) { | |
|           if (e.set) { | |
|             e.content = $_3znyhe8jjd09evkt.bbcode2html(e.content); | |
|           } | |
|           if (e.get) { | |
|             e.content = $_3znyhe8jjd09evkt.html2bbcode(e.content); | |
|           } | |
|         }); | |
|       } | |
|     }; | |
|   }); | |
|   function Plugin () { | |
|   } | |
| 
 | |
|   return Plugin; | |
| 
 | |
| }()); | |
| })()
 |