diff --git a/contributor_docs/access.md b/contributor_docs/access.md index 02c23ca5d4..788ead722b 100644 --- a/contributor_docs/access.md +++ b/contributor_docs/access.md @@ -1,3 +1,5 @@ + + # Our Focus on Access At the [2019 Contributors Conference](https://p5js.org/community/contributors-conference-2019.html), p5.js made the commitment to only add new features that increase access (inclusion and accessibility). We will not accept feature requests that don't support these efforts. We commit to the work of acknowledging, dismantling, and preventing barriers. This means considering intersecting[^1] experiences of diversity that can impact access and participation. These include alignments of gender, race, ethnicity, sexuality, language, location, et cetera. We center the needs of marginalized groups over the continued comfort of those privileged within the p5.js community. We are collectively exploring the meaning of access. We are learning how to practice and teach access. We choose to think of access through expansive, intersectional, and coalitionary frameworks. This commitment is part of the core values of p5.js outlined in our [Community Statement](https://p5js.org/community/). diff --git a/contributor_docs/archive/custom_p5_build.md b/contributor_docs/archive/custom_p5_build.md index 3e4ee78fb1..04eab00f67 100644 --- a/contributor_docs/archive/custom_p5_build.md +++ b/contributor_docs/archive/custom_p5_build.md @@ -1,3 +1,5 @@ + + # Creating a custom build of p5.js with select components ## Overview diff --git a/contributor_docs/archive/internationalization.md b/contributor_docs/archive/internationalization.md index 0d560445d3..4d75cb124e 100644 --- a/contributor_docs/archive/internationalization.md +++ b/contributor_docs/archive/internationalization.md @@ -1,3 +1,5 @@ + + # 🌐 Internationalization [Internationalization](https://developer.mozilla.org/docs/Glossary/Internationalization_and_localization) (sometimes abbreviated "i18n") refers to supporting multiple languages in a software project. This often means maintaining translations of text strings used in the project and letting users choose which translation they receive (or detecting it from their browser settings). diff --git a/contributor_docs/archive/issue_labels.md b/contributor_docs/archive/issue_labels.md index 33768978ba..d70bb5fc33 100644 --- a/contributor_docs/archive/issue_labels.md +++ b/contributor_docs/archive/issue_labels.md @@ -1,3 +1,5 @@ + + # p5.js issue labels p5.js uses a set of labels to help sort and organize issues. diff --git a/contributor_docs/archive/supported_browsers.md b/contributor_docs/archive/supported_browsers.md index b9e7dde67e..28fba0e4f1 100644 --- a/contributor_docs/archive/supported_browsers.md +++ b/contributor_docs/archive/supported_browsers.md @@ -1,3 +1,5 @@ + + # Supported browsers ## Our stated goal diff --git a/contributor_docs/contributing_documentation.md b/contributor_docs/contributing_documentation.md new file mode 100644 index 0000000000..75c4685b86 --- /dev/null +++ b/contributor_docs/contributing_documentation.md @@ -0,0 +1,41 @@ + + +# Contributing Documentation + +Documentation is essential for new learners and experienced programmers alike. It helps make our community inclusive by extending a friendly hand to those who are less familiar with p5.js. It also helps us find the bugs and issues with the code itself, because we test and try things out as we document. + +There are several ways to contribute to documentation: + +## ☝️ Make changes +If you're just getting started, one really helpful way you can contribute is by improving our documentation. If you notice a typo, a missing or broken example, or a function description that is confusing, here are some things you can do: +* If you are just correcting a small typo, feel free to go ahead and work on it and send in a PR when you're finished! +* If you don't feel like fixing it yourself, that's alright. Let us know by [opening an issue](https://github.com/processing/p5.js/issues). +* If you're unsure about anything, [open an issue](https://github.com/processing/p5.js/issues) anyway! + +## 🗯 Contribute to the reference +Read through the [reference](http://p5js.org/reference/), and look for typos, broken examples, or confusing documentation. If it's a straightforward fix, go ahead and work on it! If it's a more involved question that requires discussion, create an [issue](https://github.com/processing/p5.js/issues/new). +* Here are instructions for [getting setup for the first time with the p5.js repo](./README.md). +* The reference is built from the inline documentation in the source code (found in the `src/` folder). +* Here is information on [how to update or add inline documentation and examples](./inline_documentation.md). +* Here is the [documentation style guide](./documentation_style_guide.md) for writing and code samples. +* If you find errors with the [spanish documentation](http://p5js.org/es), there are instructions to update this [here](https://github.com/processing/p5.js-website#internationalization-i18n-and-structure). +* Community-maintained Typescript definitions are [here](https://github.com/p5-types/p5.ts). + +## ✨ Make examples +While the examples in the reference are meant to be very simplistic snippets of code, it is also useful to have longer, more complex examples. +* Currently we are working on porting the examples from the [processing examples page](https://processing.org/examples/) to the [p5.js examples page](http://p5js.org/examples). If you would like to help with this, please see the instructions [here](https://github.com/processing/p5.js-website/blob/main/contributor_docs/Adding_examples.md). +* Alternatively, you can create your own set of examples and publish them independently anywhere you like. If you share them online tag [@p5xjs](https://twitter.com/p5xjs) or email [hello@p5js.org](mailto:hello@p5js.org) to let us know, and we will share far and wide! This [guide to embedding p5.js](https://github.com/processing/p5.js/wiki/Embedding-p5.js) may be useful for posting your examples online. +* If you find bugs in p5.js along the way, please log them in the [issues](https://github.com/processing/p5.js/issues). + +## 👯 Make tutorials +* If you are new to p5.js, this is a great place to start. Try making something yourself, then making a tutorial to teach others to do it too. +* Currently we are working on porting the tutorials from the [processing tutorials page](https://processing.org/tutorials) to the [p5.js learn page](http://p5js.org/learn). If you would like to help with this, please see the tutorial on making tutorials [here](https://p5js.org/learn/tutorial-guide.html). +* We also welcome tutorials on different subjects. You can publish these anywhere, in any format you like. If you share them online tag [@p5xjs](https://twitter.com/p5xjs) or email [hello@p5js.org](mailto:hello@p5js.org) to let us know, and we will share far and wide! We especially encourage tutorials created with a specific audience or use case in mind (ex: p5 for journalists, activists, poets, kids, seniors, dreamers, in a different language, etc). We like to consider, who does not already feel welcome or included in the p5 community, and can we use learning as an invitation? What is the language you use to communicate with your audience and make them feel known? Feel free to be experimental with your format. Check out [Sharon De La Cruz's talk on Code Slang](https://www.youtube.com/watch?v=CFT6w9NKfCs) for inspiration. +* If you find bugs in p5.js along the way, please log them in the [issues](https://github.com/processing/p5.js/issues). + +## 👉 Getting started +* Read the [p5.js community statement](http://p5js.org/community/) +* Optional: Check out the [contributor docs](./README.md) to get an overview of the repository and learn how to build the code (if relevant for you). +* All discussion happens on GitHub issues, so there's no slack/gitter/etc channel you need to join. +* Add your name to the [contributors list](https://github.com/processing/p5.js#contributors) in the readme.md file! Instructions [here](https://github.com/processing/p5.js/issues/2309). +* And of course, if you're more of a bug fixer kind of person, feel free to jump into any of the [issues](https://github.com/processing/p5.js/issues)! diff --git a/contributor_docs/contributing_to_the_p5.js_reference.md b/contributor_docs/contributing_to_the_p5.js_reference.md index d72a3208cd..283c97f6f2 100644 --- a/contributor_docs/contributing_to_the_p5.js_reference.md +++ b/contributor_docs/contributing_to_the_p5.js_reference.md @@ -1,3 +1,5 @@ + + # Contributing to the p5.js Reference In p5.js, we author the code reference you see on the [reference](https://p5js.org/reference/) page on the p5.js website by including them alongside the library’s source code as specialized comments. These reference comments include the description, the function’s signature (its parameters and return value), and usage examples. In other words, the content on each p5.js function/variable’s reference page is built from the reference comments in the source code. diff --git a/contributor_docs/contributor_guidelines.md b/contributor_docs/contributor_guidelines.md index 80a3d4c9fb..cf1d9c9854 100644 --- a/contributor_docs/contributor_guidelines.md +++ b/contributor_docs/contributor_guidelines.md @@ -1,3 +1,5 @@ + + # Contributor Guidelines Welcome to the contributor guidelines! This document is for new contributors looking to contribute code to p5.js, contributors looking to refresh their memories on some technical steps, or just about anything else to do with code contributions to p5.js. diff --git a/contributor_docs/creating_libraries.md b/contributor_docs/creating_libraries.md index 841d1e23c9..3bd66a4055 100644 --- a/contributor_docs/creating_libraries.md +++ b/contributor_docs/creating_libraries.md @@ -1,3 +1,5 @@ + + # Creating an Addon Library A p5.js addon library is JavaScript code that extends or adds to the p5.js core functionality. While p5.js itself already provides a wide range of functionality, it doesn’t aim to cover everything you can do with JavaScript and the Web API. Addon libraries let you extend p5.js without needing to incorporate the features into p5.js. This guide will take you through the steps of creating an addon library that loads a simple CSV file by implementing a `loadCSV()` function. diff --git a/contributor_docs/design_principles.md b/contributor_docs/design_principles.md new file mode 100644 index 0000000000..0c1b787522 --- /dev/null +++ b/contributor_docs/design_principles.md @@ -0,0 +1,12 @@ + + +# Design principles for p5.js + +- **Beginner Friendly** The p5.js API aims to be friendly to beginner coders, offering a low barrier to creating interactive and visual web content with cutting-edge HTML5/canvas/DOM APIs. + +- **Educational** p5.js is focused on an API and curriculum that supports educational use, including a complete reference to the API with supporting examples, as well as tutorials and sample class curricula that introduces core creative coding principles in a clear and engaging order. + +- **JavaScript and its community** p5.js aims to make web development practices more accessible to beginners by modeling proper JavaScript design patterns and usage, while abstracting them where necessary. As an open source library, p5.js also includes the wider JavaScript community in its creation, documentation and dissemination. + +- **Processing and its community** p5.js is a direct response to the Processing language and its community, and aims to make the transition from Processing to JavaScript easy and clear. Supporting the Processing API and community is a priority for p5.js, while also expanding to include the new possibilities of creative coding on the web, and taking a Processing-style approach to exposing that API to beginners. + diff --git a/contributor_docs/documentation_style_guide.md b/contributor_docs/documentation_style_guide.md index 973308a9a4..7dbf721621 100644 --- a/contributor_docs/documentation_style_guide.md +++ b/contributor_docs/documentation_style_guide.md @@ -1,3 +1,5 @@ + + # Documentation Style Guide Hello! Welcome to the guidelines for writing p5.js documentation. This document is a remix of the following resources: diff --git a/contributor_docs/fes_contribution_guide.md b/contributor_docs/fes_contribution_guide.md index f02733aee9..8796ab9102 100644 --- a/contributor_docs/fes_contribution_guide.md +++ b/contributor_docs/fes_contribution_guide.md @@ -1,3 +1,5 @@ + + # Friendly Errors System Contribution Guide The `core/friendly_errors` folder contains the code for the p5js’ Friendly Error Systems (FES) responsible for generating Friendly Error messages or Friendly Errors. You may have seen Friendly Error messages starting with “`🌸 p5.js says:`” in your console, supplementing default, browser-generated error messages. diff --git a/contributor_docs/friendly_error_system.md b/contributor_docs/friendly_error_system.md index 00f76838d5..591b4e918c 100644 --- a/contributor_docs/friendly_error_system.md +++ b/contributor_docs/friendly_error_system.md @@ -1,3 +1,5 @@ + + # 🌸 p5.js Friendly Error System (FES) ## Overview diff --git a/contributor_docs/release_process.md b/contributor_docs/release_process.md index bad0955221..b2490e6c75 100644 --- a/contributor_docs/release_process.md +++ b/contributor_docs/release_process.md @@ -1,3 +1,5 @@ + + # Release process ## Approach diff --git a/contributor_docs/steward_guidelines.md b/contributor_docs/steward_guidelines.md index bf645aa26f..80eb7cfd37 100644 --- a/contributor_docs/steward_guidelines.md +++ b/contributor_docs/steward_guidelines.md @@ -1,3 +1,5 @@ + + # Steward Guidelines Whether you have just joined us as a steward, are a seasoned maintainer of p5.js, or are somewhere in between, this guide contains information as well as tips and tricks that will help you effectively contribute to p5.js. Most of what is written here are guidelines unless otherwise stated, which means you can adapt the practices shown here to suit your workflow. diff --git a/contributor_docs/unit_testing.md b/contributor_docs/unit_testing.md index d45bfe4117..5caf7164a7 100644 --- a/contributor_docs/unit_testing.md +++ b/contributor_docs/unit_testing.md @@ -1,3 +1,5 @@ + + # Unit Testing Unit testing is an essential part of how a large codebase can stay relatively bug-free. Unit tests are small pieces of code that aim to test individual components of a larger code base for correctness. For example, making sure a function is doing what it should be doing or a class is creating its object instances correctly. diff --git a/contributor_docs/web_accessibility.md b/contributor_docs/web_accessibility.md index 61c7a56dae..c72f16983f 100644 --- a/contributor_docs/web_accessibility.md +++ b/contributor_docs/web_accessibility.md @@ -1,3 +1,5 @@ + + # p5.js Web Accessibility This document describes the structure of p5.js’ web accessibility features for contributors. diff --git a/contributor_docs/webgl_contribution_guide.md b/contributor_docs/webgl_contribution_guide.md index 3a2030e807..c7bc2ab331 100644 --- a/contributor_docs/webgl_contribution_guide.md +++ b/contributor_docs/webgl_contribution_guide.md @@ -1,3 +1,5 @@ + + # WebGL Contribution Guide If you're reading this page, you're probably interested in helping work on WebGL mode. Thank you, we're grateful for your help! This page exists to help explain how we structure WebGL contributions and to offer some tips for making changes. diff --git a/contributor_docs/webgl_mode_architecture.md b/contributor_docs/webgl_mode_architecture.md index 53fb6f4a21..2951b35d1c 100644 --- a/contributor_docs/webgl_mode_architecture.md +++ b/contributor_docs/webgl_mode_architecture.md @@ -1,3 +1,5 @@ + + # p5.js WebGL Mode Architecture This document is intended for contributors and library makers who want to extend the WebGL codebase. If you are looking for help using WebGL mode in your sketches, consider reading the WebGL tutorials [on the p5.js Learn page](https://p5js.org/learn/) instead.