mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-08-12 20:02:28 +08:00
feat(rtl): add language switcher toolbar
This commit is contained in:
parent
b99ead6a84
commit
e930ae5f40
4
libraries/ckeditor/ckeditor.js
vendored
4
libraries/ckeditor/ckeditor.js
vendored
File diff suppressed because one or more lines are too long
2
libraries/ckeditor/ckeditor.js.map
vendored
2
libraries/ckeditor/ckeditor.js.map
vendored
File diff suppressed because one or more lines are too long
@ -110,19 +110,19 @@ export function buildConfig() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function buildToolbarConfig(isClassicToolbar: boolean) {
|
export function buildToolbarConfig(isClassicToolbar: boolean) {
|
||||||
|
const languages = JSON.parse(options.get("languages") ?? "[]") as string[];
|
||||||
|
const enableLanguageSwitcher = languages.length > 1;
|
||||||
|
|
||||||
if (isClassicToolbar) {
|
if (isClassicToolbar) {
|
||||||
const multilineToolbar = utils.isDesktop() && options.get("textNoteEditorMultilineToolbar") === "true"
|
const multilineToolbar = utils.isDesktop() && options.get("textNoteEditorMultilineToolbar") === "true"
|
||||||
return buildClassicToolbar(multilineToolbar);
|
return buildClassicToolbar(multilineToolbar, enableLanguageSwitcher);
|
||||||
} else {
|
} else {
|
||||||
return buildFloatingToolbar();
|
return buildFloatingToolbar(enableLanguageSwitcher);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildClassicToolbar(multilineToolbar: boolean) {
|
function buildClassicToolbar(multilineToolbar: boolean, enableLanguageSwitcher: boolean) {
|
||||||
// For nested toolbars, refer to https://ckeditor.com/docs/ckeditor5/latest/getting-started/setup/toolbar.html#grouping-toolbar-items-in-dropdowns-nested-toolbars.
|
const items = [
|
||||||
return {
|
|
||||||
toolbar: {
|
|
||||||
items: [
|
|
||||||
'heading', 'fontSize',
|
'heading', 'fontSize',
|
||||||
'|',
|
'|',
|
||||||
'bold', 'italic',
|
'bold', 'italic',
|
||||||
@ -163,17 +163,25 @@ function buildClassicToolbar(multilineToolbar: boolean) {
|
|||||||
'|',
|
'|',
|
||||||
'outdent', 'indent',
|
'outdent', 'indent',
|
||||||
'|',
|
'|',
|
||||||
'markdownImport', 'cuttonote', 'findAndReplace'
|
'markdownImport', 'cuttonote', 'findAndReplace',
|
||||||
],
|
];
|
||||||
|
|
||||||
|
if (enableLanguageSwitcher) {
|
||||||
|
items.push('|');
|
||||||
|
items.push('textPartLanguage');
|
||||||
|
}
|
||||||
|
|
||||||
|
// For nested toolbars, refer to https://ckeditor.com/docs/ckeditor5/latest/getting-started/setup/toolbar.html#grouping-toolbar-items-in-dropdowns-nested-toolbars.
|
||||||
|
return {
|
||||||
|
toolbar: {
|
||||||
|
items,
|
||||||
shouldNotGroupWhenFull: multilineToolbar
|
shouldNotGroupWhenFull: multilineToolbar
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildFloatingToolbar() {
|
function buildFloatingToolbar(enableLanguageSwitcher: boolean) {
|
||||||
return {
|
const items = [
|
||||||
toolbar: {
|
|
||||||
items: [
|
|
||||||
'fontSize',
|
'fontSize',
|
||||||
'bold',
|
'bold',
|
||||||
'italic',
|
'italic',
|
||||||
@ -188,7 +196,16 @@ function buildFloatingToolbar() {
|
|||||||
'removeFormat',
|
'removeFormat',
|
||||||
'internallink',
|
'internallink',
|
||||||
'cuttonote'
|
'cuttonote'
|
||||||
]
|
];
|
||||||
|
|
||||||
|
if (enableLanguageSwitcher) {
|
||||||
|
items.push('|');
|
||||||
|
items.push('textPartLanguage');
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
toolbar: {
|
||||||
|
items
|
||||||
},
|
},
|
||||||
|
|
||||||
blockToolbar: [
|
blockToolbar: [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user