文書の過去の版を表示しています。
インクルードフックとjQueryを使ってDokuWikiをカスタマイズする
インクルードフックとは
DokuWikiのテンプレートにはInclude Hooksと呼ばれる仕組みがある。
テンプレートディレクトリに指定のHTMLファイルを置くと、生成されるWikiページの所定の場所に、その内容が差し込まれるというものだ。
例えば、meta.htmlなら<head>タグの中に展開されるといった具合。
下表がDokuWikiの標準的なフックである(2016-05-17現在)。
| ファイル名 | HTMLが組み込まれる場所 |
|---|---|
| meta.html | <head>タグの内側 |
| topheader.html | <body>タグの後、右側ページの最上部 |
| header.html | 上部青線の上、ページ名とwikiタイトルの下 |
| pageheader.html | パンくずの下、実コンテンツの上 |
| pagefooter.html | 下部青線の上、最終更新日の下 |
| footer.html | </body>タグの直前、ページの最後尾 |
フックの処理はWiki側ではなくテンプレート側で実装されるものなので、規約というよりも紳士協定に近く、テンプレートによっては対応してなかったり、逆に独自のフックを追加している場合もある。詳細は各テンプレートのドキュメント(とコード)で確認されたし。
インクルードフックを使うとテンプレートのコードを弄らずにWikiページをカスタマイズ出来るようになるが、全てのページに対し一律で適用されるため、フック単体ではあまり凝ったことはできない。想定の使われ方としてはフック名の通り、ヘッダやフッタといった静的かつ全ページに適用したい事を記述するのだろう。
jQueryと組み合わせて使う
だがしかし、jQueryと組み合わせることで一気に夢が広がリング。