大家好,
出于多种原因,我们确实正在考虑将 Discourse 作为我们论坛软件的替代方案。但我们需要解决的一个关键问题是:如何处理我们网站上目前支持的所有 BBCode。相关说明可参考:Tutorial - RpNation - BBcode Guide | RpNation 以及 https://www.rpnation.com/threads/rpnation-bbcode-guide.388933/。
参考 vBulletin BBCode 插件 ,似乎并不太难为我们现有的功能添加支持。正如指南中所示,我们有各种自定义 BBCode,从简单的功能到自定义的 div BBCode,后者允许用户在安全的前提下在一定程度上使用 HTML,它会为帖子生成一个自定义的 ID 选择器,用户无法定位到帖子容器之外的任何内容。
多年来,这使人们能够创建出一些非常出色的帖子。这里有一个我随便浏览时找到的示例:
我的问题是:我们应该将其开发为一个 BBCode 插件,还是尝试创建一种安全的方法,像我们处理 BBCode 那样将 HTML 选择器限制在帖子内部,并研究这种方法,然后提供该方案?
不过,一想到允许用户使用 HTML,我就感到有些不安。
我们希望继续让用户能够格式化他们的帖子,同时确保所有内容保持安全。
2 个赞
Falco
(Falco)
2020 年4 月 23 日 03:53
2
我理解你为什么要寻找新软件了,加载 Tutorial - RpNation - BBcode Guide | RpNation 对我来说需要两分钟:
我相信你所有的自定义样式,比如报纸、挑战、侧栏等,都可以通过 Generic bbcode wrapper for theme components 和 CSS 实现。
而且很多功能在 Discourse 中已经内置了,比如代码高亮、上标/下标、居中块、表格、引用块、内联Spoiler、分隔线、标题、媒体嵌入等等。
6 个赞
哦不。那听起来太糟糕了。我们运行的是 Cloudflare 加上一台配置不错的 AMD Ryzen 服务器。对我来说,未登录状态下加载所有资源大约需要两秒。
我们确实正在研究这个。也就是说,我们可以在主题组件中添加任意 HTML/CSS,然后通过自定义的 bbcode 标签来调用它?
[blah]内容[/blah]?
所以在这种情况下,我们可以用以下方式重现部分内容:
[wrap=bg bg=blue] 或 [wrap=random-name newspaper=1]
不过,也许最好还是采用类似插件的格式,这样大量内容才不会丢失格式。此外,还需要支持多个可选参数。
3 个赞
pfaffman
(Jay Pfaffman)
2020 年4 月 23 日 19:34
4
2 个赞
难道你不能在觉得需要添加更多内容时,把整个指南放在一个帖子中并制作成 Wiki 吗?将其分散在多个帖子中,在我看来会让阅读和理解变得更加困难,而且浪费了很多空间。
1 个赞
riking
(Kane York)
2020 年4 月 23 日 20:58
8
另外请注意,Discourse 开箱即用即支持在帖子内容中的任意位置使用部分受限的 HTML,而不仅限于特殊包装内。例如,本帖子就被包裹在 <div align=justify> 中。遗憾的是,这确实会影响一些内联格式,迫使段落中的所有内容 都必须使用 HTML。
https://meta.discourse.org/raw/148941/8
2 个赞
那个 bbcode 指南位于另一款论坛软件中,该软件不支持维基帖子。
太棒了。不过,我们更倾向于将其保留为 bbcode,通过扩展那个插件来添加,而不是寻找一种方法给所有人提供更多需要确保安全的 HTML。
2 个赞
neounix
(Dark Matter)
2020 年4 月 24 日 01:58
10
我们发现官方 Discourse BBCode 插件比这个插件更难修改(因为我们的 Discourse 插件开发技能有限):
Awesome BBCodes 插件
Awesome BBCodes Plugin: multi-paragraph, nestable, with auto-complete
“Awesome BBCodes 插件”非常容易进行 fork、克隆和修改/调整,比“Discourse BBCode”插件简单得多。
我的建议是,任何(@TheDarkWizard )想要创建自定义 BBCode 的人,都应该从“Awesome BBCodes 插件”开始,并在此基础上进行修改。
3 个赞