Как установить CKEDITOR в проект angular и добавить плагины

Я пытаюсь установить ckeditor в свой проект angular. Я уже пробовал установить ckeditor4-angular через npm, но не смог найти способ добавить плагины, такие как WIRIS mathType. Пожалуйста, как я могу установить редактор в мой проект angular, а также установить плагины?


person emmaakachukwu    schedule 06.12.2019    source источник
comment
используйте CKEditor в angular: stackoverflow .com / questions / 58155972 /   -  person AbolfazlR    schedule 14.10.2020
comment
добавить плагин в CKEditor в angular: stackoverflow.com/questions/39208766/   -  person AbolfazlR    schedule 14.10.2020


Ответы (2)


Вот проблема, связанная с этим https://github.com/ckeditor/ckeditor5-angular/issues/134. Вам необходимо создать собственную сборку CKEditor и включить в нее необходимые плагины. Вот руководство: https://ckeditor.com/docs/ckeditor5/latest/builds/guides/development/custom-builds.html Кстати, я предлагаю вам использовать последнюю версию CKEditor 5.

UPD:

  1. Клонировать исходное репо:

git clone https://github.com/ckeditor/ckeditor5-build-classic.git

  1. Установить зависимости

npm install

  1. Самостоятельно установить необходимый плагин

npm install --save @wiris/mathtype-ckeditor5

  1. Откройте src/ckeditor.js и новый плагин к редактору:
...
import MathType from '@wiris/mathtype-ckeditor5';
...

ClassicEditor.builtinPlugins = [
   ...
   MathType
];

ClassicEditor.defaultConfig = {
    toolbar: {
        items: [
            ...
            'MathType',
            ...
        ]
    },
    ...
};
  1. Затем соберите редактор (возможно, вам потребуется установить пряжу)

yarn run build

  1. После этого скопируйте все из папки build в свой проект. Например
src/assets/js/ck-editor-math-type/
   -> translations
      -> ...
   -> ckeditor.js
  1. Добавить код ckeditor в package.json
"dependencies": {
   ...
   "@ckeditor/ckeditor5-angular": "^1.1.2",
   ...
}
  1. Импортируйте CKEditor в свой компонент:
import * as ClassicEditor from '../../assets/js/ck-editor-math-type/ckeditor.js';

...
export class CkeditComponent implements OnInit {

    public Editor = ClassicEditor;

    public model = {
        editorData: '<p>Hello, world!</p>'
    };
}
  1. Добавьте его тоже в свой template.html
<ckeditor [(ngModel)]="model.editorData" [editor]="Editor"></ckeditor>

Надеюсь, это вам поможет.

person Maksim Vorontsov    schedule 07.12.2019
comment
Хорошо. Я буду рад видеть шаги по мере вашего продвижения. - person emmaakachukwu; 08.12.2019
comment
Я получаю дублирующуюся ошибку модуля, в точности соблюдена процедура. - person Yoku; 05.03.2020
comment
Если кто-то хочет использовать его как пакет npm, отправьте его в свой репозиторий github (gitusername / gitbranch) (на github.com) и используйте его в package.json как ... "gitbranch": "gitusername/gitbranch#commit-id", ... . Фиксация - это гарантия того, что у вас всегда будет одна и та же версия. Надеюсь это поможет. - person Nico; 16.04.2020
comment
после 7-го шага мне нужно импортировать модуль Ckeditor в мой функциональный модуль - person paruvelly Vishwanath; 28.05.2020
comment
Вот разработанный шаг № 7 ckeditor.com/docs / ckeditor5 / latest / builds / guides / integration / - person Ratul Sharker; 01.06.2020
comment
@Yoku То же самое, ошибка дублирования модуля. - person Dhairy Tripathi; 19.02.2021
comment
Мне пришлось установить strict: false в tsconfig.json. Если у кого-то есть лучшее решение для устранения ошибки «Не удалось найти файл декларации для модуля», дайте мне знать! - person Wim den Herder; 16.05.2021

После шага 7

Добавьте код ckeditor в зависимости package.json: {... @ ckeditor / ckeditor5-angular: ^ 1.1.2, ...}

Шаг 8:

npm install

шаг 9:

В файле app.module.ts вы можете добавить

import { CKEditorModule } from '@ckeditor/ckeditor5-angular';
import { FormsModule } from '@angular/forms'; 
import { ReactiveFormsModule } from '@angular/forms'; 

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    FormsModule,
    ReactiveFormsModule,
    CKEditorModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Шаг 10: В файл tsconfig.json добавьте allowJs: ture

"compilerOptions": {
    "allowJs": true,
}

шаг 11:

Импортируйте CKEditor в свой компонент:

import * as ClassicEditor from '../../assets/js/ck-editor-math-type/ckeditor.js';

...
export class CkeditComponent implements OnInit {

    public Editor = ClassicEditor;

    public model = {
        editorData: '<p>Hello, world!</p>'
    };
}

шаг 12:

Добавьте его тоже в свой template.html

<ckeditor [(ngModel)]="model.editorData" [editor]="Editor"></ckeditor>
person Sarvesh Kumar    schedule 28.08.2020
comment
Потратил на это целый день, пробуя различные ресурсы по всему Интернету, и не мог заставить его работать. - person fromage9747; 10.11.2020
comment
я сделал, если вы хотите, вы можете получить доступ через этот URL github.com/sarveshhome/ckeditorwithMathPhysics - person Sarvesh Kumar; 26.11.2020
comment
Для тех, у кого все еще есть проблемы, убедитесь, что ваша цель в tsconfig.json - es2015 или выше "target": "es2015" - person Alberto Rivera; 09.12.2020