Building your own extension
Step 1: Design blocks in the editor
It is easiest to tinker and design your blocks from the editor itself. Use the custom blocks feature for this purpose.
Step 2: GitHub setup
You will need to get a GitHub account and create a GitHub repository. At this time, other repository hosting solutions (GitLab, Bitbucket, etc.) are not supported.
Let’s say you want to create an extension called banana for target TARGET.
- create the repository in GitHub
- clone the repository into
pxt-banana - go to the folder for this repo
Step 3: Unpack your code
Install the PXT command line and use it to unpack the sources from a compiled file generated by clicking on Download.
setup the target
pxt target TARGETunpack the file
pxt extract HEXFILEbuild the project
pxt buildedit
pxt.jsonandREADME.mdwith the right descriptions- commit files to git:
git add ., and commit them:git commit -m "Initial"
Make sure you keep the line
for PXT/TARGET(whereTARGETis the target id) inREADME.md. Otherwise, the extension will not show up in search.
Step 4: Developing extension
Now, you’re ready to develop your extension. You can do it with VSCode
or from the web editor served from pxt serve.
- put the contents of your extension in
main.ts - add a sample program using the extension in
test.ts - use
pxtto build and deploy the extension with tests; use the web editor to test in the simulator
You will develop your extension in pxt-banana, and then test this work by creating a second project (called, perhaps, “Just Look At It”) which includes a reference to pxt-banana.
If the local editor fails to open, copy the URL printed in the console and open it in your favorite browser.
The local server requires a security token embedded in the URL to serve pages.
For a quick introduction on creating extensions, try the simple extension tutorial.
Step 5: Testing
In order to test your extension, you need to create a new project, and manually add a reference back to the extensin you’ve been developing.
- Open the local editor and create a new project. For example, you might call it Just Look At It.
- Open the project settings by clicking the gear (Gear ->
Project Settings) - Click on
Edit Settings As Text - Add an entry under
dependenciesthat points to your extension folder:
{
"name": "banana test",
"dependencies": {
...
"banana": "file:../pxt-banana"
},
...
}
- Reload the editor and the new blocks you developed in
pxt-bananawill be loaded into the project “Just Look At It.”
Step 4: Publishing your extension
When you’re happy with the first version of your extension, commit the changes and bump the version and push to github:
git commit -a -m "Amazing flying bananas"
pxt bumpThe pxt bump will make sure there are no uncommited changes, bump the version number,
create a git tag, and push everything to github.
In the editor, paste the full URL to your repo after selecting Settings -> Extensions. Your extension should show up.
Step 5: Approval
In order to be searchable by users, extensions need to be approved. GitHub organizations or individual repos can be approved.
See approval for more details.
Make sure you keep the line for PXT/TARGET (where TARGET is the target platform id)
in README.md. Otherwise the extension will not show up in search.
Read more on defining blocks to learn how to surface your APIs into blocks and JavaScript.
Icon
The editor will automatically use any icon.png file when displaying the extension in the editor. This feature only works for approved extensions.
The icon should be sized with a 16:9 ratio and of at least 184 pixels wide.