node package manager

pxt-core

Microsoft MakeCode

Build Status

Microsoft MakeCode is based on the open source project Microsoft Programming Experience Toolkit (PXT). Microsoft MakeCode is the name in the user-facing editors, PXT is used in all the GitHub sources.

PXT is a framework for creating special-purpose programming experiences for beginners, especially focused on computer science education. PXT's underlying programming language is a subset of TypeScript (leaving out JavaScript dynamic features).

The main features of PXT are:

  • a Blockly-based code editor along with converter to the text format
  • a Monaco code editor that powers VS Code, editor's features are listed here.
  • extensibility support to define new blocks in TypeScript
  • an ARM Thumb machine code emitter
  • a command-line package manager

More info:

Examples of Editors built with PXT:

Branches

  • master is the active development branch, currently v1.* builds
  • v0 is the servicing branch for v0.* builds

Running a target from localhost

Please follow the instructions here.

Linking a target to PXT

If you are modifying your own instance of PXT and want a target (such as pxt-microbit) to use your local version, cd to the directory of the target (pxt-microbit, in our example, which should be a directory sibling of pxt) and perform

npm link ../pxt

Build

First, install Node: minimum version 5.7. Then install the following:

npm install -g jake
npm install -g typings

To build the PXT command line tools:

npm install
typings install
jake

Then install the pxt command line tool (only need to do it once):

npm install -g pxt

After this you can run pxt from anywhere within the build tree.

To start the local web server, run pxt serve from within the root of an app target (e.g. pxt-microbit). PXT will open the editor in your default web browser.

Alternatively, if you clone your pxt and pxt-microbit directories next to each other, you can serve your local pxt-microbit repo from within the pxt repo by running jake serve.

Icons

There are a number of custom icons (to use in addition to http://semantic-ui.com/elements/icon.html) in the svgicons/ directory. These need to be 1000x1000px. Best start with an existing one. To see available icons go to http://localhost:3232/icons.html (this file, along with icons.css containing the generated WOFF icon font, is created during build).

If you're having trouble with display of the icon you created, try:

npm install -g svgo
svgo svgicons/myicon.svg

Versions

Current serviced versions of PXT:

Module Version Label
pxt-core v1.8.* mainline PXT
pxt-core v2.0.* freshcoat PXT (New rendering of blocks)
pxt-core v0.12.* v0 PXT
pxt-core v0.13.* v0 PXT with accessibility

Tests

The tests are located in the tests/ subdirectory and are a combination of node and browser tests. To execute them, run jake test in the root directory.

License

MIT

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.