more careful sorting of the menu; readme generator more failure-resistant; add missin...
[web.git] / _plugins / menu.rb
index 317db0c102160a7453466de632cf96e30f08bb9b..befe357a3e318861f34f641398618791afa2a973 100644 (file)
@@ -17,7 +17,7 @@ module Jekyll
                             css_class = 'sibling'
                         end
                         # create menu node
-                        menu_node = { 'url' => page['url'], 'title' => page['title'], 'class' => css_class }
+                        menu_node = { 'url' => page['url'], 'title' => page['slug'] ? page['slug'] : (page['title'] ? page['title'] : page['url']), 'class' => css_class, 'sort' => page['sort'] }
                         # potentially recurse
                         if (css_class == 'parent' or css_class == 'current')
                             sub_nodes = create_menu(pages, cururl + "/", displayurl)
@@ -29,7 +29,8 @@ module Jekyll
                         result.push(menu_node)
                     end
                 end
-                result
+                # sort the result before returning it
+                result.sort_by { |a| [a['sort'], a['url']] }
             end
             
             create_menu(input, "", displayurl.sub('/index.html', ''))