プラグインの開発
DokuWikiのプラグインを書くことはとても簡単です。 自分自身で書く前に、既存のプラグインに似たプラグインがないか探し、プラグイン開発者のためのセキュリティガイドラインを読むことを忘れないで下さい。
DokuWikiには、開発者による機能拡張が可能な柔軟なプラグインAPIがあります。 追加された整形記法モード、カスタム化した動作モード、新しいエクスポートモード、等々が可能です。 プラグインの目的によって、以下のプラグインタイプの1つまたは複数の構成要素からプラグインは成り立っています。
プラグインタイプ
現在、DokuWiki には 5 種類のプラグインタイプがあります。
- 管理プラグイン はDokuWiki の管理機能を提供します。スーパーユーザーと管理者は「管理」ボタンからこれらプラグインを利用できます。
- ヘルパープラグイン は、他の多数のプラグインに対して機能を提供できます。つまり、特定の機能を各プラグインが何度も再実装せずに済みます。
- リモートプラグイン allow to add webservices to your plugin.
- 認証プラグイン add additional authentication backend to the DokuWiki, which could be activated via configuration manager.
color プラグインのような単純なプラグインは、単一ファイル syntax.php
で成り立っています。
より高度なプラグインは、複数のコンポーネントで構成されます。
例えば構造化データプラグインには、“data entry” “table view” 部品に分割した構文処理、全データ入力に添付される特別な編集ボタンの動作部品、データベース維持管理のための管理画面があります。
情報源
プラグイン開発には多くの情報源があります:
- 全プラグインタイプで使用可能な共通プラグイン機能があります。翻訳機能、設定管理機能、interspection を追加します。
- セキュリティガイドラインは一般的な問題の理解を深め、保護対策を提示します。
- プラグインプログラミングのヒントは利用可能で、優良事例、DokuWiki の素晴らしいツールに対する助言です。
プラグイン名
有効なプラグイン名:
- a-z 0-9 の文字だけであること
- アンダースコアは認められません:
<component name>
から<plugin name>
を区切るのに使用されている。- アンダースコアを使用すると 利用状況の数字が 0 になります。
- 別のプラグインが同名を使用した場合、
- 相互に除外し合い、互換性がなくなります。
- どちらか一方のみしか dokuwiki.org のプラグインホームページを持てません。
プラグインウィザード
http://pluginwizard.dokuwiki.org/ にDokuWiki プラグイン用の基本的な骨組みを作成するウィザードがあります。 開発を開始時には、このウィザードを使用することを推奨します
プラグインを拡張する必要がある場合、プラグイン内のファイル配置方法についてプラグインのファイル構造を参照して下さい。
dokuwiki.org でのプラグイン公開
プラグインを作成したら、コミュニティーと共有して下さい。
plugin 名前空間内に、プラグインにちなんだ名前のページを作成するだけです。
例えば、プラグインフォルダーが sample
という名前の場合、wiki に plugin:sample
という名前のページを作成して下さい。
ページにはインストール方法・使用方法・インストール前に実施すべきことのような必要な文書が全て含まれているべきです。 スクリーンショットを追加するのも良いでしょう1)。 プラグインホームページのテンプレートには、ユーザーに役立つページを作成する方法に関して多くのヒントが含まれています。
プラグインページの上部のいくつかのメタデータフィールドは必須項目です。 各フィールドの説明は、リポジトリプラグインのページにあります。
dokuwiki.org ではファイルアップロードを認めていません。 プラグインファイルは、どこか別の場所で管理する必要があります。 Git リポジトリのようなリビジョン管理システムを使用してソースを管理することをお勧めします。 その場合、リポジトリのバグトラッカーを提供している Github のような公開リポジトリホストを利用するのが最も簡単です。
プラグイン調査の概要
プラグイン調査は、www.dokuwiki.org の plugin 名前空間にある全プラグインに関する、開発者向けの概況です。 自動化されたスクリプトによって 2010-09-05 に収集したデータと、ダウンロードと採掘に関する追加の手動データを基にしています。 全 697 ページには、672 個のプラグインが含まれ、647 プラグイン(96%)のソースコードがダウンロード、解析されました。