Renato Atilio 623f02aff6
FEATURE: add details (plugin) rich editor extension (#31718)
Continues the work done on
https://github.com/discourse/discourse/pull/30815.

Adds `details` and `summary` nodes, parsers, and serializers, and a
click handler to toggle the `open` attribute.

---------

Co-authored-by: Martin Brennan <martin@discourse.org>
2025-03-11 20:15:32 -03:00

34 lines
826 B
JavaScript

import $ from "jquery";
import { withPluginApi } from "discourse/lib/plugin-api";
import { i18n } from "discourse-i18n";
import richEditorExtension from "../lib/rich-editor-extension";
function initializeDetails(api) {
api.decorateCooked(($elem) => $("details", $elem), {
id: "discourse-details",
});
api.addComposerToolbarPopupMenuOption({
action: function (toolbarEvent) {
toolbarEvent.applySurround(
"\n" + `[details="${i18n("composer.details_title")}"]` + "\n",
"\n[/details]\n",
"details_text",
{ multiline: false }
);
},
icon: "caret-right",
label: "details.title",
});
api.registerRichEditorExtension(richEditorExtension);
}
export default {
name: "apply-details",
initialize() {
withPluginApi("1.14.0", initializeDetails);
},
};