sidebarプラグイン

サイドバーがないテンプレート(DokuWikiのdefaultテンプレートなど)にサイドバーを追加する。
DokuWikiがページを表示しようとする際に割り込みをかけるプラグインなので、テンプレートを改造する必要がない。

具体的な手順

  1. 管理ボタン→サイト設定から、サイドバー用ページを指定する。標準だと「sidebar」という名前
  2. サイドバー用ページを作成する
  3. サイドバー用ページに、手書きやIndexmenuプラグインなどでナビゲーションメニューを作るなど、サイドバーに表示したいものを書き込む
  4. sidebarプラグインによって、サイドバー用ページの内容がサイドバーに表示される

管理→サイト設定→Sidebarプラグイン設定で、細かい設定が出来る。

「指定したページの内容をサイドバーに表示する」プラグイン。つまり、サイドバー用ページは特殊ページでもなんでもなく、他のページと基本的に同格。
なので、Indexmenuプラグインなどページ一覧表示系のプラグインを使うと、サイドバー用ページも一覧表示に出てくる事がある。
それは望ましくないという場合は、管理ボタン→サイト設定で、各プラグインの除外設定を使い、サイドバー用ページを表示しないようにする。

なお、サイドバー用ページに何も書かれていない場合は、DokuWiki標準の索引(index)を表示する。

既知の問題

はっきり言って多いです。最初からサイドバー付きのテンプレートを選んだ方が無難かも。

同名ページの処理

サイドバー用ページとして指定したページと同名のページを開くと、そのページ自身をサイドバーとして表示してしまう。
たとえば、サイドバー用ページを「sidebar」と指定した場合、plugin:sidebarやfaq:sidebarといったページを開くとそのページの内容がサイドバーに表示される。

そのサイト内で唯一のページ名をつければ回避出来る。

なお、Arcticテンプレートでも同じ問題が発生する。

デザインの崩れ

脚注のポップアップに縦線が入る

脚注を書いていると、ポップアップに縦線が入ってしまう。sidebarプラグインのstyle.cssを修正すると直る。1)

/* the following three styles use a faux-column image to place a separating line 
   between the sidebar and dokuwiku */
- .sidebar_outside_left .dokuwiki, .sidebar_inside_left .dokuwiki {
+ .sidebar_outside_left, .sidebar_inside_left {
    background: url(/lib/plugins/sidebar/images/sidebar-border.gif) repeat-y 20%;
}
 
- .sidebar_outside_right .dokuwiki, .sidebar_inside_right .dokuwiki {
+ .sidebar_outside_right, .sidebar_inside_right {
    background: url(/lib/plugins/sidebar/images/sidebar-border.gif) repeat-y 80%;
}

EditorプラグインやPagelistプラグインの表示が変になる

EditorプラグインやPagelistプラグインで作成したテーブルやリスト内の文字が、数文字~10数文字で折り返されてしまう事がある。原因は以下の通り。

  • sidebarプラグインが、floatでサイドバー(div id=“sidebar”で囲まれた部分)と本文(div class=“page”で囲まれた部分)を浮かせ、レイアウトしている。
  • Pagelistプラグインは、
    • 本文で使われているpageクラスを再利用しているため、本文のfloatの影響をそのまま受ける。
    • もともと横幅を定義していない。
    • Editorプラグインを補助している。

結果として、EditorプラグインやPagelistプラグインが生成するテーブルやリストは十分な横幅を確保出来なくなり、文字がすぐに折り返されてしまう。

サイドバーでの表示の乱れは、/conf/userstyle.cssを作成し、以下のような記述をすれば修正出来る。

#sidebar .pagelist {
width:95%;
}
#sidebar .page {
margin-left:5px;
float:left;
}

本文での表示の乱れが気になる場合は、以下を追加。横幅は好みに応じて修正。

div.dokuwiki table.pagelist,
div.dokuwiki table.ul {
width: 100%;
}

div.dokuwiki table.pagelist .page,
div.dokuwiki table.ul .page {
float:left;
}

文章が変に折り返されたり、boxプラグインの動作がおかしくなったり

  • 普通に書いた文章がやや狭い幅で折り返されて表示される事がある。
  • boxプラグインのタイトルに日本語を使っていると、タイトルが押しつぶされたようになる事がある。

これは、clearhistoryプラグインのCSSに問題があり、sidebarプラグインを使うと顕在化するため。修正方法はboxプラグインを参照。

pageheader.htmlに書いた内容がサイドバー内に表示されたりする

DokuWikiにはInclude Hookというものが用意されていて、対応テンプレートだとテンプレート本体を改変する事なくテンプレートを微調整出来る。

だが、少なくともsidebarプラグインが有効な状態だと、pageheader.htmlに書いた内容がサイドバー部分に表示されてしまう事がある。

これは、sidebarプラグインがパンくずリスト(div class=“breadcrumbs”で囲まれた箇所)をfloatで動かしているため。パンくずリスト直下に来るpageheader.htmlが影響を受け、表示が乱れる。

対応策はいくつかあるが、pageheader.htmlの中身を以下のようにすれば修正される。
(サイドバーが左にある場合)

<div style="clear:both;float:right">
内容
</div>
<br style="clear:both" />

状況に応じて、floatを調整する事。

1) 削除する事で何らかの影響があるかもしれないが、現時点では不明
 
dokuwiki/plugin/sidebar.txt · 最終更新: 2009/10/16 22:53 by admin
 
特に明示されていない限り、本Wikiの内容は次のライセンスに従います:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki