• 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.


  • The Blockly editor: This contains custom made blocks for the most commonly used scripting actions
  • The compiler: This converts the blocks to code for various programming languages, starting with Velocity
  • The decompiler: This converts code to the Blockly blocks while editing scripts. This needs to be evaluated and it needs to be decided whether it would be out of scope of our project


  • 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
  • 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.


Tags: gsoc

Get Connected