mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-09-19 02:10:04 +08:00
client: Basic integration of classic editor w/ no attribute editor
This commit is contained in:
parent
5116bddc5f
commit
9a5de0d4c8
44
libraries/ckeditor/ckeditor.d.ts
vendored
Normal file
44
libraries/ckeditor/ckeditor.d.ts
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/**
|
||||||
|
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||||
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||||
|
*/
|
||||||
|
import { ClassicEditor as ClassicEditorBase } from '@ckeditor/ckeditor5-editor-classic';
|
||||||
|
import { CKFinderUploadAdapter } from '@ckeditor/ckeditor5-adapter-ckfinder';
|
||||||
|
import { Autoformat } from '@ckeditor/ckeditor5-autoformat';
|
||||||
|
import { Bold, Italic } from '@ckeditor/ckeditor5-basic-styles';
|
||||||
|
import { BlockQuote } from '@ckeditor/ckeditor5-block-quote';
|
||||||
|
import { CKBox } from '@ckeditor/ckeditor5-ckbox';
|
||||||
|
import { CKFinder } from '@ckeditor/ckeditor5-ckfinder';
|
||||||
|
import { EasyImage } from '@ckeditor/ckeditor5-easy-image';
|
||||||
|
import { Heading } from '@ckeditor/ckeditor5-heading';
|
||||||
|
import { Image, ImageCaption, ImageStyle, ImageToolbar, ImageUpload, PictureEditing } from '@ckeditor/ckeditor5-image';
|
||||||
|
import { Indent } from '@ckeditor/ckeditor5-indent';
|
||||||
|
import { Link } from '@ckeditor/ckeditor5-link';
|
||||||
|
import { List } from '@ckeditor/ckeditor5-list';
|
||||||
|
import { MediaEmbed } from '@ckeditor/ckeditor5-media-embed';
|
||||||
|
import { Paragraph } from '@ckeditor/ckeditor5-paragraph';
|
||||||
|
import { PasteFromOffice } from '@ckeditor/ckeditor5-paste-from-office';
|
||||||
|
import { Table, TableToolbar } from '@ckeditor/ckeditor5-table';
|
||||||
|
import { TextTransformation, Typing } from '@ckeditor/ckeditor5-typing';
|
||||||
|
import { CloudServices } from '@ckeditor/ckeditor5-cloud-services';
|
||||||
|
import { Enter, ShiftEnter } from '@ckeditor/ckeditor5-enter';
|
||||||
|
import { SelectAll } from '@ckeditor/ckeditor5-select-all';
|
||||||
|
import { Undo } from '@ckeditor/ckeditor5-undo';
|
||||||
|
export default class ClassicEditor extends ClassicEditorBase {
|
||||||
|
static builtinPlugins: (typeof TextTransformation | typeof Typing | typeof Enter | typeof ShiftEnter | typeof SelectAll | typeof Undo | typeof CKFinderUploadAdapter | typeof Paragraph | typeof Heading | typeof Autoformat | typeof Bold | typeof Italic | typeof BlockQuote | typeof Image | typeof ImageCaption | typeof ImageStyle | typeof ImageToolbar | typeof ImageUpload | typeof CloudServices | typeof CKBox | typeof CKFinder | typeof EasyImage | typeof List | typeof Indent | typeof Link | typeof MediaEmbed | typeof PasteFromOffice | typeof Table | typeof TableToolbar | typeof PictureEditing | {
|
||||||
|
new (): Clipboard;
|
||||||
|
prototype: Clipboard;
|
||||||
|
})[];
|
||||||
|
static defaultConfig: {
|
||||||
|
toolbar: {
|
||||||
|
items: string[];
|
||||||
|
};
|
||||||
|
image: {
|
||||||
|
toolbar: string[];
|
||||||
|
};
|
||||||
|
table: {
|
||||||
|
contentToolbar: string[];
|
||||||
|
};
|
||||||
|
language: string;
|
||||||
|
};
|
||||||
|
}
|
4
libraries/ckeditor/ckeditor.js
vendored
4
libraries/ckeditor/ckeditor.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -341,26 +341,6 @@ export default class AttributeEditorWidget extends NoteContextAwareWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async initEditor() {
|
async initEditor() {
|
||||||
await libraryLoader.requireLibrary(libraryLoader.CKEDITOR);
|
|
||||||
|
|
||||||
this.$widget.show();
|
|
||||||
|
|
||||||
this.$editor.on("click", e => this.handleEditorClick(e));
|
|
||||||
|
|
||||||
/** @property {BalloonEditor} */
|
|
||||||
this.textEditor = await BalloonEditor.create(this.$editor[0], editorConfig);
|
|
||||||
this.textEditor.model.document.on('change:data', () => this.dataChanged());
|
|
||||||
this.textEditor.editing.view.document.on('enter', (event, data) => {
|
|
||||||
// disable entering new line - see https://github.com/ckeditor/ckeditor5/issues/9422
|
|
||||||
data.preventDefault();
|
|
||||||
event.stop();
|
|
||||||
}, {priority: 'high'});
|
|
||||||
|
|
||||||
// disable spellcheck for attribute editor
|
|
||||||
this.textEditor.editing.view.change(writer => writer.setAttribute('spellcheck', 'false', this.textEditor.editing.view.document.getRoot()));
|
|
||||||
|
|
||||||
//await import(/* webpackIgnore: true */'../../libraries/ckeditor/inspector');
|
|
||||||
//CKEditorInspector.attach(this.textEditor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dataChanged() {
|
dataChanged() {
|
||||||
|
@ -133,7 +133,7 @@ export default class EditableTextTypeWidget extends AbstractTextTypeWidget {
|
|||||||
// display of $widget in both branches.
|
// display of $widget in both branches.
|
||||||
this.$widget.show();
|
this.$widget.show();
|
||||||
|
|
||||||
this.watchdog = new EditorWatchdog(BalloonEditor, {
|
this.watchdog = new EditorWatchdog(ClassicEditor, {
|
||||||
// An average number of milliseconds between the last editor errors (defaults to 5000).
|
// An average number of milliseconds between the last editor errors (defaults to 5000).
|
||||||
// When the period of time between errors is lower than that and the crashNumberLimit
|
// When the period of time between errors is lower than that and the crashNumberLimit
|
||||||
// is also reached, the watchdog changes its state to crashedPermanently, and it stops
|
// is also reached, the watchdog changes its state to crashedPermanently, and it stops
|
||||||
@ -169,7 +169,7 @@ export default class EditableTextTypeWidget extends AbstractTextTypeWidget {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.watchdog.setCreator(async (elementOrData, editorConfig) => {
|
this.watchdog.setCreator(async (elementOrData, editorConfig) => {
|
||||||
const editor = await BalloonEditor.create(elementOrData, editorConfig);
|
const editor = await ClassicEditor.create(elementOrData, editorConfig);
|
||||||
|
|
||||||
await initSyntaxHighlighting(editor);
|
await initSyntaxHighlighting(editor);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user