====== Extension Repository Plugin ====== This plugin is the counterpart of the [[extension|extension manager]]. It manages [[:extensions]] ([[:plugins]] and [[:templates]]) here at dokuwiki.org and provides the API for the extension manager. (A plugin similar to this one but with more flexibility, aimed at usage outside dokuwiki.org, is also available. It's the [[:plugin:data|data plugin]].) ===== Plugins Entry ===== Each plugin should have a homepage in the ''plugin'' namespace, containing at least a short description and a data block like this at the start: ---- plugin ---- description: Just an example to prove the point author : Joe Blow email : joe@example.com type : syntax, action, admin, helper, render lastupdate : 2007-12-17 compatible : Anteater, 2010-02-14 depends : plugin1 conflicts : plugin2 similar : plugin3 tags : example, sample downloadurl: https://github.com/example/dokuwiki-plugin-sample/zipball/master bugtracker : https://github.com/example/dokuwiki-plugin-sample/issues sourcerepo : https://github.com/example/dokuwiki-plugin-sample/ donationurl: https://www.paypal.com/... screenshot_img : http:///image.png ---- The info is stored in a database and used to build a dynamic repository browser (see the [[:plugins]] listing or the [[plugin:Extension|Extension Manager]] in your wiki). About the fields: * **description** -- should be a short description of what the plugin does * **author** -- the plugin's main author or current maintainer * **email** -- email address of the plugin's main author or current maintainer * **type** -- one or more of the plugin types (syntax, action, admin, helper, render) * **lastupdate** -- date when newest version of the plugin was provided, in YYYY-MM-DD format, it is used for automated update checking by the [[plugin:extension|Extension Manager]] and should equal the date in [[devel:plugin_info|plugin.info.txt]] * **updatemessage** -- show message to inform users about update, visible in Extension Manager * **compatible** -- give the DokuWiki version(s) your plugin is [[:extension_compatibility|compatible]] to. Multiple versions can be given and code names can be used. Eg: 2009-02-14, lemming, anteater. * Use a plus sign ''**+**'' if you think it's safe to assume that the plugin will be compatible with future releases of DokuWiki. * Use an exclamation mark ''**!**'' if the plugin is not compatible to a DokuWiki release (e.g. "!Greebo"). * **depends** -- comma separated list of plugin dependencies if any * **conflicts** -- comma separated list of plugins/templates which conflict your plugin, use ''template:xxx'' if conflicting with the template ''xxx'' * **similar** -- comma separated list of plugins with a similar task * **tags** -- categorize your plugin here. If ''!obsolete'' is the only tag, then this plugin will be hidden from repo table * **screenshot_img** -- image url to characteristic screenshot of plugin/template (also used in new Extension Manager, which scales and cut it to a 120x70 px image) * **securitywarning** -- use this field to warn about inherent security problems with the plugin. Ability to execute arbitrary script could be a reason (pre-defined values: ''informationleak'', ''allowsscript'', ''requirespatch'' and ''partlyhidden'' ([[plugin:repository:manual#entry_component|explanation]])) * **securityissue** -- only add this field when there is a [[devel:security]] problem with the plugin. Enter a short description here and inform the author. Plugin will be hidden from repo table * **downloadurl** -- this should be the direct URL to the download compatible with the most current release * **bugtracker** -- a link to the bug tracker for this plugin, leave empty if none available * **sourcerepo** -- a link to the webinterface of a source code management system like [[devel:git]] or [[devel:darcs]], leave empty if none available * **donationurl** -- a link to paypal, an Amazon wishlist or similar thing where people can donate to you, leave empty if none available ===== Template Entry ===== Similar for templates, but in the ''template'' namespace. ---- template ---- description : Just an example to prove the point author : Joe Blow email : joe@example.com lastupdate : 2007-12-17 compatible : Anteater, 2010-02-14 depends : conflicts : example, template:sample similar : tags : example, sample downloadurl : https://github.com/example/dokuwiki-plugin-sample/zipball/master bugtracker : https://github.com/example/dokuwiki-plugin-sample/issues sourcerepo : https://github.com/example/dokuwiki-plugin-sample/ donationurl : https://www.paypal.com/... screenshot_img: http:///image.png ---- The info is stored in a database and used to build a dynamic repository browser (see the [[:template]] listing or the [[plugin:Extension|Extension Manager]] in your wiki). About the fields: * **description** -- should be a short description of the templates main feature * **author** -- the template's main author or current maintainer * **email** -- email address of the template's main author or current maintainer * **lastupdate** -- date when newest version of the template was provided, in YYYY-MM-DD format, it is used for automated update checking by the [[plugin:extension|Extension Manager]] and should equal the date in [[devel:template_info|template.info.txt]] * **updatemessage** -- show message to inform users about update, visible in Extension Manager * **compatible** -- give the DokuWiki version(s) your template is compatible to. Multiple versions can be given and code names can be used. Eg: 2009-02-14, lemming, anteater * **depends** -- comma separated list of template dependencies if any * **conflicts** -- comma separated list of plugins/templates which conflict your template, use ''template:xxx'' if conflicting with the template ''xxx'' * **similar** -- comma separated list of template with a similar task * **screenshot_img** -- URL to screenshot of your template (also used in new Extension Manager, which scales and cut it to a 120x70 px image) * **tags** -- categorize your template here. If ''!obsolete'' is the only tag, then this template will be hidden from repo table * **securitywarning** -- use this field to warn about inherent security problems with the template. Ability to execute arbitrary script could be a reason * **securityissue** -- only add this field when there is a [[devel:security]] problem with the template. Enter a short description here and inform the author. Template will be hidden from repo table * **downloadurl** -- this should be the direct URL to the download compatible with the most current release * **bugtracker** -- a link to the bug tracker for this template, leave empty if none available * **sourcerepo** -- a link to the webinterface of a source code management system like [[devel:git]] or [[devel:darcs]], leave empty if none available * **donationurl** -- a link to paypal, an Amazon wishlist or similar thing where people can donate to you, leave empty if none available ===== Security warning: predefined shortcuts ===== The security warning field allows usage of some predefined shortcuts. The following table shows the actually defined shortcuts and their meaning: ^ Shortcut ^ Meaning ^ | **informationleak** | This extension exposes information that might be valuable to a hacker. It is not recommended in a public installation. | | **allowsscript** | This extension will allow execution of scripts. It should only be used when you trust ALL editors, best suited in private personal wikis. | | **requirespatch** | This extension requires patching the DokuWiki core. Manual patches may break compatibility with other extensions and make it harder to secure your installation by upgrading to the latest version. | | **partlyhidden** | Hiding parts of a DokuWiki page is not supported by the core. Most attempts to introduce ACL control for parts of a page will leak information through RSS feed, search or other core functionality. | An example for the **partlyhidden** security warning can be viewed at the [[plugin:ifauth|plugin:ifauth]] page. ===== Repository Plugin Manual and API ===== The [[:plugin:repository:manual]] describes how to use the different components of the plugin on dokuwiki.org. The [[:plugin:repository:api|API doc]] describes how to query the plugin info from remote. ===== Compatibility with release candidates ===== When a new release candidate is available please update the plugin homepage with appropriate compatibility, use the release name (i.e. "rincewind") rather than the RC date. That way you won't have to update the compatibility information as the final release is done.