-
Notifications
You must be signed in to change notification settings - Fork 1
Completing, Stabilising and Documenting APIs #17
Description
Now that this thing is slowly nearing a release, it's going to be important to stabilise the API and document the butts out of everything.
Useful additional APIs:
-
Chat Commands. Probably
commands.register('/version', { description: '', ... }, params => { ... }), and a magicalcommands:hash on plugins (similar to thesettings:hash).(Started in aa610bf.)
-
Some kind of custom settings view API. The current settings list is a bit limited if you have like, advanced settings or something. (E.g. the CORS setting in core, or custom message colours for chat notifications.) This can probably just be as simple as a
getSettingsView()method on Plugins, although there would have to be a nice interface to wire the settings view to the settings model. Unless of course users are expected to pass the settings model to their view manually 😄(Done in 376a03f.)
-
Proper class overriding API. Not especially necessary, since
meldcan be used to override all necessary individual methods, but it can be nice to justextenda class and tell plug to use that instead.
In need of upgrading/stability:
-
Styling API. It's currently a capital-start method on Plugins, which is rather ugly. Instead, something like
addStyleorcreateStylewould be nice, as well as a more declarativestyles: {}property (similar tosettings: {})(Done in aab79de.)
-
Plugin loader. It'd be really nice to get plugins running in separate require.js contexts before release.
(Started in 1ea83b8.)
In particularly dire need of documentation:
- Plugins, how to make them etc. Settings should probably be included here as well.
- Publishing and installing plugins.
- Overriding methods using
meld. Can probably refer tomelddocs for most of the things, but it'd be nice to show some examples.
In less dire need of documentation:
- Styling API, can just refer to the Sistyl library.
- The CORS-proxying request API.
- Useful plug.dj APIs, and ExtPlug's extensions to these APIs. The extra chat events on the Events context are especially important here.
- The Yeoman ExtPlugin generator.