ArteJS is a powerful, extensible, configurable, flexible and cross-browser rich text editor with a simple API that produces consistent, valid and concise html.
ArteJS is an open source project falling under the Apache license. By using, distributing, or contributing to this project, you accept and agree that all code within the ArteJS project are licensed under the Apache license.
General ArteJS discussion takes place via Gitter, but issue threads are preferred for specific issues, so as to retain the history.
First, ensure that you have the latest Node.js and npm installed.
Test that Grunt's CLI is installed by running grunt --version
. If the command isn't found, run npm install -g grunt-cli
. For more information about installing Grunt, see the getting started guide.
- Fork and clone the repo.
- Run
npm install
to install all dependencies (including Grunt). - Run
grunt
to grunt this project.
- If no issue already exists for the work you’ll be doing, create one to document the problem(s) being solved and self-assign.
- Create a new branch—please don't work in your
master
branch directly. We reccomend naming the branch to match the issue being addressed (issue-777
). - Add failing tests for the change you want to make. Run
grunt
to see the tests fail. - Fix stuff.
- Run
grunt
to see if the tests pass. Repeat steps 2-4 until done. - Open
test/*.html
unit test file(s) in actual browsers to ensure tests pass everywhere. - Update the documentation to reflect any changes.
- Push to your fork or push your issue-specific branch to the main repo, then submit a pull request against
master
. - Once tested and +1’d by another team member (with no outstanding objections), self-merge into
master
.
This project uses semantic versioning.
- MAJOR version for incompatible API changes,
- MINOR version for adding functionality in a backwards-compatible manner, and
- PATCH version for backwards-compatible bug fixes. Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
Regarding code style like indentation and whitespace, please follow the conventions you see used in the source already. These are actively enforced by a JSCS Grunt task.
While Grunt can and does run the included unit tests via PhantomJS, this shouldn't be considered a substitute for the real thing. Be sure to test the tests/all.html
unit test file(s) in actual browsers.