DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:repository

Plugin Repository

This plugin is the counterpart of the 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 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
screenshot_img : http://<someserver>/image.png
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/...
----

The info is stored in a database and used to build a dynamic repository browser (at plugins).

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 Extension Manager and should equal the date in plugin.info.txt
  • compatible – give the DokuWiki version(s) your plugin is 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.
  • 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 120×70 px image)
  • securitywarning – use this field to warn about inherent security problems with the plugin. Ability to execute arbitrary script could be a reason
  • securityissue – only add this field when there is a 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 git or 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       : 
screenshot_img: http://<someserver>/image.png
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/...
----

The info is stored in a database and used to build a dynamic repository browser (at plugins).

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 Extension Manager and should equal the date in template.info.txt
  • 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_imgURL to screenshot of your template (also used in new Extension Manager, which scales and cut it to a 120×70 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 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 git or 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 page.

Repository Plugin Manual and API

The manual describes how to use the different components of the plugin on dokuwiki.org.

The 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.

Discussion

“Random Template” on extensions page can show very old templates with no compatibility info. Maybe the plugin should be changed to show only those with recent compatibility info? — Constant IlluminationConstant Illumination
sancaya

2015-04-06 16:43

I have removed the whole widget as it not worth having if half of the templates it's displaying are unusable. — Anika HenkeAnika Henke
ach

2015-04-12 10:42
plugin/repository.txt · Last modified: 2017-10-21 00:36 by Aleksandr