zim logo

 

Zim - A Desktop Wiki

PluginInterface

Summary: document, use signals more extensively and use POD for info.

short term:

  • Documentations (See e.g. http://live.gnome.org/Gedit/PythonPluginHowTo)
    • document adding new actions
    • Document overloading existing actions (see below)
    • Document using standard methods from Utils.pm and FS.pm - any others ?
    • Document how to add new formatting modules
  • Keep current structure with plugin scripts to allow various checks before loading module
    • use "singleton" signal for registering unplug method
    • idem for registering method to show preferences popup
    • base class for plugins could automatically connect these signals and map to methods
    • (maybe have way to register these signals without using array for optimization ?)
  • Turn all action methods for all zim classes into signal handlers
    • autoload should check for any signal handlers and return after the first that returns TRUE
    • method in the class as default handler
    • this allows overloading actions without currying the method
    • (move AUTOLOAD from Component.pm to Events.pm)
  • Use POD to store meta data in plugin file
    • two sections to show in tabs in dialog: description and about
    • machine readable section with requirements
      • disable the plugin and show message when requirements fail

Long term:

  • Installer package that handles plugin file, libs and docs
    • also do translations
  • Finalize and document how to get alternative views for the pageview
  • Come up with a way to add alternative views to side pane (integrate with search drop down (seperator between views and searches) and optionally have tabs ?)
  • Come up with a way to have a bottom view with alternative views.