123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- /**
- * Copyright (c) Tiny Technologies, Inc. All rights reserved.
- * Licensed under the LGPL or a commercial license.
- * For LGPL see License.txt in the project root for license information.
- * For commercial licenses see https://www.tiny.cloud/
- *
- * Version: 5.10.2 (2021-11-17)
- */
- ;(function () {
- 'use strict'
- var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager')
- var global = tinymce.util.Tools.resolve('tinymce.util.Tools')
- var html2bbcode = function (s) {
- s = global.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 = global.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
- }
- function Plugin() {
- global$1.add('bbcode', function (editor) {
- editor.on('BeforeSetContent', function (e) {
- e.content = bbcode2html(e.content)
- })
- editor.on('PostProcess', function (e) {
- if (e.set) {
- e.content = bbcode2html(e.content)
- }
- if (e.get) {
- e.content = html2bbcode(e.content)
- }
- })
- })
- }
- Plugin()
- })()
|