Code cleanup

This commit is contained in:
Visman 2023-04-09 14:27:05 +07:00
parent 2e4941b857
commit bd44beed43
2 changed files with 1 additions and 315 deletions

View file

@ -299,7 +299,7 @@ trait PostFormTrait
'dropdown' => \array_flip($smilies),
'hidden' => $hidden,
],
'plugins' => 'forkbb,alternative-lists',
'plugins' => 'alternative-lists',
]);
$cur['data'] = [
'SCEditorConfig' => $scConfig,

View file

@ -32,318 +32,6 @@ ForkBB.editor = (function (doc, win) {
'emoticon,date,time|maximize,source'
};
function trimHTML(str)
{
return str.replace(/^\x20*<br \/>/, '').replace(/<br \/>\x20*$/, '');
}
/**
* Removes any leading or trailing quotes ('")
*
* @return string
* @since v1.4.0
*/
function _stripQuotes(str) {
return str ? str.replace(/\\(.)/g, '$1').replace(/^(["'])(.*?)\1$/, '$2') : str;
}
/**
* Converts a number 0-255 to hex.
*
* Will return 00 if number is not a valid number.
*
* @param {any} number
* @return {string}
* @private
*/
function toHex(number) {
number = parseInt(number, 10);
if (isNaN(number)) {
return '00';
}
number = Math.max(0, Math.min(number, 255)).toString(16);
return number.length < 2 ? '0' + number : number;
}
/**
* Normalises a CSS colour to hex #xxxxxx format
*
* @param {string} colorStr
* @return {string}
* @private
*/
function _normaliseColour(colorStr) {
var match;
colorStr = colorStr || '#000';
// rgb(n,n,n);
if ((match =
colorStr.match(/rgb\((\d{1,3}),\s*?(\d{1,3}),\s*?(\d{1,3})\)/i))) {
return '#' +
toHex(match[1]) +
toHex(match[2]) +
toHex(match[3]);
}
// expand shorthand
if ((match = colorStr.match(/#([0-9a-f])([0-9a-f])([0-9a-f])\s*?$/i))) {
return '#' +
match[1] + match[1] +
match[2] + match[2] +
match[3] + match[3];
}
return colorStr;
}
function initPlugin()
{
sceditor.plugins['forkbb'] = function () {
var escapeEntities = sceditor.escapeEntities;
var escapeUriScheme = sceditor.escapeUriScheme;
var dom = sceditor.dom;
var utils = sceditor.utils;
var QuoteType = sceditor.BBCodeParser.QuoteType;
var css = dom.css;
var attr = dom.attr;
var is = dom.is;
var extend = utils.extend;
var each = utils.each;
var base = this;
base.init = function () {
var opts = this.opts;
// Enable for BBCode only
if (!opts.format || opts.format !== 'bbcode') {
return;
}
// START_COMMAND: Bold
sceditor.formats.bbcode.set('b', {
tags: {
b: null,
strong: null
},
styles: {
// 401 is for FF 3.5
'font-weight': ['bold', 'bolder', '401', '700', '800', '900']
},
format: '[b]{0}[/b]',
html: function (token, attrs, content) {
return '<b>' + trimHTML(content) + '</b>';
}
});
// START_COMMAND: Italic
sceditor.formats.bbcode.set('i', {
tags: {
i: null,
em: null
},
styles: {
'font-style': ['italic', 'oblique']
},
format: '[i]{0}[/i]',
html: function (token, attrs, content) {
return '<i>' + trimHTML(content) + '</i>';
}
});
// START_COMMAND: Underline
sceditor.formats.bbcode.set('u', {
tags: {
u: null
},
styles: {
'text-decoration': ['underline']
},
format: '[u]{0}[/u]',
html: function (token, attrs, content) {
return '<u>' + trimHTML(content) + '</u>';
}
});
// START_COMMAND: Strikethrough
sceditor.formats.bbcode.set('s', {
tags: {
s: null,
strike: null
},
styles: {
'text-decoration': ['line-through']
},
format: '[s]{0}[/s]',
html: function (token, attrs, content) {
return '<s>' + trimHTML(content) + '</s>';
}
});
// START_COMMAND: Subscript
sceditor.formats.bbcode.set('sub', {
tags: {
sub: null
},
format: '[sub]{0}[/sub]',
html: function (token, attrs, content) {
return '<sub>' + trimHTML(content) + '</sub>';
}
});
// START_COMMAND: Superscript
sceditor.formats.bbcode.set('sup', {
tags: {
sup: null
},
format: '[sup]{0}[/sup]',
html: function (token, attrs, content) {
return '<sup>' + trimHTML(content) + '</sup>';
}
});
// START_COMMAND: Font
sceditor.formats.bbcode.set('font', {
tags: {
font: {
face: null
}
},
styles: {
'font-family': null
},
quoteType: QuoteType.never,
format: function (element, content) {
var font;
if (!is(element, 'font') || !(font = attr(element, 'face'))) {
font = css(element, 'font-family');
}
return '[font=' + _stripQuotes(font) + ']' + content + '[/font]';
},
html: function (token, attrs, content) {
return '<font face="' + escapeEntities(attrs.defaultattr) + '">' + trimHTML(content) + '</font>';
}
});
// START_COMMAND: Size
sceditor.formats.bbcode.set('size:', {
tags: {
font: {
size: null
}
},
styles: {
'font-size': null
},
format: function (element, content) {
var fontSize = attr(element, 'size'),
size = 2;
if (!fontSize) {
fontSize = css(element, 'fontSize');
}
// Most browsers return px value but IE returns 1-7
if (fontSize.indexOf('px') > -1) {
// convert size to an int
fontSize = fontSize.replace('px', '') - 0;
if (fontSize < 12) {
size = 1;
}
if (fontSize > 15) {
size = 3;
}
if (fontSize > 17) {
size = 4;
}
if (fontSize > 23) {
size = 5;
}
if (fontSize > 31) {
size = 6;
}
if (fontSize > 47) {
size = 7;
}
} else {
size = fontSize;
}
return '[size=' + size + ']' + content + '[/size]';
},
html: function (token, attrs, content) {
return '<font size="' + escapeEntities(attrs.defaultattr) + '">' + trimHTML(content) + '</font>';
}
});
// START_COMMAND: Color
sceditor.formats.bbcode.set('color', {
tags: {
font: {
color: null
}
},
styles: {
color: null
},
quoteType: QuoteType.never,
format: function (elm, content) {
var color;
if (!is(elm, 'font') || !(color = attr(elm, 'color'))) {
color = elm.style.color || css(elm, 'color');
}
return '[color=' + _normaliseColour(color) + ']' + content + '[/color]';
},
html: function (token, attrs, content) {
return '<font color="' + escapeEntities(_normaliseColour(attrs.defaultattr), true) + '">' + trimHTML(content) + '</font>';
}
});
sceditor.formats.bbcode.set('', {
});
sceditor.formats.bbcode.set('', {
});
sceditor.formats.bbcode.set('', {
});
sceditor.formats.bbcode.set('', {
});
sceditor.formats.bbcode.set('', {
});
sceditor.formats.bbcode.set('', {
});
// START_COMMAND: Code
/* sceditor.formats.bbcode.set('code', {
tags: {
code: null
},
isInline: false,
allowedChildren: ['#', '#newline'],
format: '[code]{0}[/code]',
html: function (token, attrs, content) {
return '<code>' + trimHTML(content) + '</code>';
}
});
*/
}
}
}
function initEditor()
{
var conf, smiliesEnabled;
@ -363,8 +51,6 @@ ForkBB.editor = (function (doc, win) {
options.toolbar = options.toolbar.replace(/\bemoticon\b/, '').replace(/[^\w]*\|[^\w]*/g, '|').replace(/,{2,}/g, ',') ;
}
initPlugin();
sceditor.create(textarea, options);
instance = sceditor.instance(textarea);