Find file
Fetching contributors…
Cannot retrieve contributors at this time
55 lines (43 sloc) 1.3 KB
= SemanticMenu
A plugin to make large menus easier to write.
Supports arbitrarily deep nesting; parents will be marked as 'active' if any of its children are active.
== Example
<%= semantic_menu do |root|
root.add "overview", root_path
root.add "comments", comments_path
end %>
Assuming you are on /comments, the output would be:
<ul class="menu">
<li>
<a href="/">overview</a>
</li>
<li class="active">
<a href="/comments">comments</a>
</li>
</ul>
add and semantic_menu both take an optional parameter hash, and you can nest the menu as deeply as you want:
<%= semantic_menu :class => 'top_level_nav' do |root|
root.add "overview", "root_path"
root.add "comments", "comments_path", :class => 'button' do |comments|
comments.add "My Comments", "my_comments_path"
comments.add "Recent", "recent_comments_path"
end
end %>
This would look like this:
<ul class="top_level_nav">
<li>
<a href="root_path">overview</a>
</li>
<li class="active">
<a href="comments_path" class="button">comments</a>
<ul class="menu_level_1">
<li class="active">
<a href="my_comments_path">My Comments</a>
</li>
<li>
<a href="recent_comments_path">Recent</a>
</li>
</ul>
</li>
</ul>
Copyright (c) 2008 Daniel Haran, released under the MIT license