DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:repository

Extension Repository Plugin

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
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://<someserver>/image.png
----

The info is stored in a database and used to build a dynamic repository browser (see the plugins listing or the 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 Extension Manager and should equal the date in plugin.info.txt
  • updatemessage – show message to inform users about update, visible in Extension Manager
  • 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.
    • 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 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 (pre-defined values: informationleak, allowsscript, requirespatch and partlyhidden (explanation))
  • 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       : 
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://<someserver>/image.png
----

The info is stored in a database and used to build a dynamic repository browser (see the template listing or the 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 Extension Manager and should equal the date in 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_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.

plugin/repository.txt · Last modified: 2024-02-06 14:13 by andi

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki