Pita/etherpad-lite — pull request #528 by redhog (2012-03-01 19:36:46+00:00)
Title: Plugin framework

This rework adds a plugin framework. There are many things that could be fixed above and beyond what this does, but this works. These are the main major changes:

CommonCode.require is gone and replaced by require(); Paths on the following format will import properly on both server and client side: "ep_pluginname/static/js/somepath"

Plugins are loaded with require("ep_etherpad-lite/static/js/pluginfw/plugins").update(cb), hooks are called as require("ep_etherpad-lite/static/js/pluginfw/hooks").callAll("hook_name", {"arg":"value"})

Etherpad itself is now an npm package, and a plugin. It resides in the /src directory and is linked at install/runtime to node_modules/ep_etherpad-lite using npm link. It has its own package.json and ep.json.

Quite some core etherpad functionality is linked in as hook callbacks registered by ep.json. Those functions resides under node/hooks/*

There is still no admin UI, nor any plugins but the test plugin.

User documentation
http://beta.etherpad.org/p/plugin-documentation-for-plugin-developers