mirror of
https://github.com/zadam/trilium.git
synced 2025-10-20 23:29:02 +02:00
feat(emoji): add an option to disable them (closes #5852)
This commit is contained in:
parent
1ac086b88e
commit
ba94616b87
@ -179,7 +179,8 @@ export async function buildConfig(opts: BuildEditorOptions): Promise<EditorConfi
|
|||||||
allow: JSON.parse(options.get("allowedHtmlTags"))
|
allow: JSON.parse(options.get("allowedHtmlTags"))
|
||||||
},
|
},
|
||||||
// This value must be kept in sync with the language defined in webpack.config.js.
|
// This value must be kept in sync with the language defined in webpack.config.js.
|
||||||
language: "en"
|
language: "en",
|
||||||
|
removePlugins: getDisabledPlugins()
|
||||||
};
|
};
|
||||||
|
|
||||||
// Set up content language.
|
// Set up content language.
|
||||||
@ -231,3 +232,13 @@ function getLicenseKey() {
|
|||||||
|
|
||||||
return premiumLicenseKey;
|
return premiumLicenseKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getDisabledPlugins() {
|
||||||
|
let disabledPlugins: string[] = [];
|
||||||
|
|
||||||
|
if (options.get("textNoteEmojiEnabled") !== "true") {
|
||||||
|
disabledPlugins.push("Emoji");
|
||||||
|
}
|
||||||
|
|
||||||
|
return disabledPlugins;
|
||||||
|
}
|
||||||
|
@ -46,6 +46,7 @@ import LanguageOptions from "./options/i18n/language.js";
|
|||||||
import type BasicWidget from "../basic_widget.js";
|
import type BasicWidget from "../basic_widget.js";
|
||||||
import CodeTheme from "./options/code_notes/code_theme.js";
|
import CodeTheme from "./options/code_notes/code_theme.js";
|
||||||
import RelatedSettings from "./options/appearance/related_settings.js";
|
import RelatedSettings from "./options/appearance/related_settings.js";
|
||||||
|
import EditorFeaturesOptions from "./options/text_notes/features.js";
|
||||||
|
|
||||||
const TPL = /*html*/`<div class="note-detail-content-widget note-detail-printable">
|
const TPL = /*html*/`<div class="note-detail-content-widget note-detail-printable">
|
||||||
<style>
|
<style>
|
||||||
@ -85,6 +86,7 @@ const CONTENT_WIDGETS: Record<OptionPages | "_backendLog", (typeof NoteContextAw
|
|||||||
],
|
],
|
||||||
_optionsTextNotes: [
|
_optionsTextNotes: [
|
||||||
EditorOptions,
|
EditorOptions,
|
||||||
|
EditorFeaturesOptions,
|
||||||
HeadingStyleOptions,
|
HeadingStyleOptions,
|
||||||
CodeBlockOptions,
|
CodeBlockOptions,
|
||||||
TableOfContentsOptions,
|
TableOfContentsOptions,
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
import { OptionMap } from "@triliumnext/commons";
|
||||||
|
import OptionsWidget from "../options_widget";
|
||||||
|
|
||||||
|
const TPL = /*html*/`
|
||||||
|
<div class="options-section">
|
||||||
|
<h4>Features</h4>
|
||||||
|
|
||||||
|
<label class="tn-checkbox">
|
||||||
|
<input type="checkbox" name="emoji-enabled" />
|
||||||
|
Enable Emoji support and auto-completion
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
export default class EditorFeaturesOptions extends OptionsWidget {
|
||||||
|
|
||||||
|
private $emojiEnabledCheckbox!: JQuery<HTMLElement>;
|
||||||
|
|
||||||
|
doRender() {
|
||||||
|
this.$widget = $(TPL);
|
||||||
|
|
||||||
|
this.$emojiEnabledCheckbox = this.$widget.find(`input[name="emoji-enabled"]`);
|
||||||
|
this.$emojiEnabledCheckbox.on("change", () => this.updateCheckboxOption("textNoteEmojiEnabled", this.$emojiEnabledCheckbox))
|
||||||
|
}
|
||||||
|
|
||||||
|
optionsLoaded(options: OptionMap) {
|
||||||
|
this.setCheckboxState(this.$emojiEnabledCheckbox, options.textNoteEmojiEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -85,6 +85,7 @@ const ALLOWED_OPTIONS = new Set<OptionNames>([
|
|||||||
"languages",
|
"languages",
|
||||||
"textNoteEditorType",
|
"textNoteEditorType",
|
||||||
"textNoteEditorMultilineToolbar",
|
"textNoteEditorMultilineToolbar",
|
||||||
|
"textNoteEmojiEnabled",
|
||||||
"layoutOrientation",
|
"layoutOrientation",
|
||||||
"backgroundEffects",
|
"backgroundEffects",
|
||||||
"allowedHtmlTags",
|
"allowedHtmlTags",
|
||||||
|
@ -178,6 +178,7 @@ const defaultOptions: DefaultOption[] = [
|
|||||||
// Text note configuration
|
// Text note configuration
|
||||||
{ name: "textNoteEditorType", value: "ckeditor-balloon", isSynced: true },
|
{ name: "textNoteEditorType", value: "ckeditor-balloon", isSynced: true },
|
||||||
{ name: "textNoteEditorMultilineToolbar", value: "false", isSynced: true },
|
{ name: "textNoteEditorMultilineToolbar", value: "false", isSynced: true },
|
||||||
|
{ name: "textNoteEmojiEnabled", value: "true", isSynced: true },
|
||||||
|
|
||||||
// HTML import configuration
|
// HTML import configuration
|
||||||
{ name: "layoutOrientation", value: "vertical", isSynced: false },
|
{ name: "layoutOrientation", value: "vertical", isSynced: false },
|
||||||
|
@ -118,6 +118,7 @@ export interface OptionDefinitions extends KeyboardShortcutsOptions<KeyboardActi
|
|||||||
editedNotesOpenInRibbon: boolean;
|
editedNotesOpenInRibbon: boolean;
|
||||||
codeBlockWordWrap: boolean;
|
codeBlockWordWrap: boolean;
|
||||||
textNoteEditorMultilineToolbar: boolean;
|
textNoteEditorMultilineToolbar: boolean;
|
||||||
|
textNoteEmojiEnabled: boolean;
|
||||||
backgroundEffects: boolean;
|
backgroundEffects: boolean;
|
||||||
|
|
||||||
// Share settings
|
// Share settings
|
||||||
|
Loading…
x
Reference in New Issue
Block a user