Thank you for considering contributing to eMath.js! This project is open to contributions from everyone, whether you're fixing a bug, improving documentation, or adding new features.
Before you start contributing, please take a moment to read the guidelines below.
If you encounter any issues with eMath.js or have suggestions for improvements, please feel free to open an issue on the GitHub Issues page. When reporting issues, please include as much detail as possible, including steps to reproduce the problem and your environment setup.
- Fork the repository and clone it to your local machine.
- Install the necessary dependencies by running
npm install
. - Create a new branch for your contribution:
git checkout -b feature/new-feature
. - Make your changes and ensure they adhere to the project's coding standards.
- Test your changes locally to ensure they work as expected.
- Commit your changes:
git commit -m "Add new feature"
- Push to the branch:
git push origin feature/new-feature
- Submit a pull request to the
main
branch of the main repository.
The project is structured as follows:
.eslintrc.json
: Contains the ESLint configuration for the project.tsconfig.json
: Contains the TypeScript configuration for the project.tsconfig.eslint.json
: Contains the TypeScript configuration for ESLint.typedoc.json
: Contains the TypeDoc configuration for generating documentation.package.json
: Contains the project metadata and dependencies.
/src/
: Contains the source code for the library. It is written in TypeScript and compiled to JavaScript. See the corresponding README for more details./dist/
: Contains the compiled JavaScript files and TypeScript declaration files. Once you've made changes to the source code, you can compile it usingnpm run build
./bin/build/
: Contains the build scripts used to compile the TypeScript source code./documentation/
: Contains the documentation files for the project. The built documentation automatically generated from the source code using TypeDoc and built by GitHub actions./test/
: Contains the test files for the project. See the corresponding README for more details./examples/
: Contains example files and demos showcasing the usage of the library. It is not regularly updated and may be out of date.
Please follow the existing code style and conventions used throughout the project. This project uses ESLint to enforce code quality and consistency. You can run ESLint using npm run lint
or npm run lint:fix
to automatically fix some issues.
Note
Prettier is not currently used in this project, despite the presence of a .prettierrc
file. This may change in the future.
Additionally, ensure that your code is well-documented and includes appropriate comments (including JSDoc comments for functions and classes).
If you're introducing new features or making significant changes, please include tests to ensure the reliability and stability of the codebase.
Run existing tests using npm test
and add new tests as needed.
Improvements to the documentation are always welcome. If you notice any errors or have suggestions for clarifications or additions, please update the relevant documentation files or create new ones as needed.
Please note that this project is governed by the Contributor Covenant Code of Conduct. By participating in this project, you agree to abide by its terms.
This project would not be possible without the contributions of its community members. Special thanks to Patashu for making break_eternity.js and MrRedShark77 for the formats.
Note: This package is currently in development and is subject to major changes. If you have any questions or need further assistance, feel free to reach out to the project maintainers.