Skip to content

ff6347/p5-code-sandbox

Repository files navigation

P5 Code Sandbox

All Contributors

Experiment to have a code sandbox powered by Monaco editor for testing p5.js code. Based on this blog post "Create a JavaScript Code Sandbox" by Matija. The idea is to be able to build a documentation page for sketches produced during seminars, like in my seminar gestalten-in-code but have all the sketches editable in the sandbox.

See a demo over at p5.inpyjamas.dev

Features

Current feature set is limited but it can:

  • Save changes to local storage
  • Control via component prop if changes should be saved to local storage
  • Control via URL SearchParameters if the local storage should be disabled
  • Format using Prettier
  • All the great features Monaco has.

See @ff6347 p5js code sandbox project for planned features

Development

npm ci
npm run dev

🚀 Project Structure

Inside of your Astro project, you'll see the following folders and files:

/
├── public/
│   └── favicon.svg
├── src/
│   ├── components/
│   │   └── sandbox.css // the components css
│   │   └── Sandbox.tsx // the component to load in pages
│   ├── hooks/
│   │   └── local-storage.ts // the local storage customHook
│   ├── hooks/
│   │   └── iframe-source.ts // the html for the iframe
│   ├── layouts/
│   │   └── Layout.astro
│   └── pages/
│       └── index.astro
└── package.json

Astro Docs

Astro looks for .astro or .md files in the src/pages/ directory. Each page is exposed as a route based on its file name.

There's nothing special about src/components/, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.

Any static assets, like images, can be placed in the public/ directory.

🧞 Commands

All commands are run from the root of the project, from a terminal:

Command Action
npm install Installs dependencies
npm run dev Starts local dev server at localhost:4321
npm run build Build your production site to ./dist/
npm run preview Preview your build locally, before deploying
npm run astro ... Run CLI commands like astro add, astro check
npm run astro -- --help Get help using the Astro CLI

👀 Want to learn more?

Feel free to check our documentation or jump into our Discord server.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Fabian Morón Zirfas
Fabian Morón Zirfas

💻 🎨 🤔 🚇

This project follows the all-contributors specification. Contributions of any kind welcome!

About

Experimental p5.js code sandbox powered by Monaco editor for testing sketches with live feedback

Topics

Resources

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages