Skip to content

processing/processing-website

Processing Website

Netlify Status

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!

How To Contribute

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.

Step 1. Pick an Issue (or create one)

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.

Step 2. Fork the Repository

  1. Click the "Fork" button in the top-right corner and follow the instructions to create a copy of this repository in your GitHub account.
  2. Clone the forked repository to your local machine.
  3. Navigate to the project folder using the command line, or open the project in your editor of choice and open the built-in terminal.

Step 3. Set up Your Local Environment

Make sure to install Node.js (v12 or higher) if it is not already installed.

  1. Run npm install to install the necessary dependencies.
  2. Run npm run dev to start the development server.
  3. Once the build process is complete, open localhost:8000 in your browser to view the site.
  4. Make your changes to the code.
  5. Saving your files will automatically trigger a rebuild and update the local site.

Step 4. Test Your Changes Locally

  1. Make sure your changes are working locally and that they fixed the issue.
  2. Make sure you only made the changes necessary to solve the issue. This will improve your chances of your PR getting merged.

Step 5. Submit Your Changes

  1. Commit your changes with a descriptive message.
  2. Push the changes to your forked repository on GitHub.
  3. Go to the original Processing website repository on GitHub and click the "Compare & pull request" button.
  4. Give your Pull Request a descriptive title.
  5. Write a clear description of the changes you made and why they should be merged. Link to the issue you are solving.
  6. Submit the pull request for review.

Editing content

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:

UI language

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.

Page content

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

Writing code

Deploying the site

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.

Join the Processing community

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.

Discourse Users

Licenses

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

Thanks!

image

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 💙

image

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.

keywords.txt

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:

  1. Make sure you have this processing-website repo and the processing4 repo next to each other on your computer
  2. 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)
  3. Run npm run updateKeywords

The processing4 repo now has an updated java/keywords.txt file.