With the conclusion of the third week of Google Summer of Code, the first evaluation is coming closer.
My project is "Collaborative Editors" which provide a plugin for various Real-Time Collaborative Editors. It also allows integration of those Real-Time Collaborative Editors.
A module with a completed "Collaborative Network" Plugin Manager with partially completed Etherpad Plugin.
Also, 2 PHP Unit Tests to check the presence of "collaborative_editors.overview" route and to check availability of "EtherpadEditor" Plugin
Week 3 Progress
My main aim of this week is to add a login for Etherpad Integration in Drupal 8.
For this, I completed a skeleton for Text Editor in Drupal 8
Using Editor API of Drupal's core module "Text Editor" I make the "Etherpad" editor discoverable in Drupal 8 system
Visit "/admin/config/content/formats" and, Add or Configure any existing Text Format and see "Etherpad" as an available Text Editor
Implemented hook_requirements() to check the presence of Etherpad client library and jQuery Plugin, and give requirement error if not present
Visit "/admin/report/status" to check for any Requirement Error.
Added hook_library_info_build() to include Etherpad jQuery Plugin
The site administrator needs to put the Etherpad jQuery Client library in "DRUPAL_ROOT/libraries" folder so that the module can access it.
Added "Test Connection" button in Etherpad configuration form
Lack of Documentation: There is very few documentation on available Classes and their Methods to develop Text Editor for Drupal
For example: At Text Editor API documentation
There is a line
"Drupal.editors" is not defined anywhere else in documentation
And even in file "core/modules/ckeditor/js/ckeditor.js" there are no comments to understand the code
So, I installed various Text Editors available for Drupal 8 and gone into their source code. Also, I have written many small dummy code to understand what does that piece of code do.
Integration of third-party library in Drupal:
There are many ways to include third-party libraries in Drupal. Some provided by Drupal core and some through installing the external module. Also, there is a different procedure to include the dynamic library and static library.