gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:09:24 25 4
gpt4 key购买 nike

TL;DR

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.js我可以通过替换 BBCode 的格式来解决这个问题:

sceditor.formats.bbcode.set('ul', {
tags: {
ul: null
},
breakStart: true,
isInline: false,
skipLastLineBreak: true,
format: '[list]{0}[/list]',
html: '<ul>{0}</ul>'
})

但是当我改变的时候但 [li]x[/li] 也不起作用,因为 VB 使用 [*] x 而不使用结束标记。也尝试修改此项目:

sceditor.formats.bbcode.remove('li')
sceditor.formats.bbcode.set('li', {
tags: {
li: null,
'*': null
},
isInline: false,
excludeClosing: true,
isSelfClosing: true,
skipLastLineBreak: true,
closedBy: ['/ul', '/ol', '/list', '*', 'li'],
format: '[*]{0}',
html: '<li>{0}</li>'
})
sceditor.formats.bbcode.remove('*')
sceditor.formats.bbcode.set('*', {
isInline: false,
//excludeClosing: true,
isSelfClosing: true,
//skipLastLineBreak: true,
html: '<li>{0}</li>'
})

现在,当按下列表按钮时,编辑器会根据我的需要插入 BBCode:

[list]
[*]
x[/list]

由于它在 [*] 和内容之间创建了换行符,因此它看起来已损坏:

enter image description here

似乎 li 用于编辑器控件(插入列表按钮),其中 * (最后一个条目)处理从 BBCode 到编辑器 HTML 的解析(当切换源代码和所见即所得 View 之间)。

最佳答案

发现我需要在 * BBCode 中将 isSelfClosing 设置为 falseskipLastLineBreak 不是必需的,也不需要使用 seditor.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>'
})

结果

[list]
[*]x
[*]y
[/list]

关于javascript - 在 SCEditor 中将列表项标记设置为 [*]x 而不是 [li]x[/li],以实现 vBulletin 兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57442600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com