X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=_plugins%2Fmanual.rb;h=2c5c4b820bcac56ae6b9fa75a5cde0d2fb5d59c6;hb=5f7a11b3745be84e8cafb6abc83b0795d2290434;hp=cde76c4b94504bfac0cfc455511f768dfef01b63;hpb=ae6efdc4a0dd1825a30a1b95b70d6a5f799713a9;p=ardour-manual diff --git a/_plugins/manual.rb b/_plugins/manual.rb index cde76c4..2c5c4b8 100644 --- a/_plugins/manual.rb +++ b/_plugins/manual.rb @@ -22,7 +22,7 @@ module Manual def self.traverse(path, directory_sort = false, paths = [], key_paths = [], &block) - entries = Dir.glob(File.join(path,'*')) + entries = Dir.glob(File.join(path,'*')).sort entries.sort_by! { |e| File.directory?(e) ? 1 : 0 } if directory_sort @@ -63,7 +63,7 @@ module Manual end block_given? ? block.call(h) : h - end + end.compact end def self.extract_data(filename) @@ -182,15 +182,19 @@ module Manual url_a = url.split('/').reject(&:empty?) + depth = url_a.length is_current, position, level = *process_hierarchy(current_a, url_a) + # this massively speeds up build time by not including the whole menu tree for each page + next if depth > 1 && current_a[0] != url_a[0] + css_classes = [] css_classes << 'active' if is_current css_classes << position.to_s if position css_classes << "#{position}-#{level}" if position && level css_classes << 'other' unless is_current || position || level - css_classes << "level-#{url_a.length}" + css_classes << "level-#{depth}" css_classes = css_classes.join(' ') if entry[:type] == 'directory' @@ -200,9 +204,11 @@ module Manual <%= entry[:menu_title] %>
-
- <%= entry[:children].join %> -
+ <% if entry[:children].any? %> +
+ <%= entry[:children].join %> +
+ <% end %>
HTML