0.0.2 • Published 8 years ago

@code-dot-org/blockly-core v0.0.2

Weekly downloads
-
License
-
Repository
github
Last release
8 years ago

Blockly Core (Code Studio fork)

This is a fork of Blockly, an open source visual programming environment.

Major additions and changes in this fork:

  • Modal editor for function blocks (function_editor.js)
  • Scrolling improvements:
  • New in-toolbox trashcan
  • Addition of "Functional blocks" and "Contract/Variable Editor" (contract_editor/) for use in the CS in Algebra curriculum
  • Support for "block limits" (block_limits.js), toolbox blocks which allow only a certain number of instances in the block space
  • Support for new block properties (block.js): invisible, un-deletable, immovable, specify-able via a context menu when Blockly.editBlocks is set
  • Structure: add folders in core/ to further categorize classes
  • New field types:
  • BlockSpace (Workspace) Refactoring:
    • moved many static properties and methods from blockly.js into a prototype class BlockSpaceEditor which can be instantiated multiple times on the same page
    • renamed Workspace to BlockSpace to disambiguate from higher-level BlockSpaceEditor
    • improved support for multiple blockspaces on a single page
  • Playground: add dependency cache and generation script (tests/update_test_dependencies.sh), to allow for testing changes without re-building
    • support for goog.ui.tweaks to configure playground page behavior
    • debug drawing helpers for block bumping
  • Support for a special UI for unattached blocks
  • Improvements to block arrangement on initialization
  • Testing: add phantomjs-based test runner test.sh. Tested in CI at root level of this repository.

Installation

cd blockly-core
npm install
./deploy.sh

Usage

Playground manual testing page

There is a playground manual testing page at tests/playground.html, which requires no build step or server running.

open tests/playground.html

Building with apps

This is the most typical use case for code-dot-org fork development.

Apps (aka Blockly apps) is a set of blockly apps built on top of blockly-core. Follow the building with core instructions in that repository to build blockly-core into apps.

Testing changes

There are a set of utility and integration tests included in tests/blockly_test.html, and a playground manual testing page at tests/playground.html.

After adding any new files, you will need to run ./update_test_dependencies.sh to update the test dependency map, which caches file dependencies so edits can be tested and played with without any re-build time.

There are three ways the test suites can be run:

  1. ./test.sh will run the tests in phantomjs
  2. To debug failures, you can open the test page in your browser, e.g. open tests/blockly_test.html
  3. ./deploy.sh will also run ./test.sh at the end of its full rebuild.
Other tests covering this package

Blockly apps contains many tests that target features of blockly-core in the context of the code.org curriculum apps.

Additionally, Dashboard's UI tests cover certain features of blockly-core through Cucumber / Selenium scenarios.