diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json index af9c47ee3..5c7f0d056 100644 --- a/apps/client/src/translations/en/translation.json +++ b/apps/client/src/translations/en/translation.json @@ -1962,7 +1962,8 @@ "editorfeatures": { "title": "Features", "emoji_completion_enabled": "Enable Emoji auto-completion", - "note_completion_enabled": "Enable note auto-completion" + "note_completion_enabled": "Enable note auto-completion", + "slash_commands_enabled": "Enable slash commands" }, "table_view": { "new-row": "New row", diff --git a/apps/client/src/widgets/type_widgets/ckeditor/config.ts b/apps/client/src/widgets/type_widgets/ckeditor/config.ts index 7bb78aa93..a923ad92f 100644 --- a/apps/client/src/widgets/type_widgets/ckeditor/config.ts +++ b/apps/client/src/widgets/type_widgets/ckeditor/config.ts @@ -244,5 +244,9 @@ function getDisabledPlugins() { disabledPlugins.push("EmojiMention"); } + if (options.get("textNoteSlashCommandsEnabled") !== "true") { + disabledPlugins.push("SlashCommand"); + } + return disabledPlugins; } diff --git a/apps/client/src/widgets/type_widgets/options/text_notes.tsx b/apps/client/src/widgets/type_widgets/options/text_notes.tsx index 9003a5230..500fbbd5f 100644 --- a/apps/client/src/widgets/type_widgets/options/text_notes.tsx +++ b/apps/client/src/widgets/type_widgets/options/text_notes.tsx @@ -73,6 +73,7 @@ function EditorFeatures() { + ); } diff --git a/apps/server/src/routes/api/options.ts b/apps/server/src/routes/api/options.ts index 4f76acd68..8e9d6e1a6 100644 --- a/apps/server/src/routes/api/options.ts +++ b/apps/server/src/routes/api/options.ts @@ -91,6 +91,7 @@ const ALLOWED_OPTIONS = new Set([ "textNoteEditorMultilineToolbar", "textNoteEmojiCompletionEnabled", "textNoteCompletionEnabled", + "textNoteSlashCommandsEnabled", "layoutOrientation", "backgroundEffects", "allowedHtmlTags", diff --git a/apps/server/src/services/options_init.ts b/apps/server/src/services/options_init.ts index a89ad6a10..0908a0512 100644 --- a/apps/server/src/services/options_init.ts +++ b/apps/server/src/services/options_init.ts @@ -184,6 +184,7 @@ const defaultOptions: DefaultOption[] = [ { name: "textNoteEditorMultilineToolbar", value: "false", isSynced: true }, { name: "textNoteEmojiCompletionEnabled", value: "true", isSynced: true }, { name: "textNoteCompletionEnabled", value: "true", isSynced: true }, + { name: "textNoteSlashCommandsEnabled", value: "true", isSynced: true }, // HTML import configuration { name: "layoutOrientation", value: "vertical", isSynced: false }, diff --git a/packages/commons/src/lib/options_interface.ts b/packages/commons/src/lib/options_interface.ts index a94b25857..78e0cc609 100644 --- a/packages/commons/src/lib/options_interface.ts +++ b/packages/commons/src/lib/options_interface.ts @@ -127,6 +127,8 @@ export interface OptionDefinitions extends KeyboardShortcutsOptions