An open API service indexing awesome lists of open source software.

https://github.com/racketscript/racketscript-playground

Online playground from RacketScript
https://github.com/racketscript/racketscript-playground

compiler javascript playground racket racketscript

Last synced: about 1 month ago
JSON representation

Online playground from RacketScript

Awesome Lists containing this project

README

          

Racketscript Playground
=======================

[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Docker](https://img.shields.io/docker/cloud/automated/racketscript/racketscript-playground)](https://hub.docker.com/r/racketscript/racketscript-playground)
[![Try Online](https://img.shields.io/badge/try_it-online!-ff9900.svg)](http://play.racketscript.org)

Playground for [RacketScript](https://github.com/racketscript/racketscript).
Both server-side and client-side code is written in RacketScript.

Playground uses Github Gist to save and load files. The name of Gist
file must be `source.rkt`.

- URL of format `/#gist/:id` will load gist of that provided id.
- URL of format `/#example/:id` will download
`$ROOT_URL/examples/:id.rkt` from server.
- A `POST /compile` request will take JSON payload of format: `{
"code": }` and return a compiled JS file in reponse.

[CoreMirror](https://codemirror.net/) is used as editor
component. Search and Replace shortcuts
are [here](https://codemirror.net/demo/search.html).

## Build and Deploy

### With Docker (for deployment)

Easiest way is to pull the latest image from Docker registry
([racketscript/racketscript-playground](https://hub.docker.com/r/racketscript/racketscript-playground)).

```bash
# Pull docker image
docker pull racketscript/racketscript-playground

# Run playground webserver on port 8080
docker run -dp 8080:8080 -t racketscript/racketscript-playground
```

You can also build image yourself using `make docker-build`, followed by `make
docker-run` to start the playground web server. By default, `make docker-run`
binds webserver to port 8080.

### Without Docker (for development)

After installing Racket, NodeJS, and RacketScript, execute following
commands to run the playground:

```bash
make -j4 run
```

For development, you can use `quickrun`, after runnning `run` once,
for building both server and client without npm install/update:

```bash
make -j4 quickrun
```

## License

RacketScript is licensed under [MIT license](LICENSE). Third-party
libraries can be found over [here](static/index.html)
and [here](package.json).

## Troubleshooting

- Running `docker` commands gives permission error

[Add user name to `docker` user group](https://docs.docker.com/engine/install/linux-postinstall/): `sudo usermod -aG docker $USER`