ClimateTown / knowledge-hub

Your one-stop shop in the fight against climate change, containing important climate resources you wish you knew about yesterday.
https://hub.climatetownproductions.com
Creative Commons Attribution 4.0 International
36 stars 26 forks source link
climate-action climate-change climate-education climatetown renewable-energy

YouTube subs Patreon

Build workflow All Contributors


The "behind the scenes" of the ClimateTown Knowledge Hub, your "one-stop shop" for important online resources in the fight against climate change!

How to suggest a resource

Contributing

TLDR: Create an issue, or edit the content directly and make a pull request.

All contributions welcome! We embrace:

The following sections go through how you can make different contributions. These will require you having a GitHub account.

For any discussion or questions about the Knowledge Hub, join us in the #💬knowledge-hub-discussion channel in the Climate Town Discord.

Small edits/typos

Resources data (titles, URLs, descriptions, and tags) are stored in the data/resources.yml file, which is then used to populate the resource on the website. To make small edits, you can directly edit this file or you can create an issue.

To suggest changes anywhere else in the site, you can use GitHub's search functionality to find the exact file in which to suggest them.

Resource suggestions

We're always looking to publicise awesome climate resources. Got a resource to share? The easiest way is to create an issue, filling out the "resource suggestion" form. This will create a discussion around the resource, and if it's a good fit for the Knowledge Hub, we'll add it to the site.

Site improvements

This website is powered by coders from the community. If you want to contribute to the website, please follow the following guidelines:

Development setup

The site is primarily built using Svelte and SvelteKit, using Python for some additional tools in the codebase (eg. YouTube API, JSON schema validation). The following sections go through two options for installation, how to add Python dependencies, and setting up the YouTube API key.

⚡QUICK SETUP⚡

TLDR; simply click this badge to spin up a Codespaces cloud environment 🕺

Open in GitHub Codespaces

For local development, this repo provides a dev container to streamline installation (assuming you're familiar with Docker and have it installed). Building and running this container will install all dependencies for the project, and run the development server in the background piping the output to nohup.out.

Manual installation

Alternatively, you can install all project dependencies manually in the OS of your choice.

Node and npm (for Svelte and SvelteKit)

OPTIONAL: Python

As mentioned above, Python is only responsible for some tooling in the codebase. For most changes to the site, Python is not required.

OPTIONAL: Pre-commit

This codebase uses pre-commit and pre-commit CI to run linting on code, format Python code, and generally have help with code quality.

To set up pre-commit locally:

To run pre-commit manually (without making a commit), use pre-commit run --all-files. If you want to stop using pre-commit locally, just do pre-commit uninstall.


Adding Python dependencies

This codebase uses pip-tools to manage dependencies. If you add a new dependency, you can add it to requirements.in and run pip-compile to update requirements.txt. To update your environment run pip-sync.

YouTube API Keys

To set up the YouTube API (important for working on scripts with YouTube video scraping):

✨Contributors

Thanks go to these wonderful people (emoji key):

Vecko
Vecko

💻 🖋 🤔 🚧 📆
Danielle Bastien
Danielle Bastien

️️️️♿️ 💻 🚧 👀
azebramoomoo
azebramoomoo

🖋 🎨
Jacob John Jeevan
Jacob John Jeevan

💻
Chris King
Chris King

💻
Jarrod Baniqued
Jarrod Baniqued

🖋 🐛
Nick Tutterow
Nick Tutterow

💻 🖋
GBT7
GBT7

🖋
Billy Taggart
Billy Taggart

🤔
Micahg05
Micahg05

💻
Forrest Cinelli
Forrest Cinelli

🖋
Jordan Manley
Jordan Manley

💻
cpufreak101
cpufreak101

🎨
Paweł Andrys
Paweł Andrys

💻
Matthew Caughman
Matthew Caughman

👀
LaserCar
LaserCar

🖋
Isidro Molina
Isidro Molina

💻
Christina Loiacono
Christina Loiacono

💻
River Mizell
River Mizell

🖋
monedula
monedula

🖋
Sourav Singh
Sourav Singh

💻
Tommi Alajoki
Tommi Alajoki

💻
Stephen Tanner
Stephen Tanner

🖋
Edward Prado
Edward Prado

🐛
John Atti
John Atti

💻

This project follows the all-contributors specification. Contributions of any kind are, again, welcome!

License

This project (i.e., the code, custom assets, and data) is licensed under CC-BY-4.0. This license does not extend to logos from Climate Town and other trademarked items, which remain the property of the original copyright holders.

Acknowledgements