ckeditor / ckbuilder

The development repository of CKBuilder, a command line builder for CKEditor 4.
Other
19 stars 11 forks source link

how to change ckbuilder configuration to include and minify all ckeditor plugins #8

Closed luzfcb closed 9 years ago

luzfcb commented 9 years ago

hello, I would like to include and minify all available plugins from https://github.com/ckeditor/ckeditor-dev/tree/4.5.3/plugins, but I do not know how to set up build.sh to include them.

I tried to include the names of all the plugins in build-config.js configuration file, and run the build script again, however, it again did not include all the plugins.

related to this issue: https://github.com/django-ckeditor/django-ckeditor/issues/212

I could not find any documentation explaining how to change it.

I read somewhere of the documentation (not figured out where), which is not good practice to include all plugins, however, I did not saw any information explaining why.

I can supposing that ckeditor only loads the standard plugins, and plugins listed in extraPlugins

luzfcb@luzfcb:~$ git clone https://github.com/ckeditor/ckeditor-dev.git
luzfcb@luzfcb:~$ cd ckeditor-dev
luzfcb@luzfcb:~/ckeditor-dev$ git checkout 4.5.3
luzfcb@luzfcb:~/ckeditor-dev$ # count number of plugins
luzfcb@luzfcb:~/ckeditor-dev$ ls -1 plugins/ | wc -l
101
luzfcb@luzfcb:~/ckeditor-dev$ cd dev/builder/
luzfcb@luzfcb:~/ckeditor-dev/dev/builder$ ./build.sh
luzfcb@luzfcb:~/ckeditor-dev/dev/builder$ # count number of minified plugins 
luzfcb@luzfcb:~/ckeditor-dev/dev/builder$ ls -1 release/ckeditor/plugins/ | wc -l
58
thecatontheflat commented 9 years ago

I think there is no such thing as include all plugins, so you should list all the names there in the build.js

Reinmar commented 9 years ago

I tried to include the names of all the plugins in build-config.js configuration file, and run the build script again, however, it again did not include all the plugins.

That definitely works, but I guess that you tried checking what's inside the plugins/ directory and you will find there only those plugins which have dialogs or other external assets. The rest is fully merged into ckeditor.js.

I read somewhere of the documentation (not figured out where), which is not good practice to include all plugins, however, I did not saw any information explaining why.

I'm not 100% sure what you mean by "to include all plugins".

If you meant an editor file (ckeditor.js) which contains all plugins built in it, then that's a bad idea. That's because you would generate a huge package from which you would use only couple of plugins (but all need to be transferred to the browser), or even worse – you would create an editor with a 50 plugins, from which the user would use 5.

If you however meant that you want to build a package like our standard-all, so a package which contains the standard preset (in one file) and other plugins available to load on demand, then it's a better solution. But this is what the dev builder produces by default. See:

master 52f6dd6) p@m /www/ckeditor-dev> ls dev/builder/release/ckeditor/plugins/
a11yhelp        autolink        devtools        embedbase       icons.png       language        menubutton      preview         stylesheetparser    uploadimage
about           bbcode          dialog          embedsemantic       icons_hidpi.png     lineutils       notification        sharedspace     table           uploadwidget
adobeair        clipboard       div         filetools       iframe          link            notificationaggregator  showblocks      tableresize     widget
ajax            codesnippet     divarea         find            iframedialog        liststyle       pagebreak       smiley          tabletools      xml
autoembed       codesnippetgeshi    docprops        flash           image           magicline       pastefromword       sourcedialog        templates
autogrow        colordialog     embed           forms           image2          mathjax         placeholder     specialchar     uicolor

Note that I don't have all these plugins listed in the build config – they are added automatically, but only these from the build config are included in ckeditor.js.

You can read more here about building a proper package here: http://ckeditor.com/blog/4-Common-CKEditor-Installation-Mistakes-And-How-To-Avoid-Them