作曲家按钮盛会

:warning: 此组件仅适用于 Markdown 编辑器。与富文本编辑器不兼容。

:information_source: 摘要 Composer Button Bonanza 允许站点管理员定义并将新的标记按钮添加到 Composer 工具栏,并在其默认配置中提供了大量新按钮。
:hammer_and_wrench: 代码仓库 centertap/DiscourseComposerButtonBonanza - Codeberg.org
:eyes: 自述文件 Making sure you're not a bot!
:spiral_notepad: 发布说明 Making sure you're not a bot!
:question: 安装指南 如何安装主题或主题组件
:heart: 赞助 由…为您带来 CTAP
此主题组件由 Center for Transparent Analysis and Policy(一家 501(c)(3) 非营利组织)开发。如果此组件对您的站点有帮助,请考虑**向 CTAP 捐款以示支持**。

安装 Composer Button Bonanza

“您能负担得起的 Composer 辅助功能!”

Composer Button Bonanza 是一个主题组件,它为 Composer 提供了更多的标记按钮。

开箱即用,它提供了一系列新按钮、一堆按钮、一个按钮的盛宴。默认配置向工具栏添加了三个新按钮(您能找到它们吗?:smile:),并将其余的按钮隐藏在 :gear: 弹出菜单中的一个切换按钮后面:

点击切换按钮后,其余按钮将可见:

通过主题组件的配置设置,您可以:

  • 添加新的按钮定义(和/或删除提供的定义);
  • 选择显示哪些按钮以及何时显示它们;
  • 更改按钮的顺序,并将按钮放置在工具栏或工具栏的 :gear: 弹出菜单中;
  • 为按钮提供翻译/本地化。

此组件不定义任何标记或样式——它只是添加了方便的按钮(辅助功能!)来输入将调用现有样式的现有标记。其主要目的是帮助用户发现和使用 Composer 功能。例如,经常使用脚注的用户可能会直接在键盘上敲击 ^[];但我们其他人会很高兴有一个 :asterisk: 按钮来提醒我们该怎么做。

这种方法的一个好处是,如果您决定删除此主题组件,您不会干扰任何现有帖子的样式。此组件不负责任何样式设置;它只提供对 Composer 中已存在的功能,和/或由其他插件或主题组件提供的功能的快捷方式。

默认配置

默认配置提供了大多数(所有?)在默认 Discourse 安装中(启用了所有内置插件,未安装任何额外插件)可用的额外标记的定义:

  • 文本样式:
    • 下划线删除线
    • 上标下标
    • 大号文本小号文本
    • 键盘样式
  • 格式化
    • 一级标题二级标题三级标题
    • 脚注[1]
    • Ruby text(ルビー テキスト)
    • 通过外部 URL 的图像(<img>
    • 检查列表
    • 高亮插入的删除的 文本
  • 符号
    • 版权 ©,注册 ®,商标 ™
    • 欧元 €,日元 ¥
    • “耸肩”颜文字(因为,为什么不呢?¯\_(ツ)_/¯)
  • 以及一个用于显示/隐藏上述大部分按钮的切换按钮

如上所述,这些只是默认设置。所有这些按钮都可以重新排列或删除,也可以添加新按钮。


  1. …例如,像这样的脚注。 ↩︎

19 个赞

太棒了,谢谢!

有没有办法直接在顶部工具栏中添加“spoiler”标签?我们经常使用它。

编辑:我已经解决了 :smiley:

3 个赞

快捷方式如何工作?

我想为我的“隐藏内容”按钮创建一个键盘快捷方式,但大多数快捷方式不都是已经被其他功能占用了吗?

示例中说shift-4,但对我来说那是 $ 符号……

2 个赞

是的,非常好的组件。我在找那个在编辑器工具栏显示额外按钮的按钮。

我认为一个很酷的功能是添加一个按钮到编辑器工具栏。也许可以有两个选项:显示/隐藏和/或编辑器菜单。这样你就可以将功能分组到一个可选择的栏中。

比如说:

  • 样式栏:可以有加粗、斜体、删除线等功能。
  • 排版栏:表格、右对齐、居中等。
  • 并且可以选择自定义主栏,添加常用功能。

(请记住,此组件仅公开 Discourse JS 代码中已有的参数/选项……)

对于快捷键,您需要指定快捷键以及任何修饰键……然后 Discourse 始终会加上 ctrl+(或 Apple 硬件上的 cmd+?)。例如,字符串“shift+4”(作为按钮参数)会转换为 ctrl+shift+4(作为快捷键)。

:grimacing: 我还没有尝试找出一种方法来_移除_快捷键——同样,此组件是在 Composer 中已有的按钮基础上添加的。(我_希望_我能让 ctrl+e 成为预格式化文本的快捷键,而是“跳转到行尾”!)

2 个赞

h01y cr@p 这太棒了

2 个赞

我在这里遇到了一个问题,我正在使用它并且很喜欢它,但我添加了一个“spoiler”按钮,它使用 DIV 而不是 SPAN 来创建 spoiler 标签,因此在使用所见即所得编辑器时,它们总是会另起一行。

有什么方法可以更改此设置吗?

这还支持吗?

仍然遇到问题,剧透在 DIV 中而不是 SPAN 中。

我猜这不再受支持了?

有人能建议我如何修复这个问题吗,“剧透”按钮无法正常工作(请看我之前的帖子)

我将对此进行调查,但我需要您具体说明是如何添加这个“剧透”按钮的。

谢谢!

这是我的设置:

Screenshot 2025-11-30 at 19.58.22

下面还有更多。但通过以下方式添加了折叠内容:

spoiler,shift+x

在 Markdown 模式下,它工作得非常完美。
在所见即所得(WYSIWYG)模式下,当你选中一些内容并点击折叠按钮时,它不会被包裹在 SPAN 标签中,而是被包裹在 DIV 中,使其成为一个独立的块级元素。

谢谢!

就在一个小时前,我才意识到 ComposerButtonBonanza (CBB) 在所见即所得编辑器 (WYSIWYG-Composer) 中坏了。(或者,也许是反过来。) 我维护的网站不使用所见即所得编辑器,所以我从来没有注意到! 所以…… 唉。

(我不喜欢所见即所得编辑器。MediaWiki(例如维基百科)十几年前在所见即所得编辑器上投入了大量精力,认为这会鼓励更多人成为编辑者。结果却没有任何改变,而且他们也无法摆脱原始编辑器,因为所见即所得版本有很多事情实际上无法完成,而且与原始的维基代码+预览编辑器相比,它最终只是有点笨拙。)

嗯……与 CBB 无关……如果我在所见即所得编辑器中插入一个“剧透”(spoiler),然后点击剧透框外部编辑其他内容,它会永久模糊,而且我似乎无法再次编辑剧透文本……除非我切换到 Markdown 模式。是我遗漏了什么,还是这只是所见即所得模式中的一个错误?

……哦,算了! 如果我三击(出于沮丧和/或无聊),我就可以再次编辑剧透文本了!(我不喜欢所见即所得模式;我之前提过吗?)

1 个赞

如果您能修复剧透,使其不成为块级元素,我将非常感激 :folded_hands:

我在第一个帖子中添加了一个警告,说明它与富文本编辑器不兼容。

我没有测试过,但听起来这与这个特定的组件无关。我建议你提交一个新的支持错误报告,并提供重现步骤。

我无法重现,您使用的是什么浏览器?

此问题特定于该组件,核心的原始“模糊剧透”(Blur spoiler)操作使用的是不同的实现,而不仅仅是添加 [spoiler] bbcode。

2 个赞

啊,太好了,感谢您的关注。:+1:

我使用的是 Firefox 140.5.0esr

1 个赞

感谢您的报告,问题应该已经修复了。 (并为离题表示歉意)