diff --git a/_config.yml b/_config.yml index a09067082833b73ec56343a3d45170ce95c9c2af..92ab71ea25a0ff42a1a905653867d6492258f4f0 100644 --- a/_config.yml +++ b/_config.yml @@ -38,6 +38,10 @@ aux_links: "Just the Docs on GitHub": - "//github.com/pmarsceill/just-the-docs" +# Sort order for navigation links +nav_sort: case_insensitive # default, equivalent to nil +# nav_sort: case_sensitive # Capital letters sorted before lowercase + # Footer content appears at the bottom of every page's main content footer_content: "Copyright © 2017-2019 Patrick Marsceill. Distributed by an <a href=\"https://github.com/pmarsceill/just-the-docs/tree/master/LICENSE.txt\">MIT license.</a>" diff --git a/_includes/nav.html b/_includes/nav.html index a691f4f60b525fecf7535b9694cb832743a27884..ec6c786b2ca1a54819dee0f81b3306c917d241f5 100644 --- a/_includes/nav.html +++ b/_includes/nav.html @@ -1,8 +1,15 @@ <nav role="navigation" aria-label="Main navigation"> <ul class="navigation-list"> - {%- assign ordered_pages_list = site.html_pages | where_exp:"item", "item.nav_order != nil" | sort:"nav_order" -%} - {%- assign unordered_pages_list = site.html_pages | where_exp:"item", "item.nav_order == nil" | sort:"title" -%} - {%- assign pages_list = ordered_pages_list | concat: unordered_pages_list -%} + {%- assign ordered_pages_list = site.html_pages | where_exp:"item", "item.nav_order != nil" -%} + {%- assign unordered_pages_list = site.html_pages | where_exp:"item", "item.nav_order == nil" -%} + {%- if site.nav_sort == 'case_sensitive' -%} + {%- assign sorted_ordered_pages_list = ordered_pages_list | sort:"nav_order" -%} + {%- assign sorted_unordered_pages_list = unordered_pages_list | sort:"title" -%} + {%- else -%} + {%- assign sorted_ordered_pages_list = ordered_pages_list | sort_natural:"nav_order" -%} + {%- assign sorted_unordered_pages_list = unordered_pages_list | sort_natural:"title" -%} + {%- endif -%} + {%- assign pages_list = sorted_ordered_pages_list | concat: sorted_unordered_pages_list -%} {%- for node in pages_list -%} {%- unless node.nav_exclude -%} {%- if node.parent == nil -%} diff --git a/docs/navigation-structure.md b/docs/navigation-structure.md index d6d584445c6885c97440170c86053177888b37b0..e5f29ad2682eb95fc5a07040ffccd11f25831491 100644 --- a/docs/navigation-structure.md +++ b/docs/navigation-structure.md @@ -41,6 +41,8 @@ nav_order: 4 The specified `nav_order` parameters on a site should be all integers or all strings. Pages without a `nav_order` parameter are ordered alphabetically by their `title`, and appear after the explicitly-ordered pages at each level. +To sort all Capital letters before lowercase letters, +add `nav_sort: case_sensitive` in the configuration file. ---