MenusPlugin
MenusPluginについて。
Hierarchical navigation menus
http://trac-hacks.org/wiki/MenusPlugin
ナビゲーションバーへの項目追加、カスタマイズ、階層メニュー化を行うプラグイン。…のはずなのだが、あまり情報が見あたらない。設定例も見当たらなかったのでここにメモ。
まずプラグインをダウンロードしインストール。Trac.iniの設定を行う。
[components] tracmenus.* = enabled
プラグインを有効化。
[menu-custom] serve_ui_files = true
serve_ui_files:メニューのカスタマイズを有効にする。trueで有効、falseで元のメニューに戻る。
managed_menus:カスタマイズ対象メニューを指定。default値は mainnav,metanav
serve_ui_files = true にすると、managed_menusで指定した項目が機能拡張される。拡張内容は http://trac-hacks.org/wiki/MenusPlugin を参照。
ここでは、トップメニュー用に新しく nav_* というメニューを追加し、既存のメニューはその下に収めるようにした。トップメニューにする項目には *.parent = top と設定する。メニューをどの順番で並べるかは、*.orderの値で設定する。
[mainnav] nav_wiki = true nav_wiki.hide_if_no_children = 1 nav_wiki.href = /wiki nav_wiki.label = Wiki nav_wiki.order = 1 nav_wiki.parent = top nav_tickets = true nav_tickets.hide_if_no_children = 1 nav_tickets.href = /wiki/MyTickets nav_tickets.label = チケット nav_tickets.order = 10 nav_tickets.parent = top nav_repos = true nav_repos.hide_if_no_children = 1 nav_repos.href = /browser nav_repos.label = リポジトリブラウザ nav_repos.order = 20 nav_repos.parent = top nav_project = true nav_project.hide_if_no_children = 1 nav_project.href = /timeline nav_project.label = プロジェクト nav_project.order = 30 nav_project.parent = top nav_admin = true nav_admin.hide_if_no_children = 1 nav_admin.href = /admin nav_admin.label = 管理 nav_admin.order = 99999 nav_admin.parent = top
これで[Wiki][チケット][リポジトリブラウザ][プロジェクト][管理]の5つのメニューが追加される。
次に既存のメニューを、それぞれ追加したメニューの下に収める。*.parent にトップメニュー名を指定する。
# [Wiki] wiki.parent = nav_wiki wiki.href = /wiki wiki.label = スタートページ # [チケット] tickets.parent = nav_tickets newticket.parent = nav_tickets query.parent = nav_tickets report.parent = nav_tickets query = true query.href = /query query.label = カスタムクエリ report = true report.href = /report report.label = レポート一覧 # [リポジトリブラウザ] browser.parent = nav_repos # [プロジェクト] blog.parent = nav_project discussion.parent = nav_project #peerreviewmain.parent = nav_project roadmap.parent = nav_project timeline.parent = nav_project tags.parent = nav_project search.parent = nav_project doxygen.parent = nav_project # [管理] admin.parent = nav_admin #billing.parent = nav_admin builds.parent = nav_admin importer.parent = nav_admin stractistics.parent = nav_admin ticketcalendar.parent = nav_admin ticketgantt.parent = nav_admin
[Hudson]はbuilds.parentで指定。なぜか作業時間管理(Timing and Estimation Plugin) と PeerReview Plugin の2つはトップメニュー下に収められなかったのでコメントアウト。
[metanav] account = false settings = false
Trac 0.11.4.ja1の場合、日本語化の関係かmetanavにaccount,settingsが表示されてしまうため、それぞれfalseに設定して表示を抑止した。
設定後の表示はこんなかんじ。
色が悪趣味なのは気にしない方向で…。本当はナビゲーションバーのデザインをカスタマイズ前のものに合わせられれば良いのですが、cssがわからないので今のところ放置です。