devel:plugins
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
devel:plugins [2016-01-27 11:57] – [Plugin Wizard] 80.32.109.89 | devel:plugins [2023-11-19 23:53] (current) – plugin survey a bit too old Klap-in | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Plugin Development ====== | ||
+ | |||
+ | It is very easy to write a DokuWiki plugin. Before writing your own, remember to search for similar plugins among [[: | ||
+ | |||
+ | DokuWiki has a flexible plugin API which allows developers to extend its functionality, | ||
+ | |||
+ | ===== Plugin Types ===== | ||
+ | |||
+ | At the moment DokuWiki features seven different plugin types. | ||
+ | |||
+ | * [[Syntax Plugins]] extend DokuWiki' | ||
+ | * [[Action Plugins]] can be used to extend or replace many aspects of DokuWiki' | ||
+ | * [[Admin Plugins]] can provide administration functionality for DokuWiki - these plugins are accessible to superusers and managers via the Admin button. | ||
+ | * [[Helper Plugins]] can be used to provide functionality to many other plugins, so each plugin doesn' | ||
+ | * [[Renderer Plugins]] allow to create new [[:export]] modes and to replace the standard DokuWiki XHTML renderer. | ||
+ | * [[Remote Plugins]] allow to add webservices to your plugin. | ||
+ | * [[Auth Plugins]] add additional authentication backend to the DokuWiki, which could be activated via configuration manager. | ||
+ | * [[CLI Plugins]] add command line tools to your plugin | ||
+ | |||
+ | A simple plugin like [[plugin: | ||
+ | |||
=====Sources===== | =====Sources===== | ||
+ | |||
There are a number of sources especially for plugin development: | There are a number of sources especially for plugin development: | ||
* The [[devel: | * The [[devel: | ||
Line 5: | Line 27: | ||
* These [[security|security guidelines]] give some deeper understanding of common issues and presents some protection measures. | * These [[security|security guidelines]] give some deeper understanding of common issues and presents some protection measures. | ||
* Some general [[plugin programming tips]] are available, mostly good practices and pointers to handsome tools in DokuWiki. | * Some general [[plugin programming tips]] are available, mostly good practices and pointers to handsome tools in DokuWiki. | ||
+ | |||
+ | ===== Plugin Name ===== | ||
+ | |||
+ | A valid plugin name: | ||
+ | * Should only contain the characters a-z and 0-9. | ||
+ | * Underscore is NOT allowed as: | ||
+ | * This is used to separate ''< | ||
+ | * Using underscore will also give a [[: | ||
+ | * If the same name is used by two different plugins | ||
+ | * they are mutually excluding and inherently incompatible, | ||
+ | * furthermore only one of them can have a plugin homepage on dokuwiki.org. | ||
+ | |||
===== Plugin Wizard ===== | ===== Plugin Wizard ===== | ||
- | A Wizard to create the basic skeleton for a DokuWiki plugin can be found at http:// | + | A Wizard to create the basic skeleton for a DokuWiki plugin can be found at http:// |
If you later need to extend your plugin refer to the [[plugin_file_structure|plugin file structure]] on how files are arranged in a plugin. | If you later need to extend your plugin refer to the [[plugin_file_structure|plugin file structure]] on how files are arranged in a plugin. | ||
+ | |||
+ | ===== Publishing a Plugin on dokuwiki.org ===== | ||
+ | |||
+ | If you created a plugin, please share it with the community. Just create a page named after your plugin in the plugin namespace. E.g. if your pluginfolder is named '' | ||
+ | |||
+ | The page should contain all needed documentation on how to install and use the plugin and give users a pretty good idea what it does before installing the plugin. Adding screenshots might be a good idea as well. When creating the new page, a namespace template will prefill sections and tips for you. | ||
+ | |||
+ | At the top of the plugin page a few metadata fields have to be filled. A description of each field can be found on [[plugin: | ||
+ | |||
+ | Users will see that an update is available in the extension manager. For this to work properly it is necessary that the date “Last updated on” at the Plugin wiki page equals the date in the file [[devel: | ||
+ | |||
+ | Uploads are not allowed on dokuwiki.org, | ||
+ | |||
+ | Plugin developers can check the [[devel: | ||
+ | |||
+ | ===== Inspiration ===== | ||
+ | |||
+ | Already more than 1200 plugins are written for DokuWiki. To learn how things are working, you might study some existing plugins that have some similarity with your ideas. At [[https:// | ||
+ |
devel/plugins.1453892261.txt.gz · Last modified: 2016-01-27 11:57 by 80.32.109.89