DokuWiki 覚書
この覚書は 2009 年前半に DokuWiki Release 2008-05-05 および Release 2009-02-14 を導入したときに書き始めたもので、その後ときどき加筆しています。
要点
- 文書ファイル名は半角英数にしたまま、文書タイトルを日本語にするには、「管理」-「サイト設定」で「useheader」にチェックを入れ、最初の見出しがそのまま文書タイトルとなるようにする。これは文書の一覧でも使用されるので、ファイル名やリンク上での問題を回避しつつ文書タイトルに日本語が使える。
- 新規ページを作成するには(日本語対応に向いた方法)
- 既存のページにまず新規項目へのリンク([[英数半角ファイル名]])を作成し、それをクリックした先で「このトピックには文書が存在しません」と表示されたら、左下の「文書を作成」ボタンからファイルを作成し、最初の見出しに項目名を日本語で記入する。(サイト設定で useheader をオンにすることで、ファイル名そのものでなく、最初の見出しが項目名として使用されるようになる。)
- ページ右上の検索窓に、作成したいファイル名(英数半角)を入れて実行(サブカテゴリ使用の場合は、トップからの絶対的位置でサブカテゴリを含めてファイル名を指定する)。その文字列が検索でヒットしなければ、「該当文書はありませんでした」というメッセージが、ヒットしていればその結果が表示されるが、いずれにしても「文書の作成」を実行。あとは同じ。
- 検索のためのインデックス作成は、日本語では一文字単位になってしまい、文字列を普通に検索すると、個々の文字の「or 検索」になってしまう。検索文字列をダブルクォーテーションで囲む ことで文字列(フレーズ)を検索してくれるようだ。
- 検索結果からページに移動すると、ヒットした検索文字列がハイライトされている。
- ページ右下の「索引」ボタンで、記事一覧を表示。
- 見出しごとにアンカーが作成されるが、そのラベルが見出しの内容になり、日本語の場合は日本語になる。
- 「サイト設定」でページ名を「ローマナイズ」にすると、ページ名やアンカーラベルのひらがな・カタカナがローマ字になるが、漢字はそのままなので、利点がない。
- アンカーが日本語でも「目次」の一覧からのジャンプなどはできている。
- 編集ウィンドウの下に「サマリーを編集」という入力欄が表示されるが、この内容は本文に保存されるのではなく、RSS や差分につける要約となる。
- ページの削除 を行うには、該当ページの編集画面で内容を全部消してから保存する。
- 書きかけの項目は一時保存されるので、細かく保存する必要はない。
- デフォルト状態では誰でもユーザー登録ができる。そのユーザーにどのような権限を与えるかは管理者が設定。
- サブカテゴリごと、ページごとに、誰に(どのグループに)読み書きの権限を与えるか(ACL = Access Control Lists)が設定できる。
- ユーザー登録すると、登録に使用したメールアドレスにパスワードが送付される。
- パスワード送付の差出人メールアドレスは、あらかじめ「サイト設定」で指定しておいたほうがよい。(そうでないと、サーバーにログインしたユーザーに付随するメールアドレスが使用される。)
- パスワードはログイン後、「ユーザー情報の更新」から変更できる。
- 画像などのメディアファイルをアップロードしたとき、各ページのソースファイルとは別のフォルダに、カテゴリごとに分けて格納される。画像に IPTC 情報などがあれば、detail.php で画像の詳細表示をする際に、指定されている項目が表示される。また、アップロード後にメディアマネージャから画像にタイトルや説明を付加した場合は、画像ファイルの IPTC 情報としてファイル内に保存される。
- メッセージなどの日本語対応ファイルは inc/lang/ja/ にある。必要なら変更を加える。「txt」や「php」の拡張子のファイルはアップロードできない。
- 初期設定では、ページが編集された後、一定時間が経過しないとサーチエンジンの検索対象にならないよう、編集直後は「<meta name=“robots” content=“noindex,nofollow” />」となっている。この時間設定は、管理画面の「サイト設定」-「スパム対策」の インデックスを許可(何秒後) の数値による。初期値は「60*60*24*5」。
インストール
- インストール用スクリプト が用意されているので、これを使うのがおすすめ。
- まず上記ページから dokuwiki-downloader.php をダウンロードしてローカルに保存する。
- このスクリプトを DokuWiki を設置したい場所にアップロードして、スクリプトを走らせると、DokuWiki の配布ファイル(tarball)をサーバーにダウンロードし、ファイルを解凍し、インストーラの起動までが自動で行われる。現在このスクリプトが取ってくるのは 2009-02-14 のバージョンだが、バージョンが上がればダウンロードスクリプトも対応されるだろうし、そうでなくてもスクリプトの最初の $VERSION のところを変更すればよい。
- 実際に別の場所でやってみましたが、すべてが非常に迅速に完了しました。
- PHP が CGI モードで動いている場合はパーミッションの問題がないが、Apache Handler で処理される mod_php だと手作業でディレクトリのパーミッションを変更する必要が出てくる(「書き込み処理ができませんでした」という内容のエラーになる)ことがある。
- URL をカスタマイズしてリンクから doku.php を消すのは、.htaccess で mod_rewrite が使える環境であれば、附属の .htaccess.dist のいちばん下にある一群の RewriteRule をそのまま使うと簡単にできる。 (だいぶ上にある RewriteEngine on も必要。)
- 有志の尽力による 日本語マニュアル もあります。(全部は日本語化されてませんが。)
- ファイル群をアップロードした場合、その後に install.php を起動して各種設定を行うが、このときファイルに改変が加えられているとエラーになるので注意。(アップロードする前にローカルで動作させないこと。)
- 表示などを日本語にするのはインストール後でも、「管理 (Admin)」-「サイト設定 (Configration Settings)」から設定できる。(設定画面の上から 3 つめを「ja」に設定。)
- 「サイト設定」の言語指定は、それぞれのページのヘッダ情報の言語にも反映される。
- デフォルト(Default テンプレートをそのまま使用)では、ページ下部に各種リンク(リンク画像つき)がある。この設定は lib/tpl/default/ の footer.html にあるので必要に応じて編集する。Creative Commons のライセンス種別はいろいろあるので、選択を確認する。
- サーバーが使用者の生活圏と違う地域にある場合は、Setting TimeZone に従って、タイムスタンプの標準時の設定をして時間を合わせる。conf ディレクトリに local.protected.php という次のような内容のファイルを作成。local.php が管理設定の変更で書き換わっても変更されないよう、別ファイルにすることになっている。
<?php //putenv("TZ=Asia/Tokyo"); // for PHP4 date_default_timezone_set("Asia/Tokyo"); ?>
基本カスタマイズ
ページ表示関連設定
- この関連のファイルは lib/tpl の下の使用中のスタイル名のディレクトリにある。インストール直後は lib/tpl/default/ 直下。
- main.php – すべてのページで読み込む基本的な要素についての設定。
- mediamanager.php – 「イメージやファイルの追加」ボタンをクリックしたときに表示されるページの内容。
- footer.html – すべてのページに共通のフッタの内容の設定。
- スタイルについては lib/tpl ディレクトリの下の使用中のスタイルの CSS ファイルを直接編集する。(最初からあるのは default スタイルなので、これを別名で保存して初期状態のコピーを確保してから編集するか、別名で保存したコピーを編集する。)
- lib/tpl の style.ini では、どのスタイルシートファイルをどの場合に使用するか、という設定と、さまざまな部分に共通に使うベース色が設定されている。(基本の色設定はここで行うほうが CSS ファイルが簡潔になる。)
doku.php を index.php にしたい場合
- doku.php のコピーを作成して index.php とリネーム。(元からある index.php は消すかリネームする。)
- .htaccess で .htaccess.dist の末尾の RewriteRule グループを使用した場合、末尾の 2 行はこのようになる。2 行目はコメントアウト、すなわち使用しないので、削除してよい。
RewriteRule (.*) index.php?id=$1 [QSA,L] #RewriteRule ^index.php$ doku.php
- ファイル内で doku.php に言及している部分を index.php に変更する。
- inc ディレクトリの common.php および init.php でそれぞれ1か所ずつ、doku.php を index.php に変更。
トップページを start から index に変更したい場合
- 「管理」-「サイト設定」で「スタートページ名」を「index」にする。
- これに該当するデータファイルは data/pages/ の index.txt になる。(ダウンロードしてローカルで編集できる。)
- この変更で各ディレクトリ内でファイル名指定がない場合に表示されるファイルが index.txt になる。
favicon.ico のカスタマイズ
- /lib/tpl/default/images/favicon.ico の favicon.ico をカスタマイズしたものに置き換える。
表示される用語のカスタマイズ
- DokuWiki 本体に付属の各国語インタフェースの用語は inc/lang/ にある。日本語のインタフェースをカスタマイズするには、この中の ja フォルダにあるファイルを編集する。実際に動かして表示される文字列で Grep をかけると変更すべき箇所が探しやすい。
- プラグインの日本語インタフェースは lib/plugins/ のそれぞれのプラグインフォルダ内の lang フォルダにある。これも同じようにカスタマイズできる。
ツールチップに表示される略語ヘルプのカスタマイズ
- マニュアル/略語と頭字語 に解説があるとおり、conf/acronyms.conf をカスタマイズする。
動作状況
このセクションは運用状況に応じて更新します。
- 編集履歴は各ファイルごとに履歴フォルダに txt.gz で(ファイル形式は「管理」から変更可)逐次保存される。その結果差分ファイルの数はたいへん多くなる。
- 記事作成によりインデックスファイルがどんどん生成される(内容未確認)。
- ブラウザのバージョンや設定によっては、編集ウィンドウの上の「簡単タグ挿入ボタン」が表示されないことがある。
- ファイルのリネームについて
- DokuWiki の編集画面からはできないが、プラグインを使えばできるらしい。
- サーバーにログインしてファイル名を直接変更することはできる。その場合はそのファイルを参照するリンクを手動で書き換える必要あり。
- データファイルを作成しておいてアップロードし、読み込ませることも、まったく問題ない。 これはじつはすごく便利だったりするかも。
- WinSCP でサーバーとつなぎ、ファイルの Edit を実行してローカルのテンポラリにダウンロード、これをローカルのテキストエディタで編集して保存すると、保存するごとに自動的にサーバーにミラーリングされる。その後、そのページを読み込むとちゃんとアップデートされている。ただし、この方法だとファイルロックその他、オンライン編集の各種機能が働かないので注意。
- こういう編集方法をとったとき、ページの右下に表示される最終更新には「外部編集」と表示される。
- ページの雛形を使う機能もある。ページ作成時に同じカテゴリにある「_templtate.txt」というファイルが雛形として使用される。
- Wiki 全体の表示スタイルを変更するには、 テンプレートの配布 から好みのものをダウンロードして、lib/tpl/ の下に入れ、「管理」画面で目的のものを選択する。
よさそうな特徴
- データベース不要で、そのわりに処理速度は速いらしい。データは記事ごとのテキストファイル。
- データの バックアップ には、/data/pages/ および /data/media/ の内容をコピーしておけばよいので、シンプル。
- 編集用の「見出し」や「リスト」タグ自動入力ボタンが期待以上に便利。
- あらかじめ記法にそった テキストファイルを作成して、それをアップロード することでも、記事が追加できる。
- DokuWiki 記法は、テキストファイル(ソースファイル)の状態で 見出しやリストのレベルが判別しやすく、テキストエディタでの読み書きがしやすい。
- ファイル名を英数半角にしつつ、記事タイトルを日本語にし、かつ、記事一覧でもこの日本語を表示させることが、useheader 設定により可能。
- 編集途中で公開したくないが、保存はしておきたいファイルや、一時的に非公開にしたいファイルは、ファイル名の先頭に「_」(アンダースコア)をつけておくと、記事一覧(索引)での表示や閲覧を回避 できる。(管理画面からアクセス制限をかけるより便利。)
- ページ内のセクションごとの編集ができる。
- ページの右上に表示される「目次」(TOC) はなかなか便利。
- カテゴリ分類ができる ― 「カテゴリ:項目」という書式を使う。この「:」はリンク上では「/」と表示するように設定することも可。
- カテゴリはファイル上でもディレクトリに分けて格納されるので、わかりやすい。
- カテゴリごと、あるいは、ページごとに、ユーザー権限の設定ができる。すなわち、カテゴリごと、ページごとに、各グループ(一般、登録ユーザー、名前をつけたグループ、管理者)がそれぞれ、どこまで許可されるのかが、細かく設定できるので、公開しないセクションやページを混在させられる。
- ページの左上に「現在位置」を表示できるのが好み。(「サイト設定」で表示を選択)
- デフォルトでは左上に「トレース」が表示されている。これは移動履歴の表示。これも便利かも。
作業手順メモ
- リンク切れを起こさずにファイル名(記事ファイルの実体名)を変更するには。
- ファイル名を変更する前にブラウザから記事を開いて、記事タイトル部分をクリックし、バックリンク を表示する。
- このファイルにリンクしている文書の一覧が表示されるので、これをメモ。
- ファイル名を変更するとともに、リンク元一覧にあるリンクを修正。