# Converse.js Community Plugins

This repo contains community contributed plugins, not included in the core of Converse.js.

To see a demo of all the plugins working, click [here](https://conversejs.github.io/community-plugins/)

## Example - stickers plugin
<img src=https://github.com/conversejs/community-plugins/raw/master/packages/stickers/stickers.png />

## Creating a plugin

To create a new plugin, use [generator-converse](https://github.com/conversejs/generator-conversejs),
which is a [Yeoman](http://yeoman.io/) generator.

Install Yeoman and the generator:

    npm install -g yo generator-conversejs

Then, to create a new plugin, run the following:

    $ yo conversejs my-sexy-plugin

Where `my-sexy-plugin` should be replaced with the name of your plugin.

## Adding a plugin to the repo here for general use

Simple raise a PR with your new plugin. Please make sure you do the following first

- Create a subfolder for your plugin and copy all your files in there. Please include a screenshot of the plugin working in converse.
- Edit index.html, add your plugin to the index page. Comit your changes and make sure it works from the demo web site at https://conversejs.github.io/community-plugins/.


## Enabling a plugin in Converse

Before a plugin can be used, it needs to be whitelisted when you call `converse.initialize`.

    converse.initialize({
        whitelisted_plugins: ['my-sexy-plugin'],
    });


## TODO: Moving plugins to Lerna

We've started using [Lerna](https://lernajs.org) to manage the plugin packages.

For older plugins, the following needs to be done:

* Move it to the `./packages/` directory
* Add a package.json and give it a name in the form `@converse-plugins/name`
