Skip to content
This repository was archived by the owner on Mar 6, 2020. It is now read-only.
This repository was archived by the owner on Mar 6, 2020. It is now read-only.

Completing, Stabilising and Documenting APIs #17

@goto-bus-stop

Description

@goto-bus-stop

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 magical commands: hash on plugins (similar to the settings: 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 meld can be used to override all necessary individual methods, but it can be nice to just extend a 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 addStyle or createStyle would be nice, as well as a more declarative styles: {} property (similar to settings: {})

    (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 to meld docs 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions