Code Monkey home page Code Monkey logo

processing / p5.js-web-editor Goto Github PK

View Code? Open in Web Editor NEW
1.3K 56.0 1.3K 42.79 MB

The p5.js Editor is a website for creating p5.js sketches, with a focus on making coding accessible and inclusive for artists, designers, educators, beginners, and anyone else! You can create, share, or remix p5.js sketches without needing to download or configure anything.

Home Page: https://editor.p5js.org

License: GNU Lesser General Public License v2.1

JavaScript 87.99% Shell 0.21% Dockerfile 0.07% SCSS 11.46% Procfile 0.01% HCL 0.22% MDX 0.02% HTML 0.02%

p5.js-web-editor's Introduction

Welcome! πŸ‘‹πŸ‘‹πŸΏπŸ‘‹πŸ½πŸ‘‹πŸ»πŸ‘‹πŸΎπŸ‘‹πŸΌ

The p5.js Editor is a website for creating p5.js sketches, with a focus on making coding accessible and inclusive for artists, designers, educators, beginners, and anyone else! You can create, share, or remix p5.js sketches without needing to download or configure anything. It is designed with beginners in mind, limiting features and frills. The editor is free and open-source because we believe software, and the tools to learn it, should be accessible to everyone.

Community

We are a community of, and in solidarity with, people from every gender identity and expression, sexual orientation, race, ethnicity, language, neuro-type, size, ability, class, religion, culture, subculture, political opinion, age, skill level, occupation, and background. We acknowledge that not everyone has the time, financial means, or capacity to actively participate, but we recognize and encourage involvement of all kinds. We facilitate and foster access and empowerment. We are all learners.

The p5.js Editor is a collaborative project created by many individuals, mostly volunteers, and you are invited to help. All types of involvement are welcome. See the community section to get started! You can also check out the contributor docs for more in-depth details about contributing to different areas of the project, including code, bug fixes, documentation, discussion, and more.

Learn more about our community and read our community statement and code of conduct. You can directly support our work with p5.js by donating to the Processing Foundation.

Getting Started

Make your first sketch in the p5.js Editor! Learn more about sketching with p5.js on the Get Started and find everything you can do in the Reference. You can also look at examples and remix them in the p5.js Editor.

Issues

If you have found a bug in the p5.js Web Editor, you can file it under the "issues" tab. You can also request new features here. A set of templates for reporting issues and requesting features are provided to assist you (and us!). The p5.js Editor is maintained mostly by volunteers, so we thank you for your patience as we try to address your issues as soon as we can. Please post bugs and feature requests in the correct repository if you can:

How Do I Know My Issue or Pull Request is Getting Reviewed?

To see which pull requests and issues are currently being reviewed, check the PR Review Board or the following Milestones: MINOR Release.

References for Contributing to the p5.js Web Editor

Code of Conduct

Contribution Guidelines for p5.js

Contribution Guidelines for the p5.js Web Editor

p5.js Community Statement

Acknowledgements

Support for this project has come from Processing Foundation, NYU ITP, CS4All, NYC DOE, COSA at DU, STUDIO for Creative Inquiry, Grant for the Web, New Media Rights, and many others.

Hosting and technical support has come from:



p5.js-web-editor's People

Contributors

adityagarg06 avatar akhilbisht798 avatar andrewn avatar catarak avatar dependabot[bot] avatar dewanshdt avatar ghalestrilo avatar gtmizyuk avatar janglee123 avatar khanniie avatar koji avatar lindapaiste avatar mathuramg avatar matsragnar avatar min-kim42 avatar ofhope avatar oruburos avatar peilingjiang avatar phe0 avatar piyushchandra17 avatar raclim avatar rajatmohan22 avatar shakti97 avatar shinytang6 avatar sundeepchand avatar swarnendu0123 avatar umangutkarsh avatar vulongphan avatar yining1023 avatar zachrispoli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

p5.js-web-editor's Issues

console covers code editor

the console sits over the code editor so it's often not possible to scroll to the bottom of the code.

screen shot 2016-08-10 at 3 20 14 pm

Renaming files

Renaming files needs to be more robust. I think what should happen is that it should enforce that the new name has the same extension as the old name.

Project folders / subfolders

Some of the teachers mentioned today that they like their students to organize their projects into subfolders. cloud9 as a model was mentioned.

screen shot 2016-07-21 at 2 45 35 pm

aria-live tags not working

Tested the IDE - http://52.41.35.139:8000/ on IE 11 on Windows 8

  • Syntax highlighting not working
    capture
  • aria-live tags are not working - the aria updates are not being read out when the value changes with a screen reader. This however is not a generic IE issue ( aria-live works in this example in IE 11/ Windows 8)

Email Confirmation

Things that need to be added, eventually:

  • Error validation
  • Email confirmation
  • Password reset
  • Login with Github

onUpdateLinting timeout length

The onUpdateLinting function in the CodeMirror config currently has a timeout of 2000 ms. With the warning sounds on, it's a little confusing for the alert to sound that long after you've moved on, and after the line style with the red highlighting has been applied.

Would it be possible to either call this.beep.play() to the same function that applies the red highlight to the line with the linting error, or to add a UI control to set that timeout length?

Anonymous Saving Disable?

In the user testing session we are leaning towards disabling anonymous saves to reduce confusion for now and add it back later perhaps as a feature. At the very least, prompt users to remind them that they aren't logged in and can if they want.

Thoughts @lmccart?

selecting active file

You currently have to click on the text of the filename to select the active file -- index.html, style.css, sketch.js etc. You should be able to click the full rectangle around the filename text.

screen shot 2016-08-10 at 3 03 22 pm

undo bug when switching files

Haven't pinpointed if this occurs in multiple scenarios but to reproduce:

  1. Make a new sketch.
  2. Open style.css.
  3. Delete contents.
  4. Open sketch.js
  5. Open style.css
  6. Undo.

undo_bug

Will investigate more.

share projects

Another "next step" feature is sharing. Off the top of my head I think we need share links for:

  1. iframe embed
  2. share sketch with code editor
  3. share sketch without code editor (just the sketch running in the window itself).

Am I missing anything?

autosave bugs

I am opening some issues to track high priority "next step" features @catarak and I discussed today.

A key feature is for users to be able to "save" projects and have a file management system that allows them to open past projects.

Library Management

While we ultimately will likely want "library manager" like features we should probably start with p5.dom and p5.sound included by default.

Use p5.js or p5.min.js in index.html

I noticed that the minified versions of the library are referenced in index.html. I think we should probably use the full versions for things like the friendly error messages, etc. (This can eventually be preference with an editable template, etc.)

⌘R map to run

We are discussing at NYC DOE professional development that having ⌘R not be refresh but run is a good idea.

Add Avenir and Modern Pictograms

Avenir is for the non-editor text. Modern Pictograms has a bunch of icons, need to download the SVG's rather than the icon font for accessibility reasons.

jszip ERROR: Module parse failed

Hi I wanted to try this project, I followed the readme but I get:

npm start
...
WARNING in ./~/htmlhint/lib/htmlhint.js
Critical dependencies:
8:7694-7701 require function is used in a way in which dependencies cannot be statically extracted
8:13011-13018 require function is used in a way in which dependencies cannot be statically extracted
 @ ./~/htmlhint/lib/htmlhint.js 8:7694-7701 8:13011-13018

ERROR in ./~/jszip/package.json
Module parse failed: ............p5.js-web-editor/node_modules/jszip/package.json Unexpected token (2:9)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:9)

Design/UX Input

I've added a bunch of features just to have them without worrying about the design/ux. Some stuff that would be awesome to have input on:

  • Login/Sign Up - should these be separate pages or a modal layover? What do form errors look like? There's a design for toasts in the p5 design but not for form errors.
  • Add File popup - Do we want this? This also needs a form error design.
  • Tabs - Do we need these? Happy to add these as they're an iconic part of the Processing IDE design but maybe not totally necessary.
  • Sketchbook (Open in the Nav) - What should this page look like? Do we want to add folders? Eventually, should we integrate tutorials/reference sketches in here?
  • Shrinking/Expanding Sidebar and Console
  • Navigation Organization - I just added Export and Clone to the Nav, but maybe we want these in a dropdown? Where should publish go? Any things missing in the navigation that we want?
  • Project title editing - It would be nice to force the user to add a name.

Or, in general, any design bugs/feedback would be great.

cc @lmccart @shiffman

"clone" (and tool-tips)

I'm opening this issue to discuss the term for saving a copy of a project. This is relevant for when you open a project with a URL from someone else's account (like your teacher) and then want to save it to your own account.

Some options are:

  • clone
  • save as
  • save to username
  • fork

Whatever we use I noticed the default "tool-tip" on the editor menu all say: "project-menu" and we could use the tool tip to explain the behavior further.

iframe has maximum height of ~200px?

I'm only seeing about 200px along the vertical axis in the iframe where the sketch is rendered:

p5-editor

btw, this is chrome Version 51.0.2704.103 (64-bit) mac OS X.

File uploader bugs

In the current editor, I have begun to add media uploads. As this is a fairly complicated task, as it stands right now, it only works for:

  • jpg/jpeg, png, gif (single frame), and tif
  • If you put it in your JS files. Will not resolve media in HTML and CSS.
  • If you download the project as a zip, it will download the images.

Eventually you will be able to uploads fonts, videos, and so on, and will parse it in all file types, but for now, I think it's good enough for teaching basic p5.js.

Safari editor-console styling

While opening the IDE in safari (Version 9.1.2 (10601.7.7)) - the editor-console area shows up as below -


screen shot 2016-08-05 at 2 56 07 pm


On adding lines to the editor, the console area moves down too but it's not there on coming back up to the top of the IDE.


screen shot 2016-08-05 at 2 56 23 pm


screen shot 2016-08-05 at 2 56 29 pm


Adjustable width code editor

I would find it very useful to be able to drag the right-edge of the code editor left and right to give more or less space.

what errors / warnings to suppress?

This came up today, whether we want the editor to highlight errors like missing semi-colons. For example the following has a 'missing semi-colon' error which is correct in one sense, but not always the convention in p5 examples.

var blah = function() {
  console.log('blah');
}

screen shot 2016-07-21 at 2 40 00 pm

Import Projects

Allow a user to upload a zip file or a folder, which would load all of the files into the web editor.

Different view for media files in editor

Right now, for S3 hosted files, the editor just silently fails. It would be cool if info could be displayed about the files, but for now, just an error that these files can't be edited.

Long delay on lint warning sound

I'm working on adding more alert tone options and when I run the app locally, the tone plays almost 2 seconds after the lint error registers. It makes it pretty difficult to tell what the tone is referring to. Additionally, since the lint check is bound to keyup, the alert will sound in situations such as simply taking a moment too long to finish typing out a function name, which is also confusing.

EDIT the issues above have been clarified elsewhere.

live coding

Two items came up in meeting with @catarak today.

  1. Live coding should be a preference that can be disabled. (Play, stop, and pause buttons?). If live coding becomes a hassle to maintain / implement it can be saved as a feature for later.
  2. It would be nice to figure out a way to not destroy and recreate the canvas as users type to eliminate the flashing.

AWS dependency

I read from the readme

Or, if you don't want to do that, just ask me to send you mine. Refer to this gist for creating an S3 bucket for testing, or if you don't want to do that, I will send you my AWS credentials.

Is possible to be AWS agnostic? At least for local development?

console

This github issue is for tracking discussion around how to implement a console for sketches. Users may ultimately still use developer consoles for advanced features, but something simple and basic that provides useful error messages and is interactive. @catarak pointed out that jsbin (http://jsbin.com/) has a console with features almost identical to what we are looking for. The code for that is open source and found here:

https://github.com/jsbin/jsbin

cc @toolness as I know we have had discussions about this as well as it relates to p5.js-widget.

Editor Cursor Jumping on Edge

The editor is now working on IE (cc @MathuraMG), but with a really annoying bug on IE and Edge. As soon as you focus and start typing in the editor, the cursor jumps to the top of the editor. I have no idea why this is happening. I looked at the CodeMirror examples on Edge and IE just to make sure it's not a weird IE/Edge and CodeMirror thing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.