Blocks embedding
MakeCode provides a lightweight blocks rendering engine that renders code snippets as SVG images.
The Curse of screenshots
Unlike text based programming languages, block-based snippets aren’t easily rendered in a documentation page. A quick solution is take screenshots of the snippets but things can quickly become unsustainable:
- screenshots can’t be compiled - so it’s hard to maintain them
- screenshots are not localizable - non-English speaking users won’t be able to read the blocks
- screenshots aren’t easily reloaded into the editor
- screenshots don’t play well with source control systems - you cannot diff changes efficiently
Rendering blocks on the spot
The MakeCode approach in solving this problem is to render the JavaScript code snippets on a client using the same block rendering engine as the editor. Under the hood, an IFrame from the MakeCode editor will render the blocks for you.
GitHub pages
You can use GitHub pages to render your README.md file as a web site.
- enable GitHub pages on your repository
- add the url of the editor in
_config.yml
(including trailing /)
makecode:
home_url: https://makecode.com/
- copy the following text at the bottom of your
README.md
file<script src="https://makecode.com/gh-pages-embed.js"></script><script>makeCodeRender("{{ site.makecode.home_url }}", "{{ site.github.owner_name }}/{{ site.github.repository_name }}");</script>
Other Plugins
Here are some sample integrations for various documentation/blogging engines.
Manual Implementation
You can find example of custom blocks embedding in the documentation of your favorite editor.