Javascript 在SCEditor中将列表项标记设置为[*]x,而不是[li]x[/li],以实现vBulletin兼容性 TL;博士

Javascript 在SCEditor中将列表项标记设置为[*]x,而不是[li]x[/li],以实现vBulletin兼容性 TL;博士,javascript,bbcode,vbulletin,sceditor,Javascript,Bbcode,Vbulletin,Sceditor,SCEditor对列表项使用[li]test[/li]。为了使其与VB兼容,我想将其更改为[*]test。但我的方法并不完全有效。我可以让编辑器为列表项插入[*]。但是,它们总是在内容之前包含不需要的换行符 所以问题是:在当前解决方案(见上文)的[*]之后,如何将[li]x[/li]更改为[*]x,而不中断换行? 详细的解释和我的方法 我希望SCEditor与VBulletin兼容。许多BBCode可以工作,但列表不能。在SCEditor中创建列表时,会生成以下BBCode: [ul] [li]

SCEditor对列表项使用
[li]test[/li]
。为了使其与VB兼容,我想将其更改为
[*]test
。但我的方法并不完全有效。我可以让编辑器为列表项插入
[*]
。但是,它们总是在内容之前包含不需要的换行符

所以问题是:在当前解决方案(见上文)的
[*]
之后,如何将
[li]x[/li]
更改为
[*]x
,而不中断换行?

详细的解释和我的方法 我希望SCEditor与VBulletin兼容。许多BBCode可以工作,但列表不能。在SCEditor中创建列表时,会生成以下BBCode:

[ul]
[li]x[/li]
[li]y[/li]
[/ul]
VBulletin不解析此项,因为它使用
[list]
而不是
[ul]
。通过理解,我可以通过替换BBCode的格式来解决此问题:

sceditor.formats.bbcode.set('ul', {
    tags: {
        ul: null
    },
    breakStart: true,
    isInline: false,
    skipLastLineBreak: true,
    format: '[list]{0}[/list]',
    html: '<ul>{0}</ul>'
})
现在,当按下列表按钮时,编辑器将插入BBCodes(BBCodes),几乎与我需要的一样:

[list]
[*]
x[/list]
因为它在
[*]
和内容之间创建了一个换行符,所以它看起来是断开的:


似乎编辑器控件(插入列表按钮)使用了
li
,其中
*
(最后一项)处理从BBCode到编辑器HTML的解析(在源代码和所见即所得视图之间切换时)

发现我需要在
*
BBCode中将
isSelfClosing
设置为
false
<不需要代码>skipLastLineBreak,也不需要使用
sceditor.formats.bbcode.remove('*')
删除标记,因为
set()
会覆盖任何现有标记(如文档中所述)

以下工作:

sceditor.formats.bbcode.set('*', {
    isInline: false,
    // Avoid automatically closing tag [/*]
    excludeClosing: true,
    // Avoids line break between [*] and list point content
    isSelfClosing: false,
    html: '<li>{0}</li>'
})
sceditor.formats.bbcode.set('*', {
    isInline: false,
    // Avoid automatically closing tag [/*]
    excludeClosing: true,
    // Avoids line break between [*] and list point content
    isSelfClosing: false,
    html: '<li>{0}</li>'
})
[list]
[*]x
[*]y
[/list]