Google-Blockly-Editor
Version 5.1 by Vivek Iyer on 2018/05/04 22:27
http://dev.xwiki.org/xwiki/bin/view/GoogleSummerOfCode/BlocklyEditor
https://developers.google.com/blockly/
Description
USE CASES
- Add a Blockly editor to the list of available editors (Wiki, WYSIWYG, etc) so that users can edit a page using the Blockly editor
- Ability to define the Blockly editor as the default editor in the Admin and in the user’s profile
- The Blockly editor contains various blocks for performing common XWiki scripting actions
- Ability to generate any scripting language output when saving the page, and starting with Velocity.
- Ability to convert scripts writing in any scripting language into a visual Blockly view, starting with Velocity. This needs to be explored and if this is not possible then it means saving the Blockly data into a XObject of the pages and offering a custom Edit Sheet to use that when editing the page with the Blockly Editor.
- Provide several Blocks by default that allow to do things in XWiki. Review common actions that need to be done in scripting and offer blocks for them. For example: Ability to write XWQL queries to return a list of pages and ability to execute actions on them: replace content, copy, rename, delete. Send email. Etc
- Add ability for developers to create/edit new Blockly Blocks inside wiki pages. All the provided blocks by default should be using this strategy so they can be modified.
ARCHITECTURE
- The Blockly editor: This is the topmost layer, and contains custom made blocks for the most commonly used scripting actions
- The converter: This is the middle layer, and converts the blocks to code, which gets displayed in the div
- The interpreter: This is the lowermost layer and interprets the converted code, this is similar to the source editor
PROS/CONS
Pros:
- Its easier to code, especially for the inexperienced users
- Even for the experienced users, its easier since more code is achieved in less keystrokes
- Encourages inexperienced coders to start coding too
Cons:
- Since the blocks are tailor-made for certain common scripting actions, other actions would probably me more difficult to code and would become complicated
- Google Blockly only supports a limited number of languages, so extending support for other programming languages would be a problem.