angular4-tinymce-biznet
Version:
Angular component for TinyMCE MCE WYSIWYG editor By Biznet
131 lines (111 loc) • 4.11 kB
Markdown
# angular2-tinymce
`Now compatible with Angular 4.0.1 with AOT support! and Filemanager Responsive`
## Usage
First, install package via npm:
```
npm install --save angular4-tinymce-biznet
```
Then copy lightgray skin files from [here](https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.6.4/skins/lightgray/skin.min.css) and [here](https://cdnjs.cloudflare.com/ajax/libs/tinymce/4.6.4/skins/lightgray/content.min.css) to the `/assets` folder. So, i.e. there must be available `/assets/tinymce/skins/lightgray/skin.min.css` and `/assets/tinymce/skins/lightgray/content.min.css` file.
You can override skin path by specifying `skin_url` option (default `/assets/tinymce/skins/lightgray`).
Import `TinymceModule` in you `app.module.ts` like this:
```typescript
import { TinymceModule } from 'angular2-tinymce';
@NgModule({
imports: [
...
TinymceModule.withConfig({})
],
...
})
export class AppModule { }
```
Then use it:
```html
<app-tinymce [formControl]='contentControl'></app-tinymce>
```
or
```html
<app-tinymce [(ngModel)]='content'></app-tinymce>
```
## Configure
You can configure TinyMCE globally:
```typescript
import { TinymceModule } from 'angular2-tinymce';
@NgModule({
imports: [
...
TinymceModule.withConfig({
... //any TinyMCE config here
})
],
...
})
export class AppModule { }
```
Please note that config is extended a bit.
- Besides the original config angular2-tinymce supports `baseURL` for providing, i.e., custom plugins paths.
- `auto_focus` option is boolean instead of string.
- You cannot specify `selector` option (and you don't need to, right?).
- `setup` and `init_instance_callback` are executed after the components'.
- You can view more info about supported options [here] (src/angular2-tinymce.config.interface.ts)
## Plugins
If you need other plugins than standart (`link paste table advlist autoresize lists code`) you should create plugins folder in the `baseURL` (default '/assets/tinymce') and place your plugins in it.
**Example:**
Place emoticons plugin to an `/assets/tinymce/plugins` folder, then:
```typescript
import { TinymceModule } from 'angular2-tinymce';
@NgModule({
imports: [
...
TinymceModule.withConfig({
plugins: ['emoticons'],
toolbar: 'emoticons'
})
],
...
})
export class AppModule { }
```
Alternativaly you can `npm install tinymce --save` and import plugins like that:
```typescript
import 'tinymce/plugins/emoticons/plugin.js';
```
## SystemJS configuration
When using SystemJS, you need to load tinymce plugins as global shim modules instead of AMD modules (default).
Update the file systemjs.config.js as following:
```typescript
System.config({
meta: {
...
'node_modules/tinymce/plugins/advlist/plugin.js': { format: 'global' },
'node_modules/tinymce/plugins/autoresize/plugin.js': { format: 'global' },
'node_modules/tinymce/plugins/code/plugin.js': { format: 'global' },
'node_modules/tinymce/plugins/link/plugin.js': { format: 'global' },
'node_modules/tinymce/plugins/lists/plugin.js': { format: 'global' },
'node_modules/tinymce/plugins/paste/plugin.js': { format: 'global' },
'node_modules/tinymce/plugins/table/plugin.js': { format: 'global' },
'node_modules/tinymce/themes/modern/theme.js': { format: 'global' },
},
map: {
...
'angular2-tinymce': 'node_modules/angular2-tinymce/dist',
'tinymce': 'node_modules/tinymce',
},
packages: {
...
'angular2-tinymce': { main: 'index.js', defaultExtension: 'js' },
'tinymce': { defaultExtension: 'js' },
}
});
```
Note that tinymce npm package should be loaded in addition to angular2-tinymce when using SystemJS. Otherwise, it won't be able to load the plugins.
## Contributing
Please feel free to leave your PRs, issues, feature requests.
## Upcoming features
- [x] Tinymce configuration
- [x] Aot support
- [ ] Per-editor configuration
- [ ] Add github pages demo
- [ ] File uploading
- [ ] Events
- [ ] Tests