DokuWiki の見栄えのほとんどは CSS スタイルシートを通じて制御することができます。DokuWiki はそれ自身では最小限のスタイルしか定義しません。CSS 定義の残りは、使用されているテンプレートとプラグインに由来します。
すべての CSS ファイルは、lib/exe/css.php にある単一のディスパッチャを通じて取得されます。これは、キャッシュ、パターン置換、最適化についても扱います。スタイルシートなどのロードは、tpl_metaheaders() 関数を経由して行われるので、あなたのテンプレート内に入れ忘れないようにしてください。
DokuWiki はスタイルシートを次の4箇所からこの順序でロードします(RTL スタイルシートは各ステップの最後に付加されます):
これらのスタイルシートは /lib/styles に配置されています。これらは、エラーメッセージの見た目のような基本的なスタイルを定義し、また、コンテンツを表示させない .no クラスのような便利なスタイルを定義します。
プラグインはそれら自身のスタイルを以下のファイルを用いて定義することができます:
| CSS ファイル | いつ使用されるか |
|---|---|
style.css | すべての表示モードで適用 |
print.css | ページが印刷されるときに適用 |
rtl.css | 右から左に書くインターフェース言語が用いられるときに適用 |
任意のテンプレートの色使いにうまく適合させるため、プラグインの作者は保証色彩プレースホルダーを用いるべきです。
プラグインからのスタイルシートはプラグインが用いられない場合であってもロードされます (ただし、プラグインが無効化されている場合はロードされません)。
ここで定義されるスタイルは、競合に気をつけるべきです。ですので、プラグインを書く際は注意してください。可能な場合は、確実に競合が起きないようにするため、あなたのスタイルにプレフィックスをつけてください。
テンプレートのスタイルシートは選択されたテンプレートのディレクトリからロードされます。DokuWiki は、そのディレクトリにある style.ini を読み、このファイルで参照されているすべての CSS をロードします。ロードは、現在のモードに従って行われます。
さらに、この style.ini ファイルでは、パターン置換が定義されます。
Wiki の管理者は、conf/ 内に以下の CSS ファイルを作成することによって、使用されているテンプレートとは独立に付加的なスタイルを定義することができます。
| CSS ファイル | いつ使用されるか |
|---|---|
conf/userstyle.css | すべての表示モードで適用 |
conf/printstyle.css | ページが印刷されるときに適用 |
conf/rtlstyle.css | 右から左に書くインターフェース言語が用いられるときに適用 |
これは、テンプレートやプラグインが後日更新された場合にも問題を起こすことなく、それらのスタイルの小さな部分を上書きするのに便利です。
DokuWiki はデフォルトでは 3 タイプのスタイルシートのモードを認識します:
rtl ファイル内の定義が追加ロードされますスタイルを割り当てるためにテンプレート内でカスタム ID を使用する際、それが既存の ID と競合しないよう気をつけてください。特に、セクションの見出しに自動的に割り当てられる ID に気をつけてください。これを確実に行う最も簡単な方法は、ID に二つの連続アンダースコア (__) を使用することです。セクションの ID は常に有効なページ名なので、連続アンダースコアが含まれることは決してないからです。
style.ini は ini ファイルです。これにはセクションが二つあります:
この部分は、どの CSS ファイルがロードされるかを定義します。各行は次のように定義されます:
cssfile.css = mode
cssfile.css はあなたのファイル名で、mode は適用するモードです。
DokuWiki の CSS ディスパッチャーは、ロードされるスタイルシート内のプレースホルダーを、テンプレートの style.ini 内の [replacements] セクションで設定された値に置換することができます。これは、一度色使いを定義した後、すべてのファイルでそれらの値を再利用するのに特に便利です。後から色を調整するのは、単純に ini ファイルを変更するだけで済みます。
以下のプレースホルダーはプラグインに用いても安全なもののみです。
| プレースホルダー変数 | 意味 | デフォルトテンプレートでの値 | 2006-08-05 以前の名前 |
|---|---|---|---|
__background__ | 主たる背景色 | #fff | __white__ |
__background_alt__ | 代替の背景色 | #dee7ec | __medium__ |
__background_neu__ | 中間的な背景色 | #f5f5f5 | __darkgray__ |
__border__ | ボーダー色 | #8cacbb | __dark__ |
__text__ | 主たるテキスト色 | #000 | __black__ |
__text_alt__ | 代替のテキスト色 | #638c9c | __darker__ |
__text_neu__ | 中間的なテキスト色 | #666 | __lightgray__ |
2006-08-05 以降、意味的により正確になるように、これらの名称が変更されました。パターン置換を利用しているこれ以前のプラグインとテンプレートはこれらの変数をまだ用いていないかもしれませんが、用いるようにしてください。
これらの付加的なプレースホルダーはデフォルトテンプレートで使用されます。他のテンプレートでも使用するかもしれませんが、その義務はありません。
| プレースホルダー変数 | 意味 | デフォルトテンプレートでの値 | 2006-08-05 以前の名前 |
|---|---|---|---|
__background_other__ | その他の背景色 | #f7f9fa | __lighter__ |
__text_other__ | その他のテキスト色 | #ccc | __mediumgray__ |
| (なし。削除) | - | #eef3f8 | __light__ |
__extern__ | リンク色 | #436976 | (変更なし) |
__existing__ | 存在する内部リンクのリンク色 | #090 | (変更なし) |
__missing__ | 存在しない内部リンクのリンク色 | #f30 | (変更なし) |
__highlight__ | 検索断片のハイライト色 | #ff9 | (変更なし) |