/quill

A cross browser rich text editor with an API

Primary LanguageCoffeeScriptBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Webdriver Test Status

Quill is a modern rich text editor built for compatibility and extensibility. It was created by Jason Chen and Byron Milligan and open sourced by Salesforce.com.

To get started, check out the Quill Github Page or jump straight into the demo.

Quickstart

Instantiate a new Quill object with a css selector for the div that should become the editor.

<!-- Create the toolbar container -->
<div id="toolbar">
  <button class="ql-bold">Bold</button>
  <button class="ql-italic">Italic</button>
</div>

<!-- Create the editor container -->
<div id="editor">
  <div>Hello World!</div>
</div>

<!-- Include the Quill library -->
<script src="http://cdn.quilljs.com/latest/quill.js"></script>

<!-- Initialize Quill editor -->
<script>
  var editor = new Quill('#editor');
  editor.addModule('toolbar', { container: '#toolbar' });
</script>

Downloading Quill

There are a number of ways to download the latest or versioned copy of Quill.

CDN

<link rel="stylesheet" href="//cdn.quilljs.com/0.19.10/quill.snow.css" />
<script src="//cdn.quilljs.com/0.19.10/quill.min.js"></script>

Local Development

Quill's source is in Coffeescript and utilizes Browserify to organize its files.

Installation

npm install -g grunt-cli
npm install

Building

grunt dist - compile and browserify
grunt server - starts a local server that will build and serve assets on the fly

Examples

With the local server (grunt server) running you can try out some minimal examples on:

Quill releases also contain these examples as built static files you can try without needing to run the local development server.

Testing

grunt test:unit - runs javascript test suite with Chrome
grunt test:e2e - runs end to end tests with Webdriver + Chrome
grunt test:coverage - run tests measuring coverage with Chrome

Tests are run by Karma and Protractor using Jasmine. Check out Gruntfile.coffee and config/grunt/ for more testing options.

Contributing

Community

Get help or stay up to date.

Bug Reports

Search through Github Issues to see if the bug has already been reported. If so, please comment with any additional information about the bug.

For new issues, create a new issue and tag with the appropriate browser tag. Include as much detail as possible such as:

  • Detailed description of faulty behavior
  • Affected platforms
  • Steps for reproduction
  • Failing test case

The more details you provide, the more likely we or someone else will be able to find and fix the bug.

Feature Requests

We welcome feature requests. Please make sure they are within scope of Quill's goals and submit them in Github Issues tagged with the 'feature' tag. The more complete and compelling the request, the more likely it will be implemented. Garnering community support will help as well!

Pull Requests

  1. Please check to make sure your plans fall within Quill's scope (likely through Github Issues).
  2. Fork Quill
  3. Branch off of the 'develop' branch.
  4. Implement your changes.
  5. Submit a Pull Request.

Pull requests will not be accepted without adhering to the following:

  1. Conform to existing coding styles.
  2. New functionality are accompanied by tests.
  3. Serve a single atomic purpose (add one feature or fix one bug)
  4. Introduce only changes that further the PR's singular purpose (ex. do not tweak an unrelated config along with adding your feature).

Important: By issuing a Pull Request you agree to allow the project owners to license your work under the terms of the License.

Thanks

Swift, for providing the npm package name. If you're looking for his blogging engine see v0.1.5-1.

License

BSD 3-clause