Git Product home page Git Product logo

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

View Code? Open in Web Editor NEW
1.3K 1.3K 1.2K 39.59 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 88.00% Shell 0.21% Dockerfile 0.07% SCSS 11.44% Procfile 0.01% HCL 0.23% MDX 0.02% HTML 0.02%

p5.js-web-editor's Introduction

Since the release of Processing 3.5.4 in January 2020, development has moved to a new repository.

Using a 4.0 release (even an alpha or beta version) is recommended if you find an issue. To avoid confusion, this repo will remain open at least until a 4.0 release is the default download at https://processing.org/download. We chose to move to a new repository so that we could clean out old files accumulated over the last 20 years.

Processing

This is the official source code for the Processing Development Environment (PDE), the “core” and the libraries that are included with the download.

I've found a bug! Let us know here (after first checking if someone has already posted a similar problem). If it's a reference, web site, or examples issue, take that up with folks here. There are also separate locations for Android Mode, or the Video and Sound libraries. The processing.js project is not affiliated with us, but you can find their issue tracker here.

Locked Issues Where possible, I've started locking issues once resolved. This helps reduce the amount of noise from folks adding to an issue that's been closed for years. Because this project has existed for a long time and we have thousands of closed issues, lots of them may sound similar to an issue you're having. But if there's a new problem, it'll be missed if it's lost in a comment added to an already closed issue. I don't like to lock issues because it cuts off conversation, but it's better than legitimate problems being missed. Once an issue has been resolved for 30 days, it will automatically lock.

That processing-bugs fella is suspicious. The issues list has been imported from Google Code, so there are many spurious references amongst them since the numbering changed. Basically, any time you see references to changes made by processing-bugs, it may be somewhat suspect. Over time this will clean itself up as bugs are fixed and new issues are added from within GitHub. Help speed this process along by helping us!

Please help. The instructions for building the source are here. Please help us fix problems, and if you're submitting code, following the style guidelines helps save me a lot of time.

And finally... Someday we'll also fix all these bugs, throw together hundreds of unit tests, and get rich off all this stuff that we're giving away for free. But not today.

So in the meantime, I ask for your patience, participation, and patches.

Ben Fry, 20 January 2019

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 parteekcoder avatar peilingjiang avatar phe0 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

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


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

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.

Import Projects

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

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?

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.

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?

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)

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.

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.)

Email Confirmation

Things that need to be added, eventually:

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

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.

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.

"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.

⌘R map to run

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

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.

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

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.

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

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.

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?

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.

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?

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.

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.

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

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.

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

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)

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.

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.