The overall mechanism of the Plugin Architecture is consolidated across my addons for concreet5.7+.
For example, in the 5.7+ version of Last Updated, plugins provide the functionality to adapt Last Updated to alternative date/time formatting. They inherit from UpdatedPluginBase. Details are provided by comments in the code. Plugins can be added by placing the plugin classes at packages/packageName/src/LastUpdated/UpdatedPlugins/PluginName or application/src/LastUpdated/UpdatedPlugins/PluginName. Visiting the dashboard page at Last Updated > Last Updated Plugins automatically scans for new plugins and makes them available.
Both the 5.6 and 5.7+ versions of Syntax Anywhere provide alternate Syntax Formatting through plugins. On 5.7+, they inherit from SyntaxPluginBase and plugins can be added by placing the plugin classes at packages/packageName/src/SyntaxAnywhere/SyntaxProcessors/PluginName or application/src/SyntaxAnywhere/SyntaxProcessors/PluginName. A dashboard page at Syntax Anywhere > Syntax Processor Plugins scans for new plugins and makes them available.
One of the concepts of the plugins is that they should be self-documenting. Each plugin provides getName(), getDescription() and getHelp() methods that are in turn used in the dashboard pages and plugin selection dialogs to provide advice on their use. Adding a new plugin will automatically extend the associated documentation.
Last updated: over a year ago