文書の過去の版を表示しています。


インクルードフックと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と組み合わせることで一気に夢が広がリング。

  • dokuwiki/customize_dokuwiki_using_include_hooks_and_jquery.1481250086.txt.gz
  • 最終更新: 2016-12-09 11:21
  • by Decomo