Organize Code in Packages

We'll organize and distribute federated wiki code as a series of npm packages backed up by github repos. Here are principles we'll expect to follow.

Current

The client expects to retrieve plugins from specific routes dynamically: /plugins/name/name.js

A few core plugins are built into the client code. See plugins.coffee

Construct factory menu from json found in plugins.

Goal

Each package will publish js in npm and source in github. Of course if the source is js, then they will be the same files.

Goal: We could build an integrated plugin download but haven't done that yet. We could bundle them with browserify and share libs with require.

Goal: Individual operators can trivially build, test and publish a new plugin on github and/or npm, maybe without rebuilding any core js files.

Strategy

Replace plugins in server repos with git clone. ✔

Move plugins to its own repo. ✔

Publish plugins as wiki-plugins. ✔

Servers will use package.json to retrieve bulk plugins. ✔

We could extract files from node_modules/wiki-plugins and put them were expected. ✘