I am trying to install ckeditor to my angular project. I already tried installing ckeditor4-angular via npm but was unable to find a way to add plugins like the WIRIS mathType. Please how can i install the editor to my angular project and as well install plugins?
- 515
 - 1
 - 7
 - 16
 
- 
                    use CKEditor in angular: https://stackoverflow.com/questions/58155972/how-to-get-data-from-ckeditor/58156538#58156538 – Abolfazl Roshanzamir Oct 14 '20 at 12:42
 - 
                    add a plugin to CKEditor in angular: https://stackoverflow.com/questions/39208766/ng2-ckeditor-add-placeholder-plugin-using-typescript-and-angular-2-0/64329399#64329399 – Abolfazl Roshanzamir Oct 14 '20 at 12:43
 
3 Answers
Here is an issue regarding this https://github.com/ckeditor/ckeditor5-angular/issues/134. You need to create your custom CKEditor build and include necessary plugins into it. Here is the guide: https://ckeditor.com/docs/ckeditor5/latest/builds/guides/development/custom-builds.html BTW I suggest you to use CKEditor 5, the latest version.
UPD:
- Clone the original repo:
 
git clone https://github.com/ckeditor/ckeditor5-build-classic.git
- Install dependencies
 
npm install
- Install necessary plugin itself
 
npm install --save @wiris/mathtype-ckeditor5
- Open 
src/ckeditor.jsand new plugin to the editor: 
...
import MathType from '@wiris/mathtype-ckeditor5';
...
ClassicEditor.builtinPlugins = [
   ...
   MathType
];
ClassicEditor.defaultConfig = {
    toolbar: {
        items: [
            ...
            'MathType',
            ...
        ]
    },
    ...
};
- Then build the editor (you maybe need to install yarn)
 
yarn run build
- After that copy everything from 
buildfolder to your project. For instance 
src/assets/js/ck-editor-math-type/
   -> translations
      -> ...
   -> ckeditor.js
- Add ckeditor code to 
package.json 
"dependencies": {
   ...
   "@ckeditor/ckeditor5-angular": "^1.1.2",
   ...
}
- Import CKEditor to your component:
 
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>'
    };
}
- Add it too your template.html
 
<ckeditor [(ngModel)]="model.editorData" [editor]="Editor"></ckeditor>
Hope this help you.
- 799
 - 8
 - 18
 
- 
                    
 - 
                    5
 - 
                    2In case anybody wants to use it as an `npm` package, push it up to your github repository ( gitusername/gitbranch ) (on github.com) and use it in package.json as `... "gitbranch": "gitusername/gitbranch#commit-id", ... `. Commit is to ensure you always have the same version. Hope this helps. – Nico Apr 16 '20 at 10:34
 - 
                    after 7th step do i need to import Ckeditor module in my feature module – paruvelly Vishwanath May 28 '20 at 08:01
 - 
                    Here is the elaborated step #7 https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/frameworks/angular.html – Ratul Sharker Jun 01 '20 at 18:45
 - 
                    I had to set "strict": false in tsconfig.json. If someone has a better solution to solve error 'Could not find a declaration file for module' let me know! – Wim den Herder May 16 '21 at 07:45
 
After step 7
Add ckeditor code to package.json "dependencies": { ... "@ckeditor/ckeditor5-angular": "^1.1.2", ... }
Step 8:
npm install
step 9:
In app.module.ts file you can add
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 { }
step 10: In file tsconfig.json add allowJs: ture
"compilerOptions": {
    "allowJs": true,
}
step 11:
Import CKEditor to your component:
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>'
    };
}
step 12:
Add it too your template.html
<ckeditor [(ngModel)]="model.editorData" [editor]="Editor"></ckeditor>
- 31
 - 3
 
- 
                    Spent the whole day on this trying various resources all over the internet and could not get it to work. – fromage9747 Nov 10 '20 at 08:30
 - 
                    i have done if you want you can access through this url https://github.com/sarveshhome/ckeditorwithMathPhysics – Sarvesh Kumar Nov 26 '20 at 06:51
 - 
                    For anyone still having issues, ensure your target in your tsconfig.json is `es2015` or higher `"target": "es2015"` – Alberto Rivera Dec 09 '20 at 18:31
 
Following steps worked for me :
Copy the everything from "ckeditor5\build" folder to your assets folder.
Import the module in your app.module.ts file like -
//app.module.ts file
import { CKEditorModule } from '@ckeditor/ckeditor5-angular';
...
imports:[..., CKEditorModule,]
...
- Now, in your component import the custom ckeditor like this -
 
import * as CustomEditor from '../../../assets/ckeditor.js';
- Create the object of editor like this
 
public Editor = CustomEditor.Editor;
Yes, you have to use Editor property from CustomEditor object
- Setup the ckeditor toolbar by settings its config property like :
 
<ckeditor [config]="{ toolbar: [ 'heading', '|', 'bold'. . . . ] }" [editor]="Editor">
Please make sure to set config property as it is going to complain if you don't.
- 85
 - 9