DokuWiki:エレガントで軽量なwikiエンジン

 DokuWikiはもともとはシンプルな文書管理ソリューションとして開発されたが、今や共同編集が必要なほとんどの作業に適したパワフルで柔軟なwikiに進化している。 バックエンドにデータベースを使用しない(全ページをプレーンテキストファイルとして保存する)ため、インストールも保守も簡単だ。特定のページや名前空間へのアクセス制限を行うためのユーザフレンドリで柔軟な仕組みを提供する、ACL(アクセス制御リスト)機能も備えている。またプラグインを使ってデフォルトの機能を拡張することも可能で、何百というプラグインから選んで利用することができる。

dokuwiki1_thumb.png
DokuWiki

 DokuWikiはデータベースバックエンドを使用しないため、インストールして利用するためにはPHPが利用可能なウェブサーバさえあれば良い。DokuWiki最新版をダウンロードしてアーカイブを展開して、作成されたフォルダ(フォルダ名を「dokuwiki」に変更しておくと良いだろう)をウェブサーバ上に移動する。ウェブサーバの最上位ディレクトリの直下にDokuWikiをインストールしたい場合には、展開したフォルダの内容をウェブサーバのDocumentRootディレクトリに移動すれば良い。なおウェブサーバがconfディレクトリとdataディレクトリに対して書き込み可能であることを確認しておこう。そのためにはFTPクライアントを使って両ディレクトリのパーミッションを777に設定すれば良い。次にブラウザで「http://自分のウェブサーバ/dokuwiki/install.php」にアクセスしてDokuWikiのインストーラを起動する。インストールするには、wikiに名前を付けてACLを有効にしたうえで、そのwikiのための最初のACLポリシーを選択する必要がある。その後Save(保存)ボタンを押せば準備完了だ。

 インストールが完了すれば、ページの追加が可能になる。もっとも簡単な方法としてはCreate this page(このページを作成)ボタンを押せば、スタートページ (ブラウザで「http://自分のウェブサーバ/dokuwiki」にアクセスしたときに開くデフォルトのページ)を作成できる。あらゆるwikiシステムと同様にDokuWikiも、存在しないページにリンクして、そのページに行って、そのページを作成することによってwikiページを「増殖」させることができる。現在編集中のページにリンクを挿入するには、「[[ページ名]]」のようにしてページ名を二重かっこで囲めば良い。

 DokuWikiにはWYSIWYGエディタは含まれていないが、太字/イタリック/見出し/リスト/リンクなど、良く使う文書整形オプションのボタンがあるツールバーが装備されている。また長いページの編集を楽にするために、別々に編集可能な各部分にページを自動分割する便利な機能もある。分割はページ内の見出し単位で行い、また見出しを3つ以上(この値はwikiのConfiguration Settings(設定の変更)から調整可能)含むページについてのみ分割する。さらに、見出しを3つ以上(この値についても調整可能)含むページについてTOC(目次)を自動生成する機能もある。この機能を利用すれば、長いページでも読み手が読みたい場所を迅速に見つけやすくなる。なおページ内のどこかに「~~NOTOC~~」フラグを挿入しておくことで、この機能を個々のページで無効に設定することもできる。

 DokuWikiではSave(保存)ボタンをクリックすると、その都度、作業中のページの一つ前のバージョンも保存される。その後Old revisions(旧版)ボタンを使用すれば、そのページの古いバージョンの一覧が表示されて、複数のバージョンを比較できる。比較の際にはバージョン間での相違点が色分け表示されるので、変更点を確認しやすい。さらに、DokuWikiが自動生成するRSSフィードを利用して各ページの変更点を追跡することも可能だ。Recent changes(最新の変更点)フィードでwikiの全ページについての変更点を追跡することもできるし、Current namespace(現在の名前空間)フィードで特定の名前空間内のページについてのみ追跡することもできる。

 仮想フォルダのような働きをする「名前空間」と呼ばれるものを使用すれば、テーマなど何らかの基準に基づいてwiki内の各ページを分類しておくことができる。名前空間を新規に作成するには、「[[名前空間:ページ名]]」という形式で現在編集中のページの中にリンクを挿入する。したがって例えば「英語(english)」と言う名前空間内に「慣用句(idioms)」というページを作成したい場合には「[[english:idioms]]」というリンクを挿入すれば良い。

 ページや名前空間を概観するには、ページや名前空間を一覧表示する開閉可能なツリーなどを表示するIndex(インデックス)ページを見れば分かりやすい。Index(インデックス)ページは、wiki内の全ページのページ末に表示されるIndex(インデックス)ボタンを押せば表示される。また各ページに迅速に移動する別の方法としてSearch(検索)機能があって、目的のページ名の入力を開始すると、文字単位でマッチするページや名前空間が自動的に表示されて、文字を入力する度に選択肢が限定されていく。またSearch(検索)ボタンを押せば検索結果のページ一覧が表示されて、各ページ概要の中で検索語がハイライトされる。

 全ページに免責事項や著作権表示などの固定的なテキストを付ける必要がある場合には、ページのテンプレートが便利だろう。テンプレートを利用するにはまず新規のwikiページを作成(あるいは既存のページを利用)して目的とする形式の文書を作成する。次にそのページの内容をコピーして、プレーンテキストファイル内に貼り付ける。あるいはDokuWikiの文書整形オプションに慣れているのであれば、テキストエディタを使ってテンプレートを作成/整形しても良いだろう。その後ファイルを_template.txtとして保存して、FTPクライアントを使って適切な名前空間に移動しよう。すると自動的に、その名前空間内に作成されているすべてのページにテンプレートが適用される。便利な点として、名前空間ごとに異なるテンプレートを作成できるため、例えば記事のページとヒント集のページとで異なる形式のテンプレートを使用することができる。

DokuWikiの管理と拡張

 wiki内の全ページのページ末に表示されるAdmin(管理)ボタンからは、Access Control List Management(ACL管理)セクションやConfiguration Settings(設定の変更)セクションなど、DokuWikiの管理機能を利用できる。Access Control List Management(ACL管理)セクションでは、ページや名前空間ごとのアクセス権限を制御することができる。また特定のユーザやグループに対してよりきめ細かく権限を付与するためのツールも用意されていて、例えば特定のユーザに対して、特定の名前空間内のページの読み取りと編集を許可する一方で新規ページの作成や既存のページの削除やファイルのアップデートについては制限するといったような権限を設定することもできる。

 Configuration Settings(設定の変更)セクションでは、wikiのほぼあらゆる面を調整できる。Authentication(認証)セクション内にあるDisable DokuWiki actions(DokuWikiの機能を無効にする)というオプションでは、DokuWikiの各機能を有効/無効にすることができる。例えばリビジョン機能を無効にしたい場合にはOld Revisions(旧版)のチェックボックスのチェックを外せば良い。またAdvanced Settings(詳細な設定)セクションにも、Hide matching pages(マッチするページを隠す)という便利なオプションがある。このオプションを使えば特定の正規表現にマッチするページを隠蔽することができる。例えばページ名に「hidden」という文字列を含むすべてのページを隠したい場合には、「^.*?:hidden$」という正規表現を指定すれば良い。また「^.*?:hidden$|temporary$」のように「|」記号を使えば複数のページ名を指定することもできる。ただしこの機能はDokuWikiの検索とRSSフィードに対してページを隠蔽するだけなので、wikiページ内の機密情報の保護にはならない点に注意しよう。

 Administration(管理)の中にあるManage Plugins(プラグインの管理)セクションでは、デフォルトで用意されている機能を拡張するためのプラグインをインストール/管理できる。プラグインをインストールするには、URLフィールドの中にURLを指定して、Download(ダウンロード)ボタンを押せば良い。ただしプラグインマネージャにはpluginsディレクトリへの書き込み権限が必要なので、DokuWikiがインストールされている環境によってはうまくいかないこともあるだろう。その場合にはプラグインを手動でインストールすることもできる。zip形式かtar.gz形式のプラグインパッケージをダウンロードして展開して、作成されたフォルダをDokuWikiのlib/pluginsディレクトリにアップロードしよう。

 オフィシャルのプラグインページには100を越える便利なプラグインが用意されているので、目的に応じて好きなものをインストールすれば良い。とは言え必ずインストールしておきたい定番プラグインもいくつかある。例えばODT Exportは、DokuWiki内の各ページをOpenOffice.org Writer文書として保存することができるプラグインだ。このプラグインをインストールして、「~~ODT~~」というフラグをページのどこかに挿入しておけば、ページにODF export(ODFエクスポート)ボタンを追加できる。またTagもインストールする価値のあるプラグインだろう。このプラグインを使えばDokuWikiにタグ機能を追加できて、「{{tag>tag1 tag2 tag3}}」という形式の簡単なマークアップ(例えば「{{tag>english language idioms}}」)を使ってwikiページをタグ付けできる。その後、例えば「{{topic>idioms}}」というように「{{topic>tag1 tag2}}」という形式を使って、特定のタグ(複数も可)を含むページの一覧を生成することができる。

最後に

 軽量でエレガントな見掛けのDokuWikiだが、その中にはパワフルで柔軟なwikiエンジンが実は隠されていて、情報の公開や共同編集をこの上なく簡単にしてくれる。さらにはプラグインを利用すればデフォルトの機能を強化することもできて、ブログやデータベースやタスクマネージャとして利用することさえできるようになる。最後に、DokuWikiを使うことに決めたならDokuWiki ManualページとTips and Tricksページを見れば、この素晴らしいwikiエンジンを最大限に活用するために役立つだろう。

Dmitri Popovは、ロシア、イギリス、アメリカ、ドイツ、デンマークのコンピュータ雑誌で活躍するフリーランスのライター。

Linux.com 原文