pxt

Microsoft MakeCode (PXT - Programming eXperience Toolkit)

Github stars Tracking Chart

Microsoft MakeCode

Build Status
Community Discord

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 v3.* builds
  • v* is the servicing branch for v*.* 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

pxt link ../pxt

If you have multiple checkouts of pxt, you can do the following:

  • run npm i in pxt and the target
  • in the target, run pxt link ..\some-other-pxt (you may need to update your CLI first by running npm install -g pxt)

If you run npm i afterwards (in either the target or pxt), you might need to repeat these steps.

Build

First, install Node: minimum version 8.

To build the PXT command line tools:

npm install
npm run build

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.

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

Documentation Highlighting

In the documentation, highlighting of code snippets uses highlight.js (hljs).
Currently, the following languages are included:

  • TypeScript
  • Python
  • JavaScript
  • HTML,XML
  • Markdown

If you need to add other languages or update existing ones,
you can find the distribution at https://highlightjs.org/download/;
select all the languages you want to include (including the ones above!),
download and unzip,
and finally copy over highlight.pack.js into webapp/public/highlight.js/.

Tests

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

License

MIT License

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.

Contact Us

Get in touch

Trademarks

MICROSOFT, the Microsoft Logo, and MAKECODE are registered trademarks of Microsoft Corporation. They can only be used for the purposes described in and in accordance with Microsoft’s Trademark and Brand guidelines published at https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general.aspx. If the use is not covered in Microsoft’s published guidelines or you are not sure, please consult your legal counsel or MakeCode team (makecode@microsoft.com).

Overview

Name With Ownermicrosoft/pxt
Primary LanguageTypeScript
Program languageMakefile (Language Count: 9)
Platform
License:MIT License
Release Count3272
Last Release Namev9.3.20 (Posted on 2024-04-12 12:19:52)
First Release Namev0.0.20 (Posted on 2016-03-07 22:46:47)
Created At2016-01-24 19:35:52
Pushed At2024-04-12 22:28:27
Last Commit At2024-04-12 12:15:07
Stargazers Count2k
Watchers Count102
Fork Count555
Commits Count13.3k
Has Issues Enabled
Issues Count2600
Issue Open Count160
Pull Requests Count6684
Pull Requests Open Count36
Pull Requests Close Count422
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top