Add second-level menu support
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn-site/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn-site/commit/a4eb5f86 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn-site/tree/a4eb5f86 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn-site/diff/a4eb5f86 Branch: refs/heads/master Commit: a4eb5f863af8ccd8e9f309915541164d92a84072 Parents: a005e49 Author: Richard Downer <[email protected]> Authored: Thu Aug 21 17:27:47 2014 +0100 Committer: Richard Downer <[email protected]> Committed: Thu Aug 21 17:48:23 2014 +0100 ---------------------------------------------------------------------- _layouts/base.html | 13 +++++++++++++ _layouts/normal.html | 18 ++++++++++++++++-- _plugins/site_structure.rb | 12 ++++++++++++ style/css/theme.css | 4 ++++ 4 files changed, 45 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn-site/blob/a4eb5f86/_layouts/base.html ---------------------------------------------------------------------- diff --git a/_layouts/base.html b/_layouts/base.html index 1ae084f..b4c4b02 100644 --- a/_layouts/base.html +++ b/_layouts/base.html @@ -30,7 +30,20 @@ <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav navbar-right"> {% for navgroup in site.data.navgroups %} + {% if navgroup.page.menu2 %} + <li class="dropdown{% if page.navgroup == navgroup.id %} active{% endif %}"> + <a href="{{site.url}}{{navgroup.page.url}}">{{navgroup.title}}</a> + <ul class="dropdown-menu" role="menu"> + {% for child in navgroup.page.menu2 %} + <li> + <a href="{{site.url}}{{child.reference.url}}">{{child.reference.title}}</a> + </li> + {% endfor %} + </ul> + </li><!-- {{ navgroup.id }} --> + {% else %} <li class="{% if page.navgroup == navgroup.id %}active{% endif %}"><a href="{{site.url}}{{navgroup.page.url}}">{{navgroup.title}}</a></li><!-- {{ navgroup.id }} --> + {% endif %} {% endfor %} </ul> </div><!-- /.navbar-collapse --> http://git-wip-us.apache.org/repos/asf/incubator-brooklyn-site/blob/a4eb5f86/_layouts/normal.html ---------------------------------------------------------------------- diff --git a/_layouts/normal.html b/_layouts/normal.html index e4177de..3a1c23f 100644 --- a/_layouts/normal.html +++ b/_layouts/normal.html @@ -2,8 +2,22 @@ layout: base --- <div class="container"> - <h1>{{ page.title }}</h1> - {{ content }} + <div class="row"> + <div class="col-md-9"> + <h1>{{ page.title }}</h1> + {{ content }} + </div> + <div class="col-md-3"> + {% if page.menu2 %} + <div class="list-group"> + <h4><a href="{{site.url}}{{page.menu2parent.url}}" class="list-group-item{% if page.menu2parent.path == page.path %} active{% endif %}">{{ page.menu2parent.title }}</a></h4> + {% for child in page.menu2 %} + <a href="{{site.url}}{{child.reference.url}}" class="list-group-item{% if child.reference.path == page.path %} active{% endif %}">{{ child.reference.title }}</a> + {% endfor %} + </div> + {% endif %} + </div> + </div> </div> <div id="footer"> http://git-wip-us.apache.org/repos/asf/incubator-brooklyn-site/blob/a4eb5f86/_plugins/site_structure.rb ---------------------------------------------------------------------- diff --git a/_plugins/site_structure.rb b/_plugins/site_structure.rb index 960d37c..15f9257 100644 --- a/_plugins/site_structure.rb +++ b/_plugins/site_structure.rb @@ -33,6 +33,18 @@ module SiteStructure end puts "#{page.path} #{page.data['navgroup']}" + # Figure out second level menu + # If there's no parent => I'm at the top level, so no action + # If there's a parent, but parent has no parent => I'm at second level, so set second-level menu + # Otherwise, use the parent's second level menu + if parent && !parent.data['parent'] + page.data['menu2parent'] = page + page.data['menu2'] = page.data['children'] + elsif parent && parent.data['parent'] + page.data['menu2parent'] = parent.data['menu2parent'] + page.data['menu2'] = parent.data['menu2'] + end + page.data['parent'] = parent if page.data['children'] page.data['children'].each do |c| http://git-wip-us.apache.org/repos/asf/incubator-brooklyn-site/blob/a4eb5f86/style/css/theme.css ---------------------------------------------------------------------- diff --git a/style/css/theme.css b/style/css/theme.css index c9f4e5b..135c2b0 100644 --- a/style/css/theme.css +++ b/style/css/theme.css @@ -16,6 +16,10 @@ html { margin-left: -30px !important; } +ul.nav li.dropdown:hover > ul.dropdown-menu { + display: block; +} + #apachebrooklynbanner { background-image: url("../img/apache-brooklyn-logo-817px-wide.png"); background-repeat: no-repeat;
