diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2017-06-25 07:17:43 +0300 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2017-06-25 07:17:43 +0300 |
commit | 4723776beee0ac571d826e8598e8ec3a5359729b (patch) | |
tree | 008d118c56a86fb2240c3706829a14b43e046477 | |
parent | fix post pagination links (diff) | |
download | sorting-algorithms-4723776beee0ac571d826e8598e8ec3a5359729b.tar.gz sorting-algorithms-4723776beee0ac571d826e8598e8ec3a5359729b.zip |
fix navbar links with multiple pages
I determine whether a page should be present in the navigation bar by
checking if 'navbar' is present in this page's `groups`.
My posts/index.html is an example of such page.
But `jekyll-paginate` creates a bunch of similar pages, each of them
having 'navbar' in their `groups`.
Thus, every /posts//pageN appears in the navbar.
To get rid of all of them except for the first one, I set `root_page` to
`true` in index.html, and only include the first page with `root_page ==
true` in the navbar.
Man, it's a hack if I've ever seen one.
-rw-r--r-- | _includes/common/navbar.html | 6 | ||||
-rw-r--r-- | posts/index.html | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/_includes/common/navbar.html b/_includes/common/navbar.html index ea0bae7..d2f5ea3 100644 --- a/_includes/common/navbar.html +++ b/_includes/common/navbar.html @@ -12,6 +12,12 @@ <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> {% for node in site.pages %} + {% if node.root_page %} + {% if navbar_has_root_page %} + {% continue %} + {% endif %} + {% assign navbar_has_root_page = true %} + {% endif %} {% if node.groups contains 'navbar' %} {% if page.url == node.url %} <li class="active"><a href="{{ site.baseurl }}{{ node.url }}" class="active">{{ node.navbar_link }}</a></li> diff --git a/posts/index.html b/posts/index.html index fb21dbf..fb91205 100644 --- a/posts/index.html +++ b/posts/index.html @@ -4,6 +4,7 @@ layout: sidebar groups: - navbar navbar_link: <span class="glyphicon glyphicon-th-list"></span> Posts +root_page: true --- {% if site.posts.size == 0 %} <p class="h3">Sorry, no posts have been added yet.</p> |