monome-community / norns-community

website listing norns community catalog and documentation
https://norns.community
6 stars 2 forks source link

welcome to norns.community

norns community build & deploy

norns.community is a collection of open source software for the monome norns sound computer.

This document serves as both the README.md for this repository and the 'about' page for this website.


How do I get my script on norns.community?

After your pull request is merged to the community catalog it will automatically appear on norns.community. The website refreshes nightly at 00:00 UTC, on every merge to its main branch, or on demand by admins. This GitHub action has all the details.

For script authors, this means:


How do I get my README and cover image on norns.community?

These conventions were designed to "just work" with how most scripts are structured today.

READMEs are individually cached from each script's repository in the below cascading sequence. Simply add a README to your project at either of the following locations:

1. ./doc/index.md
2. ./README.md

To ensure maximum resilience, please use absolute URLs in your docs.

Cover images (aka screenshots) are individually cached from each script's repository in the below cascading sequence. Simply add a cover to your project at any of the following locations:

1. ./doc/cover.png
2. ./doc/<your_script_name>.png
3. ./doc/screenshot.png
4. ./cover.png
5. ./<your_script_name>.png
6. ./screenshot.png

If a cover image is not found in any of the above locations, we then try the local archive before finally using a default image:

7. ./archive/screenshot/<your_script_name>.png
8. ./assets/images/dust.png

The local archive cache is from norns.community v1.0. It was archived in February, 2023.


Can I see an example?

dronecaster is one of many possible examples of what a compatible script structure might look like:

./doc/dronecaster.png (this cover will be used)
./engine
./lib
./.gitignore
./LICENSE
./README.md (this README will be used)
./dronecaster.lua

What if something is wrong?

Please open an issue on GitHub.


How does this site work?

A curl script fetches our community catalog. A build script then uses that data to construct this Jekyll website. It is hosted with GitHub pages.

Additionally, these raw resources are available:


How can I help maintain this website?

If you want to help maintain this website, you can run it locally and test your changes before submitting a pull request.

Jekyll (Ruby) / HTML / CSS

  1. clone repository to your computer
  2. install Ruby and bundle
  3. using a shell, navigate to the norns-community directory with cd
  4. pull the latest community data and build with: ./00-nuke.sh && ./01-curl.sh && ./02-build.py
  5. in the directory execute: bundle install
  6. then execute: bundle exec jekyll serve --baseurl '' (save memory/energy and cancel this process while ./02-build.py is running.)
  7. tip: see scripts package.json for various shortcuts of the above.
  8. you can now visit http://127.0.0.1:4000 in your browser

This site was built with ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [arm64-darwin21]

TypeScript / JavaScript

There is a single TypeScript file that is used to enable filtering on the "explore" page.

Install TypeScript and watch the file with:

  1. npm i
  2. npm run tsc

The build process assumes the transpiled JavaScript is already there. Perform all the npm actions locally.


Philosophy

The architecture and technology of this site was inspired by permacomputing concepts.


Links


Credits