This repo holds the code for the processing.org website. The website is built with Gatsby and hosted on Netlify.
We welcome contributions from the community to help improve the site!
By contributing to this repository you agree to follow our community guidelines. Before getting started, please read our Code of Conduct.
If this is your first time contributing on GitHub, check out this guide for first contributions.
To contribute to the Processing website, you'll need to identify an issue, fork this repo, set up the project on your local machine, make and test your changes, and then submit a pull request.
If you're already familiar with the steps above, you can skip to Editing content. Otherwise, keep reading.
Look at the issues page for existing issues you can help with. Issues labelled Good First Issue or Help Wanted are a good place to start. If you noticed an issue with the processing.org website and it hasn't been reported yet, please open a new issue.
- Click the "Fork" button in the top-right corner and follow the instructions to create a copy of this repository in your GitHub account.
- Clone the forked repository to your local machine.
- Navigate to the project folder using the command line, or open the project in your editor of choice and open the built-in terminal.
Make sure to install Node.js (v12
or higher) if it is not already installed.
- Run
npm install
to install the necessary dependencies. - Run
npm run dev
to start the development server. - Once the build process is complete, open localhost:8000 in your browser to view the site.
- Make your changes to the code.
- Saving your files will automatically trigger a rebuild and update the local site.
- Make sure your changes are working locally and that they fixed the issue.
- Make sure you only made the changes necessary to solve the issue. This will improve your chances of your PR getting merged.
- Commit your changes with a descriptive message.
- Push the changes to your forked repository on GitHub.
- Go to the original Processing website repository on GitHub and click the "Compare & pull request" button.
- Give your Pull Request a descriptive title.
- Write a clear description of the changes you made and why they should be merged. Link to the issue you are solving.
- Submit the pull request for review.
In order to edit the content on the website, it's important to understand how the translation and internationalization frameworks are set up. For this, we distinguish between two things:
This content is more static, such as page headings and the descriptions on the front page. This is controlled by the react-intl
package, and all definitions of UI language can be found in the i18n/react-intl
folder. Each language will have its own .json
file in this folder, and this is where edits to the UI language should happen.
This content includes most of the content on the website such as the individual items under reference, tutorials, tools, etc. Each content type has its own setup based on where the source lives. As an example, the reference is generated from the Processing source code and has its own way of translating those generated files. The following guides explain how to change the content on the website by section.
When translating the content to a new language you need to edit the i18n/config.json
file and add your language information. Then follow the instructions for each Content list (same links as above).
Since 2024, this repository is deployed and built automatically on Netlify. Merged Pull Requests to main will trigger a deployment. No further action is necessary.
We proudly host an active and vibrant community on our Processing Discourse Forum. Here you can find engaging discussions, ask questions, share your projects, and interact with like-minded Processing enthusiasts of all experience levels.
The content and the code of the Processing website are separately licensed.
- The content, including the reference, is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA-4.0).
- The code that structures the website is licensed under the GNU General Public License version 2 (GPL-2.0). This applies to the website code written by our team and contributors from the Processing community.
- The examples without a credit line or credited to Daniel Shiffman are in the public domain. Copyright for other credited examples remain with the original authors. See the processing-examples repo for details.
- Gatsby, the framework used for this website, is licensed under the Zero-Clause BSD License (0BSD).
For licensing information about the Processing core library and software, see https://github.com/processing/processing4/blob/main/LICENSE.md
Design Systems International designed and built the current website and the new Processing family of logos through a year of dedicated volunteer work.
A remarkable group of volunteers converted all of the content from the prior Processing website to the new formats. A hearty round of applause for: Tetsu Kondo, Mark Webster, Lionel Radisson, Chris Coleman, Justin Gitlin, Seenahm Suriyasat, Shobhit Sharma, Karan Dudeja, Mark Hancock, Peter Jacobson, Oğuzhan Göregen, Bryan Ma, Ashley James Brown 💙
Thanks to Netlify for providing hosting, automation, and deploy previews!
Note
The following is included in the processing-website repository for historical reasons but it is not related to the functioning of the Processing website itself. It should eventually be moved to a more suitable location.
This repo contains a script updateKeywords.js
that generates the keywords.txt
file used for syntax highlighting in the Processing IDE.
Follow these steps in order to generate the keywords.txt
file:
- Make sure you have this
processing-website
repo and theprocessing4
repo next to each other on your computer - Make sure the JavaDoc and reference are up to date with the latest version of Processing. Otherwise make the necessary updates to the JavaDoc in the
processing4
repo then run the Doclet script. (note: this step is only necessary if new keywords were added to the Processing API) - Run
npm run updateKeywords
The processing4
repo now has an updated java/keywords.txt
file.