Thank You for interest in contribution! It is very nice, than You want to help.
There are two ways, that You can help:
- Create issues - this is very important, because this way I and community can track problems and solutions. If you don't know how to code, that's how You can help us!
- Apply code changes - either You are experienced developer or beginner, You can always count on my help, if You want to help with a code directly. Open source is a great way to learn working in group, learn some coding practices and so on, and I'm eager to help everybody. If you cannot solve some problem, just reference me in the issue or send me an e-mail on [email protected].
. | . |
---|---|
Typing | TypeScript |
Build tool | Rollup |
Test tool | Ava |
After cloning the repository run:
yarn install
Then You can run watch mode, so Rollup rebuilds the code on each change
yarn watch
Now You can open index.html
file, and test changes there.
You are obligated by LGPL license to make your changes to the library public, even if you are making these changes for private project (see #License explanation).
To do so you should:
- Fork the repository as new public repository
- Apply changes to Your repository
- (optionally) Create Pull Request to original repository if Your changes may be useful to others
- (optionally) You may add yourself to contributors here
It would be very nice if Your changes are covered by some reasonable unit tests.
As JSR is almost entirely modular, it is easy to add new modules! As described in architecture.drawio JSR uses two types of plugins: extensions and modules. As for now, user cannot add custom extensions via API, but can add custom modules.
Modules are classes, that implements Module
interface, and their responsibility is to render state - usually by applying HTML changes.
They can apply event listeners, and publish changes back to state.
See some modules that already are in application for inspiration, how to write them. This is really simple API.
After creating a module it can be added to JSR init configuration, and everything should launch.
See also abstract Module
class documentation.
Thanks to all contributors, which made v1 better version:
- johnnyflinn - setValue hotfix, ES5 build
- Nufeen - README revision
- plumthedev - fixed rounding number in grid display
- sahithyen - support for HDPI (grid)
- Soanvig - maintainer (in sake of consistency :-) )
Besides that thanks to all people who tried to contribute by opening issues and PRs!